Buscar

exemplo artigo logicaFuzzy

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Utilizando Lógica Fuzzy para Avaliar a Qualidade de uma
Compra Via Internet
Leonardo Martins Rodrigues1 e Graçaliz Pereira Dimuro1
1Programa de Pós-Graduação em Modelagem Computacional
Universidade Federal do Rio Grande - FURG
Resumo. O objetivo deste trabalho é realizar um experimento sobre Lógica
Fuzzy. Para isso, escolheu-se um exemplo de aplicação para que esse conceito
pudesse ser utilizado. O exemplo trata sobre um assunto que está a cada dia
mais presente no cotidiano das pessoas: compras pela Internet. Sendo assim, a
ideia é avaliar a qualidade do serviço prestado pela “Loja Online” através da
análise de duas variáveis: tempo de entrega e valor do produto. É feita também
uma análise dos métodos de defuzzificação para esta aplicação.
1. Introdução
A Lógica Fuzzy [Zadeh 1965] foi desenvolvida para a modelagem de raciocínio aproxi-
mado e vago, permitindo descrever de forma efetiva as características de sistemas comple-
xos ou que não podem ser definidos de forma exata. Os relacionamentos entre elementos
e conjuntos seguem uma transição entre pertinência e não pertinência que é gradual, indi-
cando valores de pertinência intermediários entre o verdadeiro e o falso da lógica clássica.
A Lógica Fuzzy tem sido muito utilizada para tratamento de dados e informa-
ções qualitativas, subjetivas, vagas, incertas, possibilitando obter conclusões seguras
e robustas através de raciocínio aproximado. A lógica fuzzy tem sido utilizada com
freqüência e sucesso em controladores fuzzy[Cox 1994], mas seu uso também tem-se
evidenciado em outras áreas, tais como em modelos de agentes para simulação so-
cial e ambiental [Farias et al. 2011, Hassan et al. 2008, Ghasem-Aghaee and Ören 2003,
Ören and Ghasem-Aghaee 2003, Dimuro et al. 2009, Sabeur and Denis 2007], para ope-
rações em terminais de containers [Lokuge and Alahakoon 2004], redes sensoriais sem
fio [Shen et al. 2008], etc.
O objetivo deste trabalho é realizar um experimento utilizando a Lógica Fuzzy,
voltado para uma aplicação bastante atual, tal como a avaliação da qualidade do serviço
prestado por uma loja através da Internet.
O trabalho está organizado como descrito a seguir. A Seção 2 apresenta alguns
conceitos básicos sobre Conjuntos Fuzzy estudados. A descrição do problema é discutida
na Seção 3. A modelagem e a implementação são descritas na Seção 4. A Seção 5 é a
Conclusão.
2. O que é a Lógica Fuzzy?
O termo “Fuzzy” significa algo nebuloso, impreciso ou vago. Tendo isso em vista, a
Lógica Fuzzy visa resolver problemas onde a informação não é precisa, ou seja, tal in-
formação varia de acordo com a compreensão que se tem sobre um determinado assunto.
Porém, antes de entender o que é a Lógica Fuzzy é necessário saber o conceito de Con-
juntos Fuzzy.
2.1. Conjuntos Fuzzy
A teoria dos Conjuntos Fuzzy foi formalizada por Zadeh [Zadeh 1965] e passou a tratar
objetos de forma que seus graus de pertinência para um ou outro grupo varie entre 0 e 1.
Segundo a Lógica Tradicional, ou um objeto (O) é totalmente pertencente a um grupo (1)
ou o objeto é totalmente não pertencente a tal grupo. Por outro lado, nos Conjuntos Fuzzy
um objeto pode ser parcialmente pertencente a um grupo (1) e parcialmente pertencente
a outro grupo (2).
Todas os conceitos conhecidos para um conjunto na matemática podem ser ex-
pandidos para os Conjuntos Fuzzy, realizando-se as devidas adaptações. Dessa forma, é
possível efetuar uma união, uma interseção, um complemento ou um produto cartesiano
entre Conjuntos Fuzzy.
Sabendo que qualquer conjunto clássico pode ser caracterizado por uma função,
a função característica, Zadeh obteve a formalização matemática de um conjunto Fuzzy.
A Definição 2.1.1, a seguir, mostra a representação de uma função de pertinência de um
subconjunto Fuzzy.
Definição 2.1.1 Seja U um conjunto e A um subconjunto de U . A função característica
de A é dada por:
χA(x) =
{
1 se x ∈ A
0 se x /∈ A
Com isso, χA é uma função cujo domínio é U e a imagem está contida no conjunto
0,1. Se χA(x) = 1 significa que x está contido em A, caso contrário, χA(x) = 0 significa
que x não está contido em A. Dessa forma, uma função característica é responsável por
descrever completamente o conjunto A, dado que tal função indica quais elementos do
conjunto universo U são também elementos de A.
2.2. Subconjuntos Fuzzy
Um subconjunto fuzzy F de um conjunto universo U é definido em termos de uma fun-
ção de pertinência ϕ que a cada elemento x de U associa um número ϕ(x), entre zero
e o máximo grau de pertinência de x em F , neste caso é igual a 1. Com isso, a Defini-
ção 2.2.1 mostra como é possível indicar um conjunto fuzzy de acordo com sua função
de pertinência.
Definição 2.2.1 Seja U um conjunto clássico. Um subconjunto fuzzy A de U é caracteri-
zado por uma função
ϕA : U → [0, 1],
pré-fixada, denominada função de pertinência do subconjunto fuzzy A.
Com isso, tem-se que o valor ϕA(x) ∈ [0, 1] associa qualquer elemento x ∈ U ao
conjunto fuzzy A com um determinado grau de pertinência. Se ϕA(x) = 0, isso significa
que x não pertence ao conjunto fuzzy A. Caso contrário, se ϕA(x) = 1, indica que x
pertence completamente ao conjunto fuzzy A.
Formalmente, é possível obter a definição de subconjunto fuzzy ampliando o con-
tra domínio da função característica, ou seja, o conjunto {0, 1}, para o intervalo [0, 1].
Com isso, tem-se que um conjunto clássico A de U é um caso particular do conjunto
fuzzy, para o qual a função de pertinência ϕA é sua função característica de χA, isto é,
ϕA : U → {0, 1}.
Um subconjunto fuzzy F é composto de elementos x de um conjunto clássico U ,
providos de um valor de pertinência a F , dado por ϕF (x). Com isso, pode-se dizer que
um subconjunto fuzzy F de U é dado por um conjunto de pares ordenados:
F = {(x, ϕF (x)), x ∈ U}.
O conjunto clássico de U definido por
suppF = {x ∈ U : ϕF (x) > 0}
é denominado suporte de F e é muito importante no que tange a relação entre as teorias
de conjuntos clássica e fuzzy.
2.3. Operações básicas entre subconjuntos Fuzzy
Para entender as operações, considere a existência de três conjuntos fuzzy A, B e C no
universoU . Seja x um dado elemento no universo em questão, pode-se definir as seguintes
operações:
Inclusão
A ⊆ B ⇐⇒ (ϕA⊆B ⇐⇒ ∀x ∈ U : ϕA(x) ≤ ϕB(x))
União
ϕA∪B(x) = ϕA(x) ∨ ϕB(x) = max{ϕA(x), ϕB(x)}
Intersecção
ϕA∩B(x) = ϕA(x) ∧ ϕB(x) = min{ϕA(x), ϕB(x)}
Complemento
ϕA′(x) = 1− ϕA(x)
Tendo em vista os conceitos básicos abordados, os conjuntos Fuzzy e a Lógica
Fuzzy formam uma base sólida de técnicas para a solução de problemas nas mais diversas
áreas, principalmente em controle e tomada de decisão. Com isso, serão utilizados esses
conceitos para o desenvolvimento deste trabalho.
3. Descrição do problema proposto
O exemplo adotado para implementação neste trabalho está ligado à avaliação da quali-
dade de uma compra realizada via Internet.
Quando uma pessoa procura um item para comprar, seja via Internet ou pessoal-
mente, o primeiro dado a ser analisado é o preço do item. Ou seja, geralmente é feita uma
pesquisa entre os diversos sites (no caso de uma compra via Internet) que disponibilizam
o item para que se verifique qual tem a melhor oferta com relação ao valor do produto.
Ao decidir a Loja online em que será efetuada a compra, um ponto importante
que também deve ser observado diz respeito ao tempo de entrega. Assim, se na loja
escolhida para a compra, o tempo de entrega for muito longo, pode ser que seja mais
vantajoso pagar um pouco a mais em outra loja que tenha o prazo de entrega mais curto,
dependendo da necessidade que se tem em ter tal produto.
Com isso, a intenção da implementação deste problema é de decidir em qual Loja
online será mais vantajosa a realização da compra, com base no preço e no prazo de
entrega do produto.
4. Descrição da implementação do problema
Nesta seção serão mostrados alguns detalhes
com relação à implementação do problema,
tais como: variáveis linguísticas, curvas e valores crisp (valores encontrados no mundo
real) utilizados.
4.1. Definição das variáveis linguísticas - Fuzzificação
Como discutido na Seção 3, existem três variáveis linguísticas que serão abordadas neste
trabalho: preço (ou valor), tempo e qualidade. As duas primeiras se referem diretamente
ao produto de interesse e a última se refere à avaliação da Loja online.
Para a variável linguística valor, foram adotados os seguintes termos linguísticos:
“barato”, “médio” e “caro”. Com isso, foram definidas as fronteiras no qual os termos
definidos pertencem. Ou seja, supondo que um produto custe no mínimo ZERO e no
máximo R$ 100 Reais, um produto barato está considerado na faixa entre R$ 0-50 reais,
um produto médio foi considerado na faixa de R$ 25-75 Reais e, por fim, um produto
caro está na faixa de R$ 50-100 Reais.
Tendo em vista estes valores, pode-se expressar a descrição das funções de perti-
nência como mostra a Figura 1.
Na Figura 1 é possível notar a existência de funções trapezoidais e triangulares.
Isso foi definido pelo fato de representarem melhor a realidade. Dessa forma, um produto
que está na faixa dos produtos baratos tem seu grau de pertinência a esse termo se custa
entre R$ 0-25 Reais, após isso, entre R$ 25-50 Reais, o produto começa a deixar de ser
barato e começa a ter a pertinência ao termo médio aumentada. Assim, existem regiões
de transição de estado do valor, uma entre barato e médio e outra entre médio e caro.
Da mesma forma em que a variável valor foi criada, a variável tempo de entrega
também teve termos adotados, são eles: “rápido”, “médio” e “demorado”. O prazo de
entrega está na faixa de 1-12 dias consecutivos, neste exemplo. Com isso, para que a
entrega seja considerada rápida, o prazo deve variar na faixa de 1-6 dias. Para que uma
entrega seja considerada média, seu prazo deve estar na faixa de 3-9 dias. Por fim, para
que a entrega seja considerada demorada, seu prazo deve estar na faixa de 6-12 dias.
A partir desses dados, pode-se gerar um gráfico que mostra as definições reali-
zadas. A Figura 2, a seguir, ilustra essas definições.
Como visto na Figura 1, a Figura 2 também adota funções trapezoidais e triangu-
lares. Todas as explicações feitas anteriormente também valem para essa variável, com
suas respectivas mudanças de valores.
Figura 1. Funções utilizadas para a variável linguística valor.
Por último, foi definida a variável linguística qualidade do serviço. Para esta va-
riável foram atribuídos os seguintes termos: “ruim”, “médio” e “bom”. A “nota” atribuída
ao serviço varia na faixa de 0-100. Assim, um serviço ruim se enquadra na faixa de 0-50.
Um serviço considerado médio está na faixa de 25-75. Já um serviço considerado bom
está na faixa entre 50-100.
O gráfico que representa essa variável é mostrado na Figura 3.
4.2. Definição das regras - Inferência
Nesta Seção, serão apresentadas as regras de inferência definidas para o problema pro-
posto.
Uma inferência em lógica Fuzzy nada mais é do que a aplicação de uma regra do
tipo: SE X, ENTÃO Y; desde que as variáveis analisadas, X e Y neste caso, sejam noções
difusas.
Sendo assim, foram definidas as seguintes regras de acordo com os conjuntos
definidos na Seção anterior. A Tabela 1 mostra o conjunto de regras de inferência.
Ou seja, dadas as definições das inferências, pode-se criar uma tabela simplificada
que representa todas as definições de forma mais simples. A Tabela 2 mostra a simplifi-
cação adotada.
Para os operadores AND e OR foram atribuídas as funções min(A,B) e max(A,B),
respectivamente, que são exemplos de operadores T-normas e T-conormas que generali-
zam os operadores AND e OR (para a abordagem fuzzy). A primeira função, min(A,B),
Figura 2. Funções utilizadas para a variável linguística tempo de entrega.
retorna A se A<=B, caso contrário retorna B. Já a função max(A,B) retorna A se A>=B,
caso contrário retorna B.
4.3. Avaliação da saída do sistema - Defuzzificação
Nesta Seção serão mostrados os resultados obtidos para a avaliação da saída do sistema.
Os métodos utilizados na defuzzificação do sistema foram os seguintes: Centróide, Pri-
meiro do Máximo e Centro do Máximo. Existem outros métodos para defuzzificação,
porém, apenas os métodos citados foram escolhidos para que se pudesse obter uma com-
paração entre eles.
Para o cálculo do método do Centróide é necessário encontrar o Baricentro (ou
Centróide) da figura formada pela composição dos gráficos das variáveis utilizadas. A
Figura 4 mostra um exemplo de onde está localizado o centróide da forma a seguir.
Com isso, para encontrar o valor do Centróide de uma figura plana composta por
formas geométricas básicas (por exemplo: triângulo e retângulo), deve-se encontrar a área
da figura e seu respectivo baricentro dividindo a figura em formas conhecidas, tais como
as citadas anteriormente.
Área de um retângulo (Aret) e Área de um triângulo (Atri):
Aret = B ∗H. (1)
Atri = B ∗H/2. (2)
onde B é a base da forma e H é a altura.
Figura 3. Funções utilizadas para a variável linguística qualidade do serviço.
Figura 4. Um exemplo da localização do centróide (P) da curva C.
Baricentro de um retângulo (Barret) e Baricentro de um triângulo(Bartri):
Barret = (B/2;H/2). (3)
Bartri = (B/3;H/3). (4)
Em seguida, deve ser calculada cada uma das componentes do Baricentro, sendo:
YG a coordenada y e XG a coordenada x. Para isso, utilizam-se as seguintes equações:
YG =
∑i=N
i=1 yiAi∑i=N
i=1 Ai
. (5)
XG =
∑i=N
i=1 xiAi∑i=N
i=1 Ai
. (6)
O valor de XG é, portanto, o valor encontrado para a variável de saída analisada.
Se (preço X prazo de entrega) Então
Barato & Rápido Bom
Barato & Médio Bom
Barato & Demorado Médio
Médio & Rápido Bom
Médio & Médio Médio
Médio & Demorado Ruim
Caro & Rápido Médio
Caro & Médio Ruim
Caro & Demorado Ruim
Tabela 1. Regras de Inferência.
Valor/Tempo Rápido Médio Demorado
Barato Bom Bom Médio
Médio Bom Médio Ruim
Caro Médio Ruim Ruim
Tabela 2. Tabela relacionando o Valor X Tempo e tendo como resultado a Quali-
dade do serviço.
Outro método conhecido é o Primeiro do Máximo. Como o próprio nome sugere,
neste método é tomado como valor crisp de saída do sistema o primeiro valor do ponto
mais alto do gráfico. A Figura 5 mostra uma ilustração do método.
Figura 5. Um exemplo da localização do primeiro ponto do Máximo (Z0).
Dessa forma, basta encontrar o valor de Z0 para que tenhamos o valor crisp de
saída do sistema.
Por último, é apresentado o método Centro dos Máximos que sugere tomar como
valor crisp de saída o ponto central dos máximos. A Figura 6 mostra um exemplo deste
método.
O valor de Z0 é calculado através da média entre os pontos de máximo. Neste
caso, estão representados pelas duas linhas tracejadas na Figura 6.
4.4. Exemplo de execução
Nesta Seção, será mostrado um exemplo para verificar o funcionamento da Lógica Fuzzy
e do programa implementado.
Figura 6. Um exemplo da localização do centro dos Máximos (Z0).
No programa implementado na Linguagem C, existem os seguintes dados de en-
trada: um valor para o produto (V ) e o tempo de entrega deste produto (T ). Neste
exemplo, vamos supor que V = 60 Reais e T = 4 dias.
O programa, então, entra na etapa de fuzzificação. Nesta etapa são verificadas
as pertinências dos valores de entrada nos respectivos gráficos informados na Seção 4.1.
Como primeira resposta, o programa informa as seguintes pertinências:
• Gráfico de Valor: Barato = 0.00, Médio = 0.60 e Caro = 0.4;
• Gráfico de Tempo: Rápido = 0.67, Médio = 0.33 e Demorado = 0.0;
Em seguida, o programa entra na parte da inferência. Nessa parte, são seguidas
todas as regras de inferência definidas na Seção 4.2. Assim, os valores informados para a
saída (qualidade do serviço) são os seguintes:
• Nível
de Qualidade: Ruim = 0.33, Médio = 0.4 e Bom = 0.6;
Com esses dados, podemos gerar um gráfico para facilitar a visualização das cur-
vas que foram formadas. A Figura 7, a seguir, ilustra o resultado a partir dos valores
citados anteriormente.
Por fim, temos a parte da defuzzificação e serão mostrados os resultados de acordo
com os métodos mostrados na Seção 4.3.
Após separar a Figura 7 em áreas conhecidas, obteve-se a Figura 8. Para o caso
do método do Centróide, além de precisar encontrar a Área total, precisa-se das coorde-
nadas do Baricentro de cada Ai. Deste modo, após a realização dos respectivos cálculos,
encontraram-se os seguintes resultados:
Yg =
y1A1 + y2A2 + y3A3 + y4A4 + y5A5 + y6A6 + y7A7
A1 + A2 + A3 + A4 + A5 + A6 + A7+
= 0.241. (7)
Xg =
x1A1 + x2A2 + x3A3 + x4A4 + x5A5 + x6A6 + x7A7
A1 + A2 + A3 + A4 + A5 + A6 + A7+
= 56.82. (8)
Como precisa-se do valor da coordenada x, o valor de saída crisp do sistema é
Xg = 56.82, como mostra o resultado da Equação 8. Analisando esse valor graficamente,
percebe-se que o valor é justo. Isso, pois, se o valor do produto é 60 Reais e o prazo de
entrega foi de 4 dias, verifica-se que ambos valores estão na faixa dos valores médios de
Figura 7. Gráfico de saída após a execução da fase de inferência.
suas respectivas variáveis. Mais especificamente, o valor 60 está entre médio e caro e o
valor 4 está entre rápido e médio. Portanto, é aceitável que o valor de saída do sistema
(Qualidade do serviço) também esteja na faixa média.
No próximo método, Primeiro do Ponto Máximo, analisar-se-á também o valor de
saída crisp do sistema. Tendo conhecimento da faixa máxima, neste método basta tomar
como saída do sistema o primeiro ponto do máximo. No caso deste exemplo, a saída do
sistema está localizada no ponto Xg = 65. Estes valores são obtidos através de simples
cálculos tendo como base as retas que formam os triângulos e trapézios.
Por fim, o método Centro dos Máximos provê como saída crisp do sistema o ponto
médio (centro) dos máximos através do cálculo da média aritmética entre os pontos de
máximo. Dessa forma, se o primeiro do ponto máximo é 65, e o último ponto máximo é
100, ambos no eixo x, tem-se que XCentral = 82, 5.
Comparando-se as saídas crisp obtidas através dos cálculos dos três métodos,
percebe-se que, para o exemplo citado, o método Centróide apresenta como saída fi-
nal do sistema um valor mais justo, ou seja, de acordo com o que é desejado como saída
do sistema, este foi o valor que mais se aproximou do ideal.
5. Conclusão
Tendo em vista todos os tópicos vistos neste trabalho com relação à Lógica Fuzzy, pôde-se
perceber um pouco de sua utilidade.
Ao ser definido um problema para utilizar lógica Fuzzy, é necessário passar para
as etapas de Fuzzificação, Inferência e Defuzzificação. Conforme aumenta a quantidade
de váriáveis linguísticas, aumenta a complexidade do problema em lógica Fuzzy, pois são
Figura 8. Gráfico de saída após a execução da fase de inferência com a divisão
das áreas (Ai, i = 1, 2, ..., 7).
necessárias regras mais complexas para que o sistema possa gerar uma saída de acordo
com o que se deseja.
Dessa maneira, implementou-se um exemplo de aplicação (qualidade do serviço
em uma compra pela Internet) dessa metodologia abordando todas as fases de desenvol-
vimento de um sistema Fuzzy. Além disso, foi possível perceber a diferença entre os
métodos de defuzzificação sendo necessário avaliar a saída gerada por cada método de
forma que esse resultado corresponda ao valor que se imagina na realidade.
Referências
Cox, E. (1994). The Fuzzy System Handbook: a Practitioner’s Guide to Building, Using
and Maintaining Fuzzy Systems.
Dimuro, G. P., Santos, A. V., Bedregal, G. P., and Costa, A. C. R. (2009). Fuzzy eva-
luation of social exchanges between personality-based agents. In Lopes, L. S., Lau,
N., Mariano, P., and Rocha, L. M., editors, New Trends In Artificial Intelligence, Proc.
of 14th Portuguese Conference on Artificial Intelligence, EPIA’2009, pages 451–462,
Aveiro. APIA/Universidade de Aveiro.
Farias, G. P., Dimuro, G. P., and Costa, A. C. R. (2011). Aplicação de agentes bdi com
percepção fuzzy em um modelo presa-predador fuzzy. Revista de Informática Teórica
e Aplicada, 17(3):299–324.
Ghasem-Aghaee, N. and Ören, T. I. (2003). Towards fuzzy agents with dynamic persona-
lity for human behavior simulation. In Proc. of the 2003 Summer Computer Simulation
Conference, Montreal, July 20-24, 2003, pages 3–10, San Diego. SCS.
Hassan, S., Garmendia, L., and Pavón, J. (2008). Agent-based social modeling and simu-
lation with fuzzy sets. In Corchado, E., Corchado, J. M., and Abraham, A., editors,
Innovations in Hybrid Intelligent Systems, number 44 in Advances in Soft Computing,
pages 40–47. Springer, Berlin.
Lokuge, P. and Alahakoon, D. (2004). Decisions based upon multiple values: the BVG
agent architecture. In Pal, N. R., Kasabov, N., Mudi, R. K., Pal, S., and Parui, S. K.,
editors, Neural Information Processing, number 3316 in LNCS, pages 941–946, Ber-
lin. Springer.
Ören, T. I. and Ghasem-Aghaee, N. (2003). Personality representation processable in
fuzzy logic for human behavior simulation. In Proc. of the 2003 Summer Computer
Simulation Conference, Montreal, July 20-24, 2003, pages 11–18, San Diego. SCS.
Sabeur, E. and Denis, G. (2007). Human behavior and social network simulation: Fuzzy
sets/logic and agents-based approach. In Proc. of the 2007 Spring Simulation Multi-
Conference, Norfolk, 2007, pages 102–109, San Diego. SCS.
Shen, S., O’Hare, G. M. P., and O’Grady, M. J. (2008). Fuzzy-set-based decision making
through energy-aware and utility agents within wireless sensor networks. Artificial
Intelligence Review, 27(2-3):165–187.
Zadeh, L. A. (1965). Fuzzy Sets. Information and Control, volume [S.1], v.3, n.8, p.338-
353.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando

Outros materiais