Você está na página 1de 45

XFUZZY 3.

0
Manual Verso em portugus

Diviso de Gesto da Produo

COPPE/UFRJ
Universidade Federal do Rio de Janeiro
Programa de Engenharia de Produo
LabFuzzy e TGL

fevereiro/2011

NotaTcnica n:

TTULO: XFuzzy 3.0 Manual Verso em Portugues

Data de
recebimento
na DINT:

GRAU DE SIGILO:

Livre: ( x )
AUTOR(ES): Mrcio Aarestrup Arbex, Dayse Mouro Arruda, Rogrio
Macedo Pontes, Felipe Arruda Pontes, Arapu Marques B. de
Arajo,

Restrito: ( )
Por ( ) ano(s)

Confidencial: ( )
OBJETIVO(S):

___________________

O objetivo desde documento explicar de forma suscinta a Sigla da UO: DGEP


utilizao da ferramena XFuzzy 3.0 de forma a permitir sua adaptao
para uso no escopo do sistema GESPLAN.
Este texto corresponde a verso em portugues do manual do usurio
XFuzzy 3.0 (IMSE-CNM, 2003)

RESUMO:
A ferramenta XFuzzy 3.0 um ambiente de modelagem baseado em
sistemas de inferncia fuzzy. A ferramenta totalmente desenvolvida em
JAVA e possui diversos mdulos que abrangem as diferentes etapas do
processo de concepo de um sistema fuzzy.
Este documento apresenta a verso em portugus para o manual do
usurio disponibilizado originalmente em ingls XFuzzy 3.0 (IMSE-CNM,
2003).

Palavras-chave:
Lgica Fuzzy, Inteligncia Computacional
Documentos Correlatos:

Assinatura do(a) chefe da UO

Assinatura do autor:

Revisado por:

___________________________
Data: / /

______________________________
Data: / /

____________________
Data: / /

Trabalho elaborado no escopo do projeto FAPERJ E-26/110.322/2007


GesPlan Desenvolvimento de um prottipo de sistema adequado ao
planejamento mestre da produo com mecanismos inteligentes de apoio
a deciso

Pesquisadores do projeto:
Dayse Mouro Arruda
Carlos Alberto Nunes Cosenza
Elton Fernandes
Carlos Alberto de Oliveira Fernandes
Rogrio Macedo Pontes

Elaborao do documento:
Mrcio Aarestrup Arbex
Dayse Mouro Arruda
Rogrio Macedo Pontes
Felipe Arruda Pontes
Arapu Marques B. de Arajo

SUMRIO

INTRODUO ..........................................................................................................................................5
OVERVIEW DO XFUZZY3.0 ..................................................................................................................5
INSTALAO ...........................................................................................................................................7
REQUISITOS DO SISTEMA ..................................................................................................................7
GUIA DE INSTALAO........................................................................................................................7
AMBIENTE DE DESENVOLVIMENTO XFUZZY 3.0 ........................................................................8
DESCRIO DO ESTGIO .................................................................................................................10
A FERRAMENTA DE EDIO DO SISTEMA XFEDIT ................................................................10
A FERRAMENTA DE EDIO DE PACOTES XFPKG ................................................................19
FASE DE VERIFICAO......................................................................................................................26
A FERRAMENTA DE MONITOR DE INFERNCIA XFMT ..........................................................28
A FERRAMENTA DE SIMULAO XFSIM...................................................................................30
FASE DE AJUSTE...................................................................................................................................37
A FERRAMENTA DE APRENDIZADO SUPERVISIONADO XFSL ..............................................37
ESTGIO DE SNTESE .........................................................................................................................42
A FERRAMENTA DE GERAO DE CDIGO JAVA XFJ...........................................................42
REFERNCIAS BIBLIOGRFICAS ...................................................................................................45

XFuzzy 3.0 Manual Verso em Portugues

INTRODUO
O objetivo desde documento explicar de forma suscinta a utilizao da
ferramena XFuzzy 3.0 de forma a permitir sua adaptao para uso no escopo do sistema
GESPLAN.
Este documento corresponde a verso em portugues do manual do usurio
XFuzzy 3.0 (IMSE-CNM, 2003), mas no site do projeto esto disponibilizados diversos
artigos abordando a ferramenta, dentre os quais podemos citar: Baturone et al.(2007),
Moreno-Velo et al.(2001) e Moreno-Velo et al.(2003).
O XFuzzy de propriedade dos seus autores e da IMSE-CNM (Instituto de
Microeletrnica de Sevilha / Centro Nacional de Microeletrnica).
Xfuzzy um software livre e pode ser redistribudo e/ou modificado sob os
termos da GNU (General Public License) como publicado pela Free Software
Foundation.
Segundo seus proprietrios, o Xfuzzy distribudo com a esperana de ser til,
mas sem qualquer garantia; nem mesmo a garantia implcita de comrcializao ou
adequao para um determinado propsito.
Os proprietrios sugerem a consulta do documento GNU (General Public
License) para maiores detalhes.

OVERVIEW DO XFUZZY3.0
O Xfuzzy 3.0 um ambiente de desenvolvimento baseado em sistemas de
inferncia fuzzy. Ele composto de vrias ferramentas que abragem as diferentes etapas
do processo de concepo de um sistema fuzzy, desde a sua descrio inicial at a
execuo final. Suas principais caractersticas so a capacidade de desenvolvimento de
sistemas complexos e a flexibilidade de exteso das funes disponveis. O ambiente
foi totalmente programado em Java para que ele possa ser executado em qualquer
plataforma com JRE (Java Runtime Environment) instalado. A figura a seguir mostra o
fluxo do projeto Xfuzzy 3.0.
XFUZZY 3ComCapaNT-1.doc
5

XFuzzy 3.0 Manual Verso em Portugues

A Description Stage inclui ferramentas grficas para a definio do sistema


fuzzy. A Verification Stage composta de ferramentas para simulao, monitoramento
e representao grfica do comportamento do sistema. A Tunning Stage consiste na
aplicao de algoritmos de aprendizagem. Finalmente, a Synthesis Stage dividida em
ferramentas de gerao de cdigos em linguagens de alto nvel para implementaes em
software ou hardware.

A ligao entre todas estas ferramentas a utilizao de uma linguagem


especfica, XFL3, que estende as capacidades do XFL (linguagem definida na verso
2.0). XFL3 uma linguagem poderosa e flexvel que permite expressar relaes
complexas entre as variveis fuzzy por meio de bases de regras hierrquicas e
coneces fuzzy indefinidas, divises lingsticas, funes de pertinncia e mtodos de
defuzzificao.

Todas as ferramentas podem ser executadas como um programa independente. O


ambiente integra todos eles em uma interface grfica que facilita o processo de design.

XFUZZY 3ComCapaNT-1.doc
6

XFuzzy 3.0 Manual Verso em Portugues

INSTALAO
REQUISITOS DO SISTEMA
Xfuzzy 3.0 pode ser executado em plataformas que contm o Java Runtime
Environment. Para definir novos packages, necessrio o compilador Java. O Java
Software Development Kit, incluindo JRE, o compilador e outras ferramentas podem
ser encontrados em http://java.sun.com/j2se/ .

GUIA DE INSTALAO
Baixar o arquivo install.class.
Executar este arquivo com o comando "java install". Isso abrir a seguinte janela:

Escolher um diretrio para instalar Xfuzzy. Se esse diretrio no existir, ele ser
criado no processo de instalao.
Clicar no boto Instalar. Isto ir descompactar a distribuio Xfuzzy no diretrio
selecionado.
Os arquivos executveis do Xfuzzy esto localizados no "/bin" do diretrio. Adicionar
este diretrio na varivel de ambiente PATH.

XFUZZY 3ComCapaNT-1.doc
7

XFuzzy 3.0 Manual Verso em Portugues

Os arquivos executveis so programas script. No alterar a localizao da distribuio


Xfuzzy, caso contrrio, os arquivos de script no iro funcionar.

AMBIENTE DE DESENVOLVIMENTO XFUZZY 3.0

Xfuzzy 3.0 um ambiente para desenvolvimento de sistemas fuzzy. Integra


vrias ferramentas que cobrem as diferentes etapas de um projeto. Oferece um ambiente
amigvel atravs de uma interface grfica que facilita o processo de visualizao e
manuteno de um determinado projeto. A figura a seguir mostra a janela principal do
ambiente.

A barra de menus na janela principal contm os links para as diferentes


ferramentas. Abaixo da barra de menus existe uma barra de botes com as opes mais
utilizadas. A zona central da janela mostra duas listas. A primeiro a lista dos sistemas
de carga (o ambiente pode trabalhar com vrios sistemas simultaneamente). A segunda
lista contm os packages carregados. O resto da janela principal ocupado por uma rea
de mensagens.

XFUZZY 3ComCapaNT-1.doc
8

XFuzzy 3.0 Manual Verso em Portugues

A barra de menus dividida em diferentes fases do desenvolvimento do sistema.


O menu FILE permite criar, carregar, salvar e fechar um sistema fuzzy. Este menu
contm tambm as opes para criar, carregar, salvar e fechar um pacote de funo. O
menu termina com a opo de sair do ambiente. O menu do DESIGN usado para
editar um sistema selecionado fuzzy (xfedit) ou um pacote selecionado (xfpkg). O menu
TUNING contm os links para a ferramenta de aquisio de conhecimento (em
desenvolvimento), a ferramenta de aprendizado supervisionado (xfsl), e a ferramenta de
aprendizado por reforo (em desenvolvimento). O menu VERIFICATION permite
representar o comportamento do sistema em um lote 2-dimensional (xf2dplot) ou um
lote 3-dimensional (xf3dplot), monitoramento do sistema (xfmt), e simulao (xfsim). O
menu SYNTHESIS dividido em duas partes: a sntese de software, que gera
descries de sistema em C (XFC), C + + (xfcpp) e Java (XFJ) e sntese de hardware,
que implementa uma descrio do sistema como um circuito fuzzy (sob
desenvolvimento). O menu SET UP usado para modificar o ambiente de trabalho do
diretrio, gravar as mensagens de ambiente em um arquivo de log externo, fechar o
arquivo de log, limpar a rea de mensagem da janela principal, e para alterar a aparncia
e a percepo do ambiente.

Muitas opes na barra de menu s so ativadas quando um sistema fuzzy est


selecionado. Um sistema fuzzy selecionado apenas clicando em seu nome na lista dos
sistemas. Um duplo clique no nome do sistema ir abrir a ferramenta de edio. O
mesmo resultado obtido pressionando a tecla ENTER quando o sistema for
selecionado. A tecla INSERT ir criar um novo sistema, a tecla DELETE usado para
fechar o sistema. Esses atalhos so comuns a todas as listas: a tecla INSERT usado
para inserir um novo elemento em uma lista, a tecla ENTER ou um duplo clique ir
editar o elemento selecionado, e a tecla DELETE ir remover o elemento da lista .

XFUZZY 3ComCapaNT-1.doc
9

XFuzzy 3.0 Manual Verso em Portugues

DESCRIO DO ESTGIO
O primeiro passo para o desenvolvimento de um sistema fuzzy selecionar uma
descrio preliminar do sistema. Esta descrio ser depois refinada na sequncia das
fases de ajuste e verificao.

Xfuzzy 3.0 contm duas ferramentas auxiliares na descrio dos sistemas fuzzy:
xfedit e xfpkg. O primeiro dedicado definio lgica do sistema, isto , a definio
das suas variveis lingsticas e as relaes lgicas entre eles. Por outro lado, a
ferramenta xfpkg facilita a descrio das funes matemticas confiadas aos operadores
fuzzy, limitaes lingsticas, funes de pertinncia e mtodos de defuzzificao.

A FERRAMENTA DE EDIO DO SISTEMA XFEDIT


A ferramenta xfedit oferece uma interface grfica para facilitar a descrio dos
sistemas fuzzy, evitando a necessidade de um conhecimento aprofundado da linguagem
XFL3. A ferramenta formada por um conjunto de janelas que permite ao usurio criar
e editar os conjuntos de operadores, tipos de variveis lingsticas e bases de regras
includas no sistema fuzzy, bem como descrever a estrutura hierrquica do sistema em
desenvolvimento. A ferramenta pode ser executada diretamente na linha de comando
pela expresso "xfedit file.xfl ", ou a partir da janela principal do ambiente, utilizando a
opo SYSTEM EDITION no menu DESIGN.

XFUZZY 3ComCapaNT-1.doc
10

XFuzzy 3.0 Manual Verso em Portugues

A figura mostra a janela principal do xfedit. O menu FILE contm as seguintes


opes: "Save ", " Save as ", "Load Package", " Edit XFL3 File" e "Close Edition". As
opes "Save" e "Save as" so usadas para guardar o estado atual da definio do
sistema. A opo "Load Package" usado para importar novas funes que podem ser
atribudas aos diferentes operadores fuzzy. A opo de edio do arquivo XFL3 abre
uma janela de texto para editar sua descrio. A ltima opo usada para fechar a
ferramenta. O campo Name na barra de menu no editvel. O nome do sistema em
desenvolvimento podem ser alterada pela opo Salvar Como. O corpo da janela
dividida em trs partes: a esquerda contm as listas de entrada e sada de variveis
globais, a direita inclui a lista dos conjuntos de operadores, tipos de variveis
lingsticas e bases de regras e, finalmente, a zona central mostra a estrutura hierrquica
do sistema.

Os atalhos para as diferentes listas so comuns para o ambiente: a tecla INSERT


cria um novo elemento de cada lista, a tecla DELETE usado para remover um
elemento (quando no foi usado), e a tecla ENTER ou um duplo clique permite a edio
do elemento.
XFUZZY 3ComCapaNT-1.doc
11

XFuzzy 3.0 Manual Verso em Portugues

A criao de um sistema fuzzy no Xfuzzy geralmente comea com a definio


dos conjuntos de operadores. A figura exemplifica a janela para edio de um conjunto
de operadores no xfedit. O primeiro campo contm o identificador do conjunto de
operadores. Os campos restantes contm listas para atribuir funes aos diferentes
operadores fuzzy. Uma nova janela ir surgir caso a funo selecionada precisar de
alguns parmetros adicionais,. As funes disponveis em cada lista so definidas pelos
pacotes carregados.Na parte inferior da janela, uma barra de comando apresenta quatro
opes: "Ok", "Apply", "Reload" e "Cancel". A primeira opo salva o conjunto dos
operadores e fecha a janela. O segundo s salva as alteraes mais recentes. A terceira
opo atualiza o campo com os ltimos valores salvos. O ltimo fecha a janela
rejeitando as ltimas alteraes.

O prximo estgio na descrio de um sistema fuzzy criar os tipos de variveis


lingsticas, por meio da janela de criao de tipos mostrada abaixo, sendo necessrio o
seu identificador e universo ao qual ele abrange (mxima, mnima e cardinalidade). A
janela inclui vrios tipos predefinidos correspondentes s parties mais usuais dos
domnios. Dentre os tipos predefinidos contm: triangular, trapezoidal, bell-shaped e
singleton, shouldered-triangular e shouldered-bell. Outros tipos predefinidos so equal
XFUZZY 3ComCapaNT-1.doc
12

XFuzzy 3.0 Manual Verso em Portugues

bells e singletons, que so comumente usados como uma primeira opo para os mais
variados tipos de sada. Quando um dos tipos anteriores selecionado, o nmero de
funo de pertinncia da partio deve ser introduzida. Os tipos predefinidos tambm
inclui uma opo em branco, que gera um tipo sem qualquer funo associada, e a
exteso de um tipo existente (selecionada no campo Parent), que implementa o
mecanismo de herana do XFL3.

Aps o tipo de dado criado, ele pode ser editado usando a janela de edio de
tipo. Esta janela permite a alterao do nome do tipo e do domnio, por exemplo,
adicionar, editar e remover as funes de pertinncia. A janela mostra uma
representao grfica das funes associadas, onde a funo associada representada
com uma cor diferente. A parte inferior da janela apresenta uma barra de comandos com
os botes habituais para salvar ou rejeitar as alteraes mais recentes, e para fechar a
janela. importante considerar que as modificaes na definio do domnio pode
afetar as funes de pertinncia. Assim, a validao dos parmetros da funo associada
feita antes de salvar as modificaes, e uma mensagem de erro aparece sempre que
uma definio da funo associada se tornar invlida.

XFUZZY 3ComCapaNT-1.doc
13

XFuzzy 3.0 Manual Verso em Portugues

A funo de pertinncia pode ser criada ou editada a partir da lista MF com os


atalhos (tecla Insert e Enter, duplo click). A figura anterior mostra a janela para a
edio de uma funo associada. A janela tem campos para introduzir o nome do label
lingstico, para selecionar o tipo de funo, e para introduzir os valores dos parmetros.
O lado direito da janela mostra uma representao grfica de todas as funes de
pertinncia, com a funo que est sendo editada (mostrada em uma cor diferente). A
parte inferior da janela mostra uma barra de comando com trs opes: Set, para fechar
a janela e salvar as alteraes, Refresh, para redesenhar a representao grfica, e
Cancel, para fechar a janela sem salvar as modificaes.

O terceiro passo na definio de um sistema fuzzy descrever a base de regras


expressando a relao entre as variveis do sistema. A base de regras pode ser criada,
XFUZZY 3ComCapaNT-1.doc
14

XFuzzy 3.0 Manual Verso em Portugues

editada e removida da lista com os atalhos de costume. A janela a seguir exemplifica a


edio das bases regra.

A edio das regras dividida em trs locais: o lado esquerdo tem os campos
para introduzir os nomes da base de regras e do operador de conjunto usado, e para
apresentar as listas de variveis de entrada e sada. A direita mostrado o contedo das
regras includas na base de regras. Na parte inferior da janela contm a barra de
comandos com os botes habituais para salvar ou rejeitar as modificaes, e para fechar
a janela.

As variveis de entrada e sada podem ser criadas, editadas ou removidas com os


atalhos comuns. As informaes obrigatrias para definir um varivel seu nome e tipo.

O contedo das regras pode ser visualizado em trs formatos: livre, tabular e
matricial. O formato livre usa trs campos para cada regra. O primeiro contm o peso da
confiana. O segundo campo mostra o antecedente da regra campo auto-editvel, onde
podem ser feitas alteraes, selecionando o termo para modificar (smbolo "?" significa
um termo em branco). O terceiro campo de cada regra contm sua descrio. tambm
um campo auto-editvel que pode ser modificado clicando no boto "->". Novas regras

XFUZZY 3ComCapaNT-1.doc
15

XFuzzy 3.0 Manual Verso em Portugues

podem ser geradas introduzindo valores na na ltima linha (marcada com o smbolo
"*").

A barra de botes na parte inferior permite:

criar condies de conjuno (boto "&"),

termos de disjuno (boto "|");

termos modificados no com a barreira lingstica (boto "!"),

mais ou menos (boto "~"),

ligeiramente (boto "% "),

forte (boto"+")

E termos nicos relacionando uma varivel e rtulo com as clusulas de:

igual ("=="),

no igual a ("! = "),

maior que menor que (">"), ("<"),

maior ou igual a (">="),

menor ou igual a ("<="),

aproximadamente igual a ("~=") ,

fortemente igual ("+="),

um pouco igual a ("%=").

O boto "->" usado para adicionar uma concluso a regra. O boto ">..<" usado
para remover um termo de conjuno ou disjuno (por exemplo, um "v == & l?"
transformado em "v == l"). A forma livre permite ao usurio descrever relaes mais
complexas entre as variveis do que outros formatos.

XFUZZY 3ComCapaNT-1.doc
16

XFuzzy 3.0 Manual Verso em Portugues

O formato tabular til para definir as regras cujo antecedente usa apenas
operadores e e equivalentes (==). Cada regra tem um campo para introduzir o peso da
confiana e uma lista por variveis de entrada e sada. No h necessidade de selecionar
todos os campos das variveis, mas uma varivel de entrada e uma sada tm sempre de
ser selecionada. Se uma base de regra contm uma regra que no pode ser expressa no
formato tabular, a formato tabular no poder ser aberto e uma mensagem de erro ser
exibida.

XFUZZY 3ComCapaNT-1.doc
17

XFuzzy 3.0 Manual Verso em Portugues

O formato matricial especialmente designado para descrever uma base de


regras duas entradas uma sada. Este formulrio mostra o contedo de uma base de
regra de forma clara e compacta. A forma matricial gera regras tais como "if (x == X &
Y == y) -> z = Z", ou seja, as regras com um peso de confiana 1,0 e formado pela
conjuno de duas igualdades. Estas bases de regras que no tm o nmero adequado de
variveis, ou que contenham regras com um formato diferente, no podem ser
mostradas dessa forma.

Uma vez que os conjuntos de operadores, tipos de variveis e bases de regras


forem definidos, o passo seguinte em um sistema fuzzy definir a entrada geral e as
variveis de sada usando a janela Variable Properties. As informaes necessrias para
criar uma varivel o seu nome e tipo.

A etapa final da uma definio de sistema fuzzy a descrio da sua estrutura


(possivelmente hierrquica). O bindkey usado para introduzir um novo mdulo (uma
chamada para uma base de regra) em uma hierarquia a tecla Insert. Para fazer ligaes
entre os mdulos, o usurio deve pressionar o mouse sobre o n que representa a
varivel de origem e soltar o boto sobre o n de destino. Para remover um link, o
usurio deve selecion-lo clicando no n de destino e pressionar a tecla Delete. A
ferramenta no permite que se crie um loop entre os mdulos.

XFUZZY 3ComCapaNT-1.doc
18

XFuzzy 3.0 Manual Verso em Portugues

A FERRAMENTA DE EDIO DE PACOTES XFPKG


A descrio de um sistema fuzzy dentro do ambiente Xfuzzy 3.0 dividido em
duas partes. A estrutura do sistema lgico (incluindo as definies de conjuntos de
operadores, tipos de variveis, bases de regras, comportamento e a estrutura hierrquica)
especificado em arquivos com a extenso ".XFL", e pode ser editado com
graficamente com o xfedit. Por outro lado, a descrio das funes matemticas
utilizadas como conectores fuzzy, barreiras lingsticas, funes, composies e
mtodos de defuzzificao so especificadas nos packages.

A ferramenta xfpkg dedicado a facilitar a edio de pacotes. A ferramenta


implementa uma interface grfica que mostra a lista das diferentes funes includas no
pacote, e os contedos dos diferentes campos. A maioria desses campos contm cdigos
descrevendo a funo em diferentes linguagens de programao. Este cdigo deve ser
introduzido manualmente. A ferramenta pode ser executado a partir da linha de
XFUZZY 3ComCapaNT-1.doc
19

XFuzzy 3.0 Manual Verso em Portugues

comando ou a partir da janela principal do ambiente, utilizando a opo Edit package


no menu Design.

A figura anterior mostra a janela principal do xfpkg. O menu FILE contm as


opes "SAVE", "SAVE AS", COMPILE", "DELETE" e " CLOSE EDITION". As
duas primeiras opes so usadas para salvar o arquivo do pacote. A opo
"COMPILE" realiza um processo de compilao que gera os arquivos ".java" e ". class"
relacionados a cada funo definida no pacote. A opo "DELETE " usado para
remover o arquivo do pacote e todos os arquivos ".java" e ".class" gerados pelo
processo de compilao. A ltima opo usada para fechar a ferramenta.

A janela principal dividida em duas partes. A esquerda contm quatro listas


mostrando os diferentes tipos de funes includas no pacote: funes binrias
(relacionado com a conjuno, disjuno, agregao e operadores), funes unrias
(associado com barreria lingustica), funes de pertinncia (em relao aos rtulos
lingsticos) e mtodos de defuzzificao (usado para obter valores representativos das
XFUZZY 3ComCapaNT-1.doc
20

XFuzzy 3.0 Manual Verso em Portugues

concluses fuzzy). A direita da janela principal mostra o contedo dos diferentes


campos da definio da funo. A parte inferior contm um grupo de trs botes:
"EDIT", "APPLY" e "RELOAD". Quando uma funo selecionada em uma lista, os
seus campos no podem ser modificados primeiro. O comando Edit usado para
permitir ao usurio modificar os campos. O comando Apply salva as alteraes da
definio. Isso inclui a gerao dos arquivos ".java" e ".class". O comando Reload
rejeita as alteraes e atualiza os campos com os valores anteriores.

Os campos de uma definio de funo so distribudos entre seis abas. O painel


Alias contm a lista de identificadores alternativos e do bloco de fonte com o cdigo
Java de mtodos locais que podem ser utilizados em outros campos e que esto
diretamente incorporados no arquivo ".java". O painel Parameters contm a lista dos
parmetros usados pela funo editado. O painel inclui tambm o campo requires, para
descrever as restries sobre os valores dos parmetros.

XFUZZY 3ComCapaNT-1.doc
21

XFuzzy 3.0 Manual Verso em Portugues

O painel Java, C e C++ contm a descrio do comportamento da funo na


respectiva linguagem de programao.

O ltimo painel contm de descrio da funo derivada.

XFUZZY 3ComCapaNT-1.doc
22

XFuzzy 3.0 Manual Verso em Portugues

A definio da funo associada requer informao adicional para descrever o


comportamento da funo em diferentes linguagens de programao. Nestes casos, o
Java, C, C + + e painis derivados contm quatro campos para mostrar o contedo do
subblocos equal, greatereq, smallereq, center, e basis.

XFUZZY 3ComCapaNT-1.doc
23

XFuzzy 3.0 Manual Verso em Portugues

A respeito dos mtodos de defuzzificao, podem incluir a enumerao das


funes associadas que podem ser usadas por cada mtodo. Essa enumerao aparece
no painel de parmetros.

XFUZZY 3ComCapaNT-1.doc
24

XFuzzy 3.0 Manual Verso em Portugues

A ferramenta xfpkg interface grfica que permite ao usurio visualizar e editar


a definio das funes includas em um pacote. Esta ferramenta usada para descrever
o comportamento matemtico das funes definidas em uma forma grfica. Assim, esta
ferramenta o complemento da ferramenta xfedit, que descreve a estrutura lgica do
sistema, na fase de descrio do sistema fuzzy.

XFUZZY 3ComCapaNT-1.doc
25

XFuzzy 3.0 Manual Verso em Portugues

FASE DE VERIFICAO
A fase de verificao no processo de concepo do sistema fuzzy consiste em
estudar o comportamento do sistema fuzzy em desenvolvimento. O objetivo desta etapa
a deteco de provveis desvios no comportamento esperado e a identificao das
fontes desses desvios.

O Xfuzzy 3.0 abrange a fase de verificao a partir de quatro ferramentas. A


primeira xf2dplot, que mostra o comportamento do sistema por um grfico
bidimensional. A segunda ferramenta, xf3dplot, implementa uma representao
tridimensional grfica do comportamento do sistema. A ferramenta de monitor, xfmt,
mostra o grau de ativao de cada rtulo lingstico e regra lgica, bem como o valor
das diferentes variveis internas para um determinado conjunto de valores de entrada.
A ltima ferramenta, xfsim, visa simular o sistema dentro de seu ambiente real ou
modelo operacional. Permite a ilustrao da evoluo do sistema por meio de uma
representao grfica das variveis selecionadas pelo usurio.

A ferramenta de representao grfica em 2 dimenses xf2dplot permite estudar


o comportamento de uma varivel de sada do sistema fuzzy em funo de uma varivel
de entrada. A ferramenta implementa uma representao 2-dimensional grfica que
mostra a variao da varivel de sada selecionada com relao varivel de entrada.
Quando o sistema contm mais de uma varivel de entrada, o usurio deve apresentar
um valor para cada varivel de entrada no-selecionada. A ferramenta pode ser
executada a partir da linha de comando pela expresso "xf2dplot file.xfl", ou a partir da
janela principal do ambiente, utilizando a opo "Plot 2D"no menu de
VERIFICATION.

A janela principal da ferramenta dividida em duas partes: a da esquerda


dedicada configurao da representao grfica, enquanto a parte direita ocupada
pela plotagem (desenho). A zona de configurao formada por um conjunto de
campos dedicados introduo dos valores fixados das variveis de entrada noXFUZZY 3ComCapaNT-1.doc
26

XFuzzy 3.0 Manual Verso em Portugues

selecionados. Duas listas suspensas permitem a seleo da varivel de entrada e de sada


que sero representadas. Por fim, dois botes na parte inferior da zona de configurao
so usados para realizar a representao grfica (PLOT) e sadas da ferramenta
(CLOSE).

A ferramenta de representao grfica em 3 dimenses Xf3dplot ilustra o


comportamento de um sistema distorcido por uma representao tridimensional, ou seja,
uma superfcie mostrando uma varivel de sada em funo de duas variveis de
entrada. Assim, o sistema a ser representado deve conter pelo menos duas variveis de
entrada. Se o sistema contm mais de duas variveis de entrada, os no selecionados,
devero ser especificados pelo usurio. A ferramenta pode ser executada a partir da
linha de comando pela expresso "xf3dplot file.xfl", ou a partir da janela principal do
ambiente, utilizando a opo "Surface 3D Plot" no menu de VERIFICATION.

A janela principal da ferramenta dividida em duas partes: o lado esquerdo


dedicado a configurar a representao grfica, enquanto a parte a direita da janela
ocupada pela plotagem. A zona de configurao formada por um conjunto de campos
dedicados a introduzir os valores fixados das variveis de entrada no-selecionadas.
Trs listas permitem a seleo das variveis atribudas a cada eixo. O ltimo campo
contm o nmero de pontos utilizados na partio do eixo X e Y. Este um parmetro
importante, pois determina a resoluo da representao. Um valor mais baixo deste

XFUZZY 3ComCapaNT-1.doc
27

XFuzzy 3.0 Manual Verso em Portugues

parmetro pode excluir detalhes importantes do comportamento do sistema. Por outro


lado, um valor alto vai fazer com que seja difcil compreender a superfcie representada
(o valor padro deste parmetro 40).

A representao grfica inclui a possibilidade de girar a superfcie por meio de


dois botes deslizando-os na parte direita e inferior da plotagem. Esta capacidade de
rotao facilita a interpretao da superfcie representada.

A FERRAMENTA DE MONITOR DE INFERNCIA XFMT


O objetivo da ferramenta xfmt acompanhar o processo de inferncia no sistema
fuzzy, ou seja, mostrar graficamente os valores das diversas variveis internas e do grau
de ativao das regras pela lgica fuzzy e pelos rtulos lingsticos, conforme um
determinado conjunto de valores de entrada. A ferramenta pode ser executada a partir da
linha de comando pela expresso "xfmt file.xfl", ou a partir da janela principal do
ambiente, utilizando a opo "Monitor" no menu de VERIFICATION.

A janela principal do xfmt dividida em trs partes. A zona de esquerda usada


para introduzir os valores das variveis de entrada. Para cada varivel, h um campo
para introduzir manualmente o seu valor, e um boto deslizante para introduzir o valor
como uma posio dentro de um intervalo. O lado direito mostra o conjunto fuzzy
XFUZZY 3ComCapaNT-1.doc
28

XFuzzy 3.0 Manual Verso em Portugues

associado com o valor das variveis de saida, bem como um valor crisp (defuzzificado)
para essa varivel. Este valor crisp mostrado tambm como um singleton, na plot do
conjunto fuzzy (se o conjunto fuzzy j um singleton, este plot s mostra r este
singleton). O centro da janela ilustra a estrutura (hierrquica) do sistema.

A ferramenta tambm inclui uma janela para monitorar os valores internos do


processo de inferncia em cada base de regra. Para abrir essa janela, basta clicar sobre a
base de regra da estrutura hierrquica do sistema.

A janela de regras do monitor da base dividida em trs partes. Os valores das


variveis de entrada so mostrados esquerda como valores nicos dentro das funes
atribudas aos diferentes rtulos lingsticos. O centro da janela contm um conjunto de
XFUZZY 3ComCapaNT-1.doc
29

XFuzzy 3.0 Manual Verso em Portugues

campos com o grau de ativao de cada regra. O lado direito mostra os valores das
variveis de sada obtido pelo processo de inferncia. Se o operador de conjunto usado
na base de regra especificar um mtodo de defuzzificao, o valor de sada
defuzzificado, e a varivel plotada no apenas mostra o valor fuzzy, mas tambm o
valor crisp que atribudo varivel de sada.

A FERRAMENTA DE SIMULAO XFSIM


A ferramenta xfsim dedicada ao estudo de sistemas de feedback. A ferramenta
executa uma simulao do comportamento do sistema conectado planta. A ferramenta
pode ser executado a partir da linha de comando pela expresso "file.xfl xfsim", ou a
partir da janela principal do ambiente com a opo "Simulation" no menu de
VERIFICATION.

A janela principal do xfsim mostrada na figura acima. A configurao do


processo de simulao feita no lado esquerdo da janela, enquanto o lado direito mostra
o status do sistema de feedback. A parte inferior da janela contm uma barra de menu
com as opes "Load", "Save", "Run/Stop", "Reload" e "Close". A primeira opo
usada para carregar uma configurao para o processo de simulao. A segunda salva a
configurao atual em um arquivo externo. Run/Stop usada para iniciar e parar o

XFUZZY 3ComCapaNT-1.doc
30

XFuzzy 3.0 Manual Verso em Portugues

processo de simulao. A opo Reload rejeita a simulao atual e reinicializa a


ferramenta. A ltima opo sai da ferramenta.

A configurao de um processo de simulao feita pela seleo do modelo da


planta relacionada com o sistema fuzzy e a descrio dos valores iniciais da planta, as
condies finais e uma lista de resultados desejados para o processo de simulao. Estas
sadas podem ser um arquivo de log para salvar os valores de algumas variveis
selecionadas, e representaes grficas destas variveis. O estado de simulao contm
o nmero de iteraes, o tempo decorrido para a inicializao da simulao, os valores
das variveis fuzzy de entrada, que representam o estado da planta, e os valores das
variveis de sada do sistema fuzzy, que representam a ao da sistema fuzzy na planta.

A planta conectada ao sistema fuzzy descrito por um arquivo com extenso


".class ', contendo o cdigo binrio Java de uma classe que descreve o comportamento
da planta. Esta classe deve implementar a interface xfuzzy.PlantModel cujo cdigo :

package xfuzzy;
public interface PlantModel {
public void init() throws Exception;
public void init(double[] state) throws Exception;
public double[] state();
public double[] compute(double[] x);
}

A funo init() usado para inicializar a instalao com seus valores padres, e
deve gerar uma exceo quando estes valores no so definidos ou no podem ser
atribudos planta. A funo init ([double]) usado para definir os valores iniciais. Ele
tambm gera uma exceo quando estes valores no podem ser atribudas planta. A
funo state() retorna os valores do estado da planta, que correspondem s variveis de
entrada do sistema fuzzy. Finalmente, a funo compute([double]) modifica o status da
planta em termos de valores fuzzy de sada. O usurio deve escrever e compilar esta
classe.

XFUZZY 3ComCapaNT-1.doc
31

XFuzzy 3.0 Manual Verso em Portugues

Definir uma planta pela classe Java oferece uma grande flexibilidade para
descrever sistemas externos. A forma mais simples consiste em descrever um modelo
matemtico da evoluo da planta de seu estado e os valores de sada do sistema fuzzy.
Neste esquema, as funes init e state atribuem e retornam, respectivamente, os valores
do estado das variveis internas, enquanto a funo compute implementa o modelo
matemtico. Um esquema mais complexo consiste em utilizar uma planta real
conectado ao computador (geralmente por uma placa de aquisio de dados). Neste
caso, a funo init deve inicializar o sistema de aquisio de dados, a funo state de
capturar o estado atual da planta, e a funo compute deve escrever a ao sobre a placa
de aquisio de dados, bem como capturar o novo estatuto da planta.

A configurao do processo de simulao tambm requer a introduo de


algumas condies finais.

O estado inicial da planta descrito pela janela abaixo, contendo o conjunto de


campos relatados para as variveis da planta, que correspondem as variveis de entrada
do sistema fuzzy.

XFUZZY 3ComCapaNT-1.doc
32

XFuzzy 3.0 Manual Verso em Portugues

A ferramenta xfsim pode fornecer representaes grficas do processo de


simulao, bem como, salvar os resultados de simulao em um arquivo de log. A tecla
Insert usada para introduzir uma nova representao. Neste caso ir abrir uma janela
pedindo o tipo de representao: um arquivo de log ou uma representao grfica. A
janela para a descrio de um arquivo de log tem um campo para selecionar o nome do
arquivo, e alguns botes para escolher as variveis a serem salvos.

A janela para descrever a representao grfica contm duas listas suspensas


para selecionar a varivel atribuda ao eixo X e Y, e um conjunto de botes para
escolher o estilo de representao.

XFUZZY 3ComCapaNT-1.doc
33

XFuzzy 3.0 Manual Verso em Portugues

As configuraes de um processo de simulao podem ser salvas em um arquivo


externo, e carregada de um arquivo salvo anteriormente. O contedo deste arquivo
composto pelas seguintes diretrizes:

xfsim_plant("filename")
xfsim_init(value, value, ...)
xfsim_limit(limit & limit & ...)
xfsim_log("filename", varname, varname, ...)
xfsim_plot(varname, varname, style)

A directiva xfsim_plant contm o nome do arquivo (Java) descrevendo a planta. A


directiva xfsim_init contm o valor do estado inicial da planta. Se esta diretiva no
aparece no arquivo de configurao, um estado default inicial assumido. A directiva
xfsim_limit contm a definio das condies finais, que so expressas como um
conjunto de limites separados pelo caracter &. O formato de cada limite varivel
<valor para os limites superiores, e varivel > valor para os limites inferiores.

Os arquivos de log so descritos na directiva xfsim_log, que inclui o nome do


arquivo de log e a lista de variveis a serem salvas. As representaes grficas so
definidas pela directiva xfsim_plot, que inclui os nomes das variveis atribudas aos
eixos X e Y, e do estilo de representao. O valor 0 significa estilo de um grfico de

XFUZZY 3ComCapaNT-1.doc
34

XFuzzy 3.0 Manual Verso em Portugues

linhas, valor 1 indica grfico pontilhado; o valor 2 faz com que o grfico utilize
quadrados, e os valores 3, 4 e 5 indicam a utilizao de crculos de diferentes tamanhos.

A figura a seguir mostra um exemplo de uma classe Java para uma fbrica de
veculos. Este um modelo de planta que pode ser utilizado como um sistema fuzzy em
ambientes de caminhes. O estado do veculo armazenada no interior varivel state[].
As funes init apenas atribuem os valores para o estado dos componentes: o primeiro
componente a posio X, o segundo o ngulo, a terceira a posio Y, e a ltima
contm a varivel olddir. Esses componentes correspondem s variveis de entrada do
sistema fuzzy. A funo state retorna a varivel interna. A dinmica do veculo
descrita pela funo compute. Os inputs para essa funo so as variveis de sada do
sistema fuzzy. Ento, val [0] contm o valor da varivel whell, e val [1] contm o valor
de direction. O giro das rodas leva a uma mudana no ngulo, e um novo ngulo e
direo permite o clculo de uma nova posio do veculo.
public class TruckModel implements xfuzzy.PlantModel {
private double state[];
public TruckModel {
state = new double[4];
}
public void init() {
state[0] = 0;
state[1] = 0;
state[2] = 50;
state[3] = -10;
}
public void init(double val[]) {
state[0] = val[0]; // x
state[1] = val[1]; // angle
state[2] = val[2]; // y
state[3] = val[3]; // direction
}
public double[] state() {
return state;
}
public double[] compute(double val[]) {
state[3] = val[1];
state[1] += state[3]*val[0]/25;
if( state[1] > 180) state[1] -= 360;
if( state[1] < -180) state[1] += 360;
state[0] += state[3]*Math.sin(state[1]*Math.PI/180)/10;
state[2] += state[3]*Math.cos(state[1]*Math.PI/180)/10;
return state;
}
}

XFUZZY 3ComCapaNT-1.doc
35

XFuzzy 3.0 Manual Verso em Portugues

Uma vez que a planta do modelo descrita, o usurio deve compil-lo para gerar
o arquivo binrio .class. importante conferir o valor da varivel de ambiente
CLASSPATH, pois deve conter o caminho para a definio da interface. Assim,
CLASSPATH deve conter o caminho para "base/xfuzzy.jar", onde a base refere ao
diretrio de instalao do Xfuzzy. (Nota: no MS-Windows o caminho deve incluir o
percurso "base\xfuzzy.jar". Ateno ao separador).

A figura a seguir mostra uma representao grfica que corresponde a um


processo de simulao sobre o sistema de caminho com o modelo da planta acima
comentado. Um limite de 200 iteraes foi imposto, e o estado inicial foi definido como
uma posio (30,15) e um ngulo de 135 graus.

XFUZZY 3ComCapaNT-1.doc
36

XFuzzy 3.0 Manual Verso em Portugues

FASE DE AJUSTE
A fase de ajuste normalmente uma das tarefas mais complexas na elaborao
de sistemas fuzzy. O comportamento do sistema depende da estrutura lgica da sua base
de regras e as funes de pertinncia de suas variveis lingsticas. O processo de ajuste
muito frequentemente centrado em configurar os diferentes parmetros das funes de
de associao que aparecem na definio do sistema. Como o nmero de parmetros
para modificar elevado, um ajuste manual bastante complicado tornando juz o uso
de tcnicas automticas. Os dois mecanismos de aprendizagem mais utilizadas so a
aprendizagem reforada e supervisionada. Nas tcnicas de aprendizagem supervisionada
o comportamento do sistema desejado dado por um conjunto de formaes (e testes)
de entrada/sada de dados. Na aprendizagem reforada o que se sabe no a sada dos
dados exatos, mas o efeito que o sistema tem de produzir no ambiente, assim tornando
necessrio o acompanhamento on-line de seu comportamento.

O ambiente Xfuzzy 3.0 contm uma ferramenta especfica para o estgio de


ajuste: xfsl, que se baseia na utilizao de algoritmos de aprendizado supervisionado.
Aprendizado supervisionado tenta minimizar uma funo de erro, que avalia a diferena
entre o comportamento do sistema real e seu comportamento desejado definido por um
conjunto de valores default de entrada/sada.

A FERRAMENTA DE APRENDIZADO SUPERVISIONADO XFSL


Xfsl uma ferramenta que permite ao usurio aplicar algoritmos de aprendizado
supervisionado para ajustar os sistemas fuzzy. A ferramenta pode ser executada em
modo grfico ou atravs da de linhas de comando. O modo grfico utilizado quando
executada (solicitada) pela janela principal do ambiente (usando a opo " Supervised
learning" no menu TUNNING). O modo para entrada de comandos executado a partir
da linha de comando com a expresso "xfsl file.xfl file.cfg", onde o primeiro arquivo

XFUZZY 3ComCapaNT-1.doc
37

XFuzzy 3.0 Manual Verso em Portugues

contm a definio do sistema em formato XFL3, e a segunda contm a configurao


do processo de aprendizagem (veja o arquivo de configurao abaixo).

A figura acima ilustra a janela principal do xfsl. Esta janela dividida em quatro
partes. O canto superior esquerdo a rea para configurar o processo de aprendizagem.
O estado do processo de aprendizagem mostrado na parte superior direita. A rea
central ilustra a evoluo da aprendizagem, e na parte inferior contm diversos botes
para executar ou parar o processo, salvar os resultados, e sair.

Para configurar o processo de aprendizagem, o primeiro passo selecionar um


arquivo de treinamento que contm a entrada/sada de dados do comportamento
desejado. Um arquivo de teste, cujos dados so utilizados para verificar a generalizao
da aprendizagem, tambm pode ser selecionado. O formato desses dois arquivos
padres apenas uma enumerao dos valores numricos que so atribudos s
variveis de entrada e sada na mesma ordem em que aparecem na definio do mdulo
do sistema na descrio XFL3. Este um exemplo de um arquivo padro para um
sistema fuzzy com duas entradas e uma sada:

XFUZZY 3ComCapaNT-1.doc
38

XFuzzy 3.0 Manual Verso em Portugues

0.00 0.00 0.5


0.00 0.05 0.622459
0.00 0.10 0.731059
...

O arquivo de log permite salvar a evoluo da aprendizagem em um arquivo


externo. A seleo deste arquivo opcional.

O passo seguinte na configurao do processo de ajuste a seleo do algoritmo


de aprendizagem. Xfsl tem diversos algoritmos de aprendizagem (ver algoritmos seo
abaixo).

Uma vez que o algoritmo selecionado, uma funo de erro deve ser escolhida.
A ferramenta oferece vrias funes de erro que podem ser usadas para expressar o
desvio entre o real e o comportamento desejado (ver abaixo). Por default selecionada a
Mean Square Error.

Xfsl contm dois algoritmos de processamento para simplificar o sistema fuzzy.


O primeiro algoritmo retira as regras e reduz as funes de pertinncia que no atingem
uma ativao significativa ou grau de pertinncia. Existem trs verses do algoritmo: a
poda de todas as regras que nunca so ativadas durante um determinado limite, a poda
das piores regras de N, e poda de todas as regras, exceto as melhores de N. O segundo
algoritmo agrupa as funes de pertinncia das variveis de sada. O nmero de clusters
pode ser fixado a uma determinada quantidade, ou calculados automaticamente. Estes
dois algoritmos de processamento podem ser aplicados no sistema antes do processo de
ajuste (opo preprocessing) ou depois (opo postprocessing).

XFUZZY 3ComCapaNT-1.doc
39

XFuzzy 3.0 Manual Verso em Portugues

Uma condio final deve ser especificada para concluir o processo de


aprendizagem. Esta condio um limite imposto ao nmero de iteraes, a meta de
erro mximo, ou o desvio mximo absoluto ou relativo (considerando tanto a formao
ou o erro do teste).

A ferramenta permite ao usurio escolher os parmetros a serem ajustados. A


janela seguinte usada para habilitar ou desabilitar o ajuste dos parmetros. As trs
listas superiores so usados para selecionar um parmetro, ou um conjunto de
parmetros, selecionando o tipo de varivel, a funo de pertinncia desse tipo, e o
ndice do parmetro da funo associada. A menor lista mostra as configuraes atuais.
Essas configuraes so interpretadas na ordem em que aparecem na lista. Neste
exemplo, todos os parmetros so desabilitados e, em seguida, os parmetros do tipo
TZ so habilitados.

XFUZZY 3ComCapaNT-1.doc
40

XFuzzy 3.0 Manual Verso em Portugues

Uma configurao completa pode ser salva em um arquivo externo que estar
disponvel para os processos subseqentes.

Xfsl pode ser aplicado a qualquer sistema fuzzy descrito pela linguagem XFL3,
mesmo em sistemas que empregam funes especficas definidas pelo usurio. O que
deve ser considerado so caractersticas do sistema que podem impor restries sobre
os algoritmos de aprendizagem aplicados (por exemplo, um sistema no derivados no
pode ser ajustado por um algoritmo de gradiente descendente).

XFUZZY 3ComCapaNT-1.doc
41

XFuzzy 3.0 Manual Verso em Portugues

ESTGIO DE SNTESE
A etapa de sntese a ltima etapa no fluxo de projeto de um sistema. Seu
objetivo gerar uma representao do sistema que pode ser usado externamente.
Existem dois tipos de representaes de um sistema fuzzy: representaes de software e
hardware. A sntese software gera um sistema de representao em uma linguagem de
programao de alto nvel. A sntese de hardware gera um circuito microeletrnico que
implementa o processo de inferncia descrito pelo sistema fuzzy.

Representaes de software so teis quando no h fortes restries sobre a


velocidade de inferncia, o tamanho do sistema, ou o consumo de energia. Eles podem
ser gerados a partir de qualquer sistema fuzzy desenvolvido em Xfuzzy. Por outro lado,
as representaes de hardware so mais adequadas quando se necessita de alta
velocidade ou poder de processamento, mas para que esta soluo seja eficiente existem
algumas restries a serem impostas sobre os sistemas fuzzy, de modo que a sntese de
hardware no seja to genrica como os de software.

Xfuzzy 3.0 oferece ao usurio trs ferramentas para a sntese de software: xfc,
que gera uma descrio do sistema em ANSI-C, xfcpp para C+ +, e xfj, que representa o
sistema atravs de uma classe Java.

A FERRAMENTA DE GERAO DE CDIGO JAVA XFJ


A ferramenta xfj gera uma representao em Java do sistema fuzzy. A
ferramenta pode ser executada a partir da linha de comando pela expresso "xfj [-p
package] file.xfl" ou no menu da janela principal. Quando utilizado atravs da linha
de comando nenhuma interface grfica acionada. Neste caso, os arquivos de cdigo
Java so gerados no diretrio do arquivo do sistema, e uma instruo do pacote
adicionado nas classes Java quando a opo -p for incluida. Quando utilizado pela pela
janela principal, o nome do pacote e o diretrio de destino podem ser escolhidos.

XFUZZY 3ComCapaNT-1.doc
42

XFuzzy 3.0 Manual Verso em Portugues

Dada a especificao de um sistema fuzzy no formato XFL3, systemname.xfl, a


ferramenta

gera

quatro

arquivos:

FuzzyInferenceEngine.java,

MembershipFunction.java, FuzzySingleton.java e systemname.java. Os trs primeiros


arquivos so descries de duas interfaces e uma classe que so comuns a todos os
sistemas de inferncia fuzzy, enquanto o ltimo contm a descrio especfica do
sistema fuzzy.

O arquivo FuzzyInferenceEngine.java descreve uma interface Java que define


um sistema de inferncia fuzzy geral. Essa interface define quatro mtodos para
implementar o processo de inferncia com valores crisp e fuzzy.

public interface FuzzyInferenceEngine {


public double[] crispInference(double[] input);
public double[] crispInference(MembershipFunction[] input);
public MembershipFunction[] fuzzyInference(double[] input);
public MembershipFunction[] fuzzyInference(MembershipFunction[]
input);
}

O arquivo MembershipFunction.java contm a descrio de uma interface


usada para descrever um nmero fuzzy. Tem apenas um mtodo, chamado de compute,
que calcula o grau de pertinncia para cada valor do universo do discurso do nmero
fuzzy.

public interface MembershipFunction {


public double compute(double x);
}

XFUZZY 3ComCapaNT-1.doc
43

XFuzzy 3.0 Manual Verso em Portugues

A classe FuzzySingleton implementa a interface MembershipFunction, e


representa um valor crisp como um nmero fuzzy.

public class FuzzySingleton implements MembershipFunction {


private double value;
public FuzzySingleton(double value) { this.value = value; }
public double getValue() { return this.value; }
public double compute(double x) { return (x==value? 1.0: 0.0); }
}

Finalmente, o systemname.java contm a classe que descreve o sistema fuzzy.


Essa classe uma implementao da interface FuzzyInferenceEngine. Assim, os
mtodos pblicos que desenvolvem a inferncia so aqueles da interface
(crispInference e fuzzyInference).

XFUZZY 3ComCapaNT-1.doc
44

XFuzzy 3.0 Manual Verso em Portugues

Referncias Bibliogrficas
BATURONE, I., MORENO-VELO, F.J., SANCHEZ-SOLANO, S., BARRIGA, A.,
BROX, P., GERSNOVIEZ, A., BROX, M., Using XFuzzy environment for the whole
design of fuzzy systems, In: Proc. IEEE International Conference on Fuzzy Systems,
pp.,
London,
july.
2007,
disponvel
em:<
http://www.imsecnm.csic.es/online/2003/FUZZIEEE2003.FMV.pdf>. Acesso em 21 fev. 2011.
IMSE-CNM , XFuzzy. Fuzzy Logic Design Tools, Espanha Sevilha:Instituto de
Microeletrnica de Sevilla, 2003, 54 p. disponvel em:< http://www2.imsecnm.csic.es/Xfuzzy/Xfuzzy_3.0/Xfuzzy3.0_en.pdf>. Acesso em 15 fev. 2011.
MORENO-VELO, F.J., BATURONE, I., SANCHEZ-SOLANO, S., BARRIGA, A.,
XFuzzy 3.0: A development environment for Fuzzy Systems, In: Proc. International
Conference in Fuzzy Logic and Technology, pp. 93-96, Leicester, Sep. 2001,
disponvel em:< http://www.imse-cnm.csic.es/online/2001/EUSFLAT2001.FMV.pdf>.
Acesso em 21 fev 2011.
MORENO-VELO, F.J., BATURONE, I., SANCHEZ-SOLANO, S., BARRIGA, A., Rapid
design of fuzzy systems with XFuzzy, In: Proc. International Conference in Fuzzy
Logic and Technology, pp. 342-347, St. Louis, may. 2003, disponvel em:<
http://www.imse-cnm.csic.es/online/2003/FUZZIEEE2003.FMV.pdf>. Acesso em 21
fev. 2011.

XFUZZY 3ComCapaNT-1.doc
45