You are on page 1of 24

ISSN 1677-9274 Dezembro, 2009

Empresa Brasileira de Pesquisa Agropecuria Embrapa Informtica Agropecuria Ministrio da Agricultura, Pecuria e Abastecimento

Documentos 96

Sistema FuzzyGen: manual do usurio


Helano Pvoas de Lima Silvia Maria Fonseca da Silveira Massruh

Embrapa Informtica Agropecuria Campinas, SP 2009

Embrapa Informtica Agropecuria Av. Andr Tosello, 209 - Baro Geraldo Caixa Postal 6041 - 13083-886 - Campinas, SP Fone: (19) 3211-5700 - Fax: (19) 3211-5754 www.cnptia.embrapa.br sac@cnptia.embrapa.br

Comit de Publicaes Presidente: Silvia Maria Fonseca Silveira Massruh Membros: Poliana Fernanda Giachetto, Roberto Hiroshi Higa, Stanley Robson de Medeiros Oliveira, Marcia Izabel Fugisawa Souza, Adriana Farah Gonzalez, Neide Makiko Furukawa, Suzilei Almeida Carneiro Membros suplentes: Alexandre de Castro, Fernando Attique Mximo, Paula Regina Kuser Falco, Maria Goretti Gurgel Praxedes Supervisor editorial: Neide Makiko Furukawa, Suzilei Almeida Carneiro Revisor de texto: Adriana Farah Gonzalez Normalizao bibliogrfica: Maria Goretti Gurgel Praxedes Editorao eletrnica: Neide Makiko Furukawa Secretria: Suzilei Almeida Carneiro 1a edio on-line 2009
Todos os direitos reservados. A reproduo no autorizada desta publicao, no todo ou em parte, constitui violao dos direitos autorais (Lei n 9.610). Dados Internacionais de Catalogao na Publicao (CIP) Embrapa Informtica Agropecuria Lima, Helano Pvoas de Sistema FuzzyGen: manual do usurio / Helano Pvoas de Lima, Slvia Maria Fonseca da Silveira Massruh. - Campinas : Embrapa Informtica Agropecuria, 2009. 20 p. il. - (Documentos / Embrapa Informtica Agropecuria, ISSN 1677-9274; 96). 1. Construtor de Sistemas de inferncias. 2. Lgica fuzzy. 3. Lgica difusa . 4. Lgica nebulosa. 5. Inteligncia artificial. 6. Software livre. I. Massruh, Slvia Maria Fonseca da Silveira. II. Ttulo. III. Srie. CDD: 006.3 (21.ed.) Embrapa 2009

Autores

Helano Pvoas de Lima Especialista em Sistemas de Banco de dados Analista da Embrapa Informtica Agropecuria Caixa Postal 6041, Baro Geraldo 13083-886 - Campinas, SP Fone: 19 3211-5816 e-mail: helano@cnptia.embrapa.br Silvia Maria Fonseca Silveira Massruh Doutora em Computao Aplicada Pesquisadora da Embrapa Informtica Agropecuria Caixa Postal 6041, Baro Geraldo 13083-886 - Campinas, SP Fone: 19 3211-5750 e-mail: silvia@cnptia.embrapa.br

Apresentao
O sistema FuzzyGen um ambiente interativo para a construo de sistemas de inferncia, que se utiliza de conceitos de lgica nebulosa (Difusa ou Fuzzy) e padres definidos pela IEC (INTERNATIONAL ELECTROTECHNICAL COMMISSION) para descrio e intercmbio desse tipo de sistema. Este documento tem por objetivo orientar o usurio do sistema FuzzyGen no procedimento para sua utilizao, visando obter resultados corretos com menor esforo. Atravs do FuzzyGen, possvel a criao de sistemas especialistas para uso na soluo dos mais diversos problemas, que podem ser embutidos em aplicaes externas ou utilizados por outras ferramentas de lgica nebulosa. O documento aborda ambos os processos contemplados no sistema, que so a descrio e gerao do sistema no padro FCL (Fuzzy Control Language) e a inferncia de resultados do sistema gerado. Kleber Xavier Sampaio de Souza
Chefe-Geral Embrapa Informtica Agropecuria

Sumrio
Introduo ........................................................................................ 9 Construo do Modelo.................................................................. 11 Fase de Inferncia ......................................................................... 18 Referncias .................................................................................... 20

Sistema FuzzyGen: manual do usurio


Helano Pvoas de Lima Silvia Maria Fonseca da Silveira Massruh

Introduo
O FuzzyGen um sistema genrico para a construo de sistemas de inferncia que se utiliza de lgica nebulosa. O sistema distribudo como software livre e tem como proposta ser uma alternativa para solues proprietrias de alto custo e pouca flexibilidade existentes no mercado. Esse software possui a caracterstica de ser capaz de gerar um sistema especialista. pressuposto que o usurio possua um conhecimento geral sobre os conceitos de lgica nebulosa, embora nenhum conhecimento tcnico sobre programao de computadores seja requerido. Alm da construo do sistema especialista, possvel gravar a descrio do sistema em padro predefinido para o intercmbio e aplic-lo em ferramentas proprietrias como o Fuzzy Logic Toolbox do MatlabTM. De posse do sistema gerado, tambm possvel fornecer valores para as variveis de entrada e inferir o resultado das variveis de sada e gerar texto explicativo desse processo e grficos das variveis. Para a construo de um sistema no FuzzyGen, preciso definir cada elemento que compe um sistema de inferncia nebuloso. So eles:

10

Embrapa Informtica Agropecuria. Documentos, 96

1 Nome do modelo; 2 Variveis de entrada: aqui so definidas as variveis de entrada, sendo cada uma composta por: Nome; Termos lingusticos que a descrevem (Ex: Bom, Razovel, Ruim, ), contendo: - Funo que descreve a pertinncia; - Valores do intervalo; 3 Variveis de sada: aqui so definidas as variveis de sada, sendo cada uma composta por: Nome; Termos lingusticos que descrevem (Ex: Bom, Razovel, Ruim, ), contendo: - Funo que descreve a pertinncia; - Valores do intervalo; Mtodo de agregao; Mtodo de implicao (Acumulador); Valor padro (opcional); Intervalo geral (opcional); 4 Conjunto de regras: aqui so definidas as regras que descrevem a lgica da relao entre as variveis de entrada e de sada na forma: Se varivel de entrada termo lingustico Ento varivel de sada termo lingustico (ex: Se tempo ruim ento viajar perigoso). 5. Mtodo de ativao das regras; 6. Operador das regras. O sistema est organizado em trs abas sequenciais: a primeira, Modelagem, onde se define o modelo, conforme descrito acima; a segunda a de inferncia, sendo possvel alimentar valores para as variveis de entrada e inferir as variveis de sada; e a terceira, Grfico, mostra os grficos das variveis, resultantes da inferncia.

Sistema FuzzyGen: manual do usurio

11

Construo do Modelo
Para utilizar o FuzzyGen, necessrio possuir uma mquina virtual Java instalada no computador. A mesma pode ser baixada diretamente do site do fabricante no endereo: http://www.java.com/pt_BR/download/ Para iniciar o sistema, basta um duplo clique no arquivo FuzzyGen.jar. Caso o sistema no inicie, utilize a seguinte instruo na linha de comando (no mesmo diretrio do arquivo): > java -jar FuzzyGen.jar Ser mostrada ento a tela inicial do sistema (Figura 1). Para efeito ilustrativo, ser abordado um problema exemplo clssico: Baseado na qualidade da comida e do servio, quanto deve ser a gorjeta? Clique no boto Construir novo modelo.

Figura 1. Tela inicial.

Ser ento mostrada a aba de modelagem, onde construiremos o modelo.

12

Embrapa Informtica Agropecuria. Documentos, 96

Figura 2. Aba Modelagem.

Preencha um nome para o modelo e clique no boto adicionar na seo variveis de entrada. Ser ento mostrada a tela para descrio da varivel. Assim que uma varivel for descrita, ela aparecer na listagem variveis de entrada (Figura 3). possvel remov-la, bastando, para isso, selecion-la na listagem e clicar no boto remover.

Figura 3. Tela para descrio de varivel de entrada.

Sistema FuzzyGen: manual do usurio

13

Preencha o nome da varivel e em seguida adicione um termo lingustico para ela, clicando adicionar. Ser ento mostrada a tela para descrio do termo. Assim que um termo for descrito, ele aparecer na listagem fuzzyficadores. possvel remov-lo, bastando, para isso, selecion-lo na listagem e clicar no boto remover.

Figura 4. Tela para descrio de termo lingustico.

Preencha o nome do termo, selecione a funo de pertinncia na caixa ao lado e em seguida clique no boto adicionar valor para indicar os valores que iro compor o intervalo desse termo. Ser ento mostrada uma sequncia de telas solicitando tais valores.

Figura 5. Tela para informar valor de ponto do intervalo.

Repita os passos descritos acima para quantas forem as variveis de entrada do sistema, bem como seus termos lingusticos. O prximo passo descrever as variveis de sada do sistema, Para isso, clique no boto adicionar na seo variveis de sada. Ser ento mostrada a tela para descrio da varivel. Assim que uma varivel for descrita, ela aparecer na listagem variveis de sada (Figura 2). possvel remov-la, bastando, para isso, selecionla na listagem e clicar no boto remover.

14

Embrapa Informtica Agropecuria. Documentos, 96

Figura 6. Tela para descrio de varivel de sada.

Preencha o nome da varivel e em seguida adicione um termo lingustico para esta varivel clicando adicionar. Ser ento mostrada a tela para descrio do termo. Assim que um termo for descrito, ele aparecer na listagem defuzzyficadores. possvel remov-lo, bastando, para isso, selecion-lo na listagem e clicar no boto remover.

Figura 7. Tela para descrio de termo lingustico.

Preencha o nome do termo, selecione a funo de pertinncia na caixa ao lado e em seguida clique no boto adicionar valor para indicar os valores que iro compor o intervalo deste termo. Ser ento mostrada uma sequncia de telas solicitando tais valores. Ainda na tela de varveis de sada (Figura 6), necessrio indicar, atravs de seleo nas respectivas caixas, o mtodo de agregao e o mtodo de implicao (acumulador). Caso no saiba o que escolher, deixe o valor padro, que o que geralmente obtm o melhor resultado.

Sistema FuzzyGen: manual do usurio

15

Figura 8. Tela para informar valor de ponto do intervalo.

Opcionalmente ainda podem ser indicados um valor padro e um intervalo geral. Novamente, caso no saiba ou no seja necessrio, deixe o padro. Repita os passos descritos acima para quantas forem as variveis de sada do sistema, bem como seus termos lingusticos. A seguir, necessrio descrever as regras que demonstram a lgica da relao entre as variveis de entrada e de sada, para isso, clique no boto adicionar na seo conjunto de regras. Ser ento mostrada a tela para descrio da regra. Assim que uma regra for descrita, ela aparecer na listagem conjunto de regras (Figura 2). possvel remov-la, bastando, para isso, selecion-la na listagem e clicar no boto remover.

Figura 9. Tela para descrio de regra.

16

Embrapa Informtica Agropecuria. Documentos, 96

Uma regra descrita por uma (ou mais) causa e uma (ou mais) consequncia, na forma: Se (if) varivel de entrada (is) termo lingustico Ento (then) varivel de sada (is) termo lingustico. Para adicionar uma causa, clique no boto adicionar na seo causas. Ser ento mostrada a tela para escolha da sentena. Assim que uma causa for descrita, ela aparecer na listagem causas (Figura 9). possvel remov-la, bastando, para isso, selecion-la na listagem e clicar no boto remover.

Figura 10. Tela para escolha de sentena de causa.

Alm da escolha das sentenas que comporo as causas, preciso informar como as sentenas se relacionam, escolhendo um operador lgico na caixa imediatamente abaixo do boto remover. Em seguida deve-se descrever as consequncias. Para adicionar uma consequncia, clique no boto adicionar na seo consequncias. Ser ento mostrada a tela para escolha da sentena. Assim que uma consequncia for descrita, ela aparecer na listagem consequncias conforme Figura 9. possvel remov-la, bastando, para isso, selecion-la na listagem e clicar no boto remover.

Sistema FuzzyGen: manual do usurio

17

Figura 11. Tela para escolha de sentena de consequncia.

Opcionalmente, pode-se atribuir um peso para cada regra (entre 0 e 1) pelo preenchimento do campo peso, para que este seja levado em conta na inferncia. Retornando tela inicial (aba modelo), ainda existe a opo de modificar o mtodo de ativao e o operador de defuzzyficao das regras, com a seleo dos valores nas caixas localizados abaixo do conjunto de regras. A mesma mxima j mencionada vlida aqui. Caso no saiba o que preencher, deixe no valor padro. Finalmente, aps todo esse processo, o modelo est construdo e podese avanar fase de inferncia clicando-se no boto continuar, ento a aplicao ser levada aba seguinte (inferncia). Entretanto, indicado neste ponto, antes de prosseguir, que se grave o modelo para um uso posterior, pois toda a informao fornecida encontrase somente armazenada na memria do computador. Para isso, clique no boto gerar arquivo e escolha, no dilogo seguinte, um nome e caminho para esse arquivo a ser gravado.

18

Embrapa Informtica Agropecuria. Documentos, 96

Fase de Inferncia
Na aba Inferncia, possvel carregar um arquivo de modelo previamente gravado. Basta indicar o seu caminho na caixa de texto ou visualizar o sistema de arquivos atravs do boto ... que, em seguida, abrir um dilogo para seleo e, finalmente, deve-se clicar no boto carregar. Esse passo ser desnecessrio se houver modelo em memria e o boto continuar, na tela anterior, tiver sido clicado. possvel gerar imagens em disco dos grficos gerados pelo mecanismo de inferncia, ao marcar a caixa Gerar arquivos de imagens dos grficos.

Figura 12. Tela para inferncia de modelo.

Ser mostrada, ento, uma listagem de variveis de entrada que devero ter seus valores fornecido diretamente na tabela, no campo valor. Lembrese que esses valores de entrada devem ter sido contemplados em algum dos intervalos dos termos da referida varivel, caso contrrio, haver falha na inferncia.

Sistema FuzzyGen: manual do usurio

19

Com todos os valores devidamente preenchidos, para acionar o mecanismo de inferncia, basta clicar no boto inferir resultado. Ser ento mostrado o modelo construdo na caixa de texto de resultado. Existe ainda a opo de gerar um arquivo de imagem para cada varivel do modelo, para uso posterior. Faz-se isso marcando a opo gerar arquivos de imagens dos grficos. Esses arquivos sero gravados no mesmo diretrio de onde carregou-se o modelo. Para a visualizao dos grficos dos intervalos dos termos das variveis de entrada, dos grficos dos intervalos resultantes da defuzzyficao das variveis de sada, bem como dos respectivos valores de sada, deve-se selecionar a aba grfico. Sero ento mostrados os grficos, conforme os exemplos a seguir:
Servio 1,00 Membership 0,75 0,50 0,25 0,00 0 1 2 3 4 5 6 7 8 9 Bom Excelente Pobre

Figura 13. Exemplo de grfico de varivel de entrada. Gorjeta:15,00 (CenterOfGravity)

0,35 0,30 Membership 0,25 0,15 0,10 0,10 0,05 0,00 0 5

10

15 x

20

25

30

Figura 14. Exemplo de grfico de varivel de sada.

20

Embrapa Informtica Agropecuria. Documentos, 96

Podemos observar, na figura acima que o valor de sada inferido pelo sistema para uma varivel de sada mostrado junto ao seu nome no cabealho do grfico.

Bom trabalho!
Referncias
ZADEH, L. A. Fuzzy Sets. Information and Control, v.8. p.338-353, 1965. THE MATHWORKS INC. Fuzzy Logic Toolbox Users Guide. 1995. Disponvel em: <http:// www.mathworks.com/access/helpdesk/help/pdf_doc/fuzzy/fuzzy.pdf>. Acesso em jan. 2008. INTERNATIONAL ELECTROTECHNICAL COMMISSION. IEC 1131 - Programmable Controllers , Part 7 - Fuzzy Control Programming , 1997. Disponvel em: <http://www.fuzzytech.com/ binaries/ieccd1.pdf>. Acesso em fev. 2008.