You are on page 1of 12

Utilizando Lgica Fuzzy para Avaliar a Qualidade de uma

Compra Via Internet


Leonardo Martins Rodrigues1 e Graaliz Pereira Dimuro1
1

Programa de Ps-Graduao em Modelagem Computacional


Universidade Federal do Rio Grande - FURG

Resumo. O objetivo deste trabalho realizar um experimento sobre Lgica


Fuzzy. Para isso, escolheu-se um exemplo de aplicao 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 servio prestado pela Loja Online atravs da
anlise de duas variveis: tempo de entrega e valor do produto. feita tambm
uma anlise dos mtodos de defuzzificao para esta aplicao.

1. Introduo
A Lgica Fuzzy [Zadeh 1965] foi desenvolvida para a modelagem de raciocnio aproximado e vago, permitindo descrever de forma efetiva as caractersticas de sistemas complexos ou que no podem ser definidos de forma exata. Os relacionamentos entre elementos
e conjuntos seguem uma transio entre pertinncia e no pertinncia que gradual, indicando valores de pertinncia intermedirios entre o verdadeiro e o falso da lgica clssica.
A Lgica Fuzzy tem sido muito utilizada para tratamento de dados e informaes qualitativas, subjetivas, vagas, incertas, possibilitando obter concluses seguras
e robustas atravs de raciocnio aproximado. A lgica fuzzy tem sido utilizada com
freqncia e sucesso em controladores fuzzy[Cox 1994], mas seu uso tambm tem-se
evidenciado em outras reas, tais como em modelos de agentes para simulao social 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 operaes 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 Lgica Fuzzy,
voltado para uma aplicao bastante atual, tal como a avaliao da qualidade do servio
prestado por uma loja atravs da Internet.
O trabalho est organizado como descrito a seguir. A Seo 2 apresenta alguns
conceitos bsicos sobre Conjuntos Fuzzy estudados. A descrio do problema discutida
na Seo 3. A modelagem e a implementao so descritas na Seo 4. A Seo 5 a
Concluso.

2. O que a Lgica Fuzzy?


O termo Fuzzy significa algo nebuloso, impreciso ou vago. Tendo isso em vista, a
Lgica Fuzzy visa resolver problemas onde a informao no precisa, ou seja, tal informao varia de acordo com a compreenso que se tem sobre um determinado assunto.
Porm, antes de entender o que a Lgica Fuzzy necessrio saber o conceito de Conjuntos 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 pertinncia para um ou outro grupo varie entre 0 e 1.
Segundo a Lgica Tradicional, ou um objeto (O) totalmente pertencente a um grupo (1)
ou o objeto totalmente no 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 matemtica podem ser expandidos para os Conjuntos Fuzzy, realizando-se as devidas adaptaes. Dessa forma,
possvel efetuar uma unio, uma interseo, um complemento ou um produto cartesiano
entre Conjuntos Fuzzy.
Sabendo que qualquer conjunto clssico pode ser caracterizado por uma funo,
a funo caracterstica, Zadeh obteve a formalizao matemtica de um conjunto Fuzzy.
A Definio 2.1.1, a seguir, mostra a representao de uma funo de pertinncia de um
subconjunto Fuzzy.
Definio 2.1.1 Seja U um conjunto e A um subconjunto de U . A funo caracterstica
de A dada por:
(

A (x) =

1
0

se x A
se x
/A

Com isso, A uma funo cujo domnio U e a imagem est contida no conjunto
0,1. Se A (x) = 1 significa que x est contido em A, caso contrrio, A (x) = 0 significa
que x no est contido em A. Dessa forma, uma funo caracterstica responsvel por
descrever completamente o conjunto A, dado que tal funo indica quais elementos do
conjunto universo U so tambm elementos de A.
2.2. Subconjuntos Fuzzy
Um subconjunto fuzzy F de um conjunto universo U definido em termos de uma funo de pertinncia que a cada elemento x de U associa um nmero (x), entre zero
e o mximo grau de pertinncia de x em F , neste caso igual a 1. Com isso, a Definio 2.2.1 mostra como possvel indicar um conjunto fuzzy de acordo com sua funo
de pertinncia.
Definio 2.2.1 Seja U um conjunto clssico. Um subconjunto fuzzy A de U caracterizado por uma funo
A : U [0, 1],
pr-fixada, denominada funo de pertinncia 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 pertinncia. Se A (x) = 0, isso significa
que x no pertence ao conjunto fuzzy A. Caso contrrio, se A (x) = 1, indica que x
pertence completamente ao conjunto fuzzy A.
Formalmente, possvel obter a definio de subconjunto fuzzy ampliando o contra domnio da funo caracterstica, ou seja, o conjunto {0, 1}, para o intervalo [0, 1].
Com isso, tem-se que um conjunto clssico A de U um caso particular do conjunto
fuzzy, para o qual a funo de pertinncia A sua funo caracterstica de A , isto ,

A : U {0, 1}.
Um subconjunto fuzzy F composto de elementos x de um conjunto clssico U ,
providos de um valor de pertinncia 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 clssico de U definido por
suppF = {x U : F (x) > 0}
denominado suporte de F e muito importante no que tange a relao entre as teorias
de conjuntos clssica e fuzzy.
2.3. Operaes bsicas entre subconjuntos Fuzzy
Para entender as operaes, considere a existncia de trs conjuntos fuzzy A, B e C no
universo U . Seja x um dado elemento no universo em questo, pode-se definir as seguintes
operaes:
Incluso
A B (AB x U : A (x) B (x))
Unio
AB (x) = A (x) B (x) = max{A (x), B (x)}
Interseco
AB (x) = A (x) B (x) = min{A (x), B (x)}
Complemento
A0 (x) = 1 A (x)
Tendo em vista os conceitos bsicos abordados, os conjuntos Fuzzy e a Lgica
Fuzzy formam uma base slida de tcnicas para a soluo de problemas nas mais diversas
reas, principalmente em controle e tomada de deciso. Com isso, sero utilizados esses
conceitos para o desenvolvimento deste trabalho.

3. Descrio do problema proposto


O exemplo adotado para implementao neste trabalho est ligado avaliao da qualidade de uma compra realizada via Internet.
Quando uma pessoa procura um item para comprar, seja via Internet ou pessoalmente, o primeiro dado a ser analisado o preo 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 relao ao valor do produto.

Ao decidir a Loja online em que ser efetuada a compra, um ponto importante


que tambm 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 inteno da implementao deste problema de decidir em qual Loja
online ser mais vantajosa a realizao da compra, com base no preo e no prazo de
entrega do produto.

4. Descrio da implementao do problema


Nesta seo sero mostrados alguns detalhes com relao implementao do problema,
tais como: variveis lingusticas, curvas e valores crisp (valores encontrados no mundo
real) utilizados.
4.1. Definio das variveis lingusticas - Fuzzificao
Como discutido na Seo 3, existem trs variveis lingusticas que sero abordadas neste
trabalho: preo (ou valor), tempo e qualidade. As duas primeiras se referem diretamente
ao produto de interesse e a ltima se refere avaliao da Loja online.
Para a varivel lingustica valor, foram adotados os seguintes termos lingusticos:
barato, mdio e caro. Com isso, foram definidas as fronteiras no qual os termos
definidos pertencem. Ou seja, supondo que um produto custe no mnimo ZERO e no
mximo R$ 100 Reais, um produto barato est considerado na faixa entre R$ 0-50 reais,
um produto mdio 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 descrio das funes de pertinncia como mostra a Figura 1.
Na Figura 1 possvel notar a existncia de funes 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 pertinncia a esse termo se custa
entre R$ 0-25 Reais, aps isso, entre R$ 25-50 Reais, o produto comea a deixar de ser
barato e comea a ter a pertinncia ao termo mdio aumentada. Assim, existem regies
de transio de estado do valor, uma entre barato e mdio e outra entre mdio e caro.
Da mesma forma em que a varivel valor foi criada, a varivel tempo de entrega
tambm teve termos adotados, so eles: rpido, mdio e demorado. O prazo de
entrega est na faixa de 1-12 dias consecutivos, neste exemplo. Com isso, para que a
entrega seja considerada rpida, o prazo deve variar na faixa de 1-6 dias. Para que uma
entrega seja considerada mdia, 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 grfico que mostra as definies realizadas. A Figura 2, a seguir, ilustra essas definies.
Como visto na Figura 1, a Figura 2 tambm adota funes trapezoidais e triangulares. Todas as explicaes feitas anteriormente tambm valem para essa varivel, com
suas respectivas mudanas de valores.

Figura 1. Funes utilizadas para a varivel lingustica valor.

Por ltimo, foi definida a varivel lingustica qualidade do servio. Para esta varivel foram atribudos os seguintes termos: ruim, mdio e bom. A nota atribuda
ao servio varia na faixa de 0-100. Assim, um servio ruim se enquadra na faixa de 0-50.
Um servio considerado mdio est na faixa de 25-75. J um servio considerado bom
est na faixa entre 50-100.
O grfico que representa essa varivel mostrado na Figura 3.
4.2. Definio das regras - Inferncia
Nesta Seo, sero apresentadas as regras de inferncia definidas para o problema proposto.
Uma inferncia em lgica Fuzzy nada mais do que a aplicao de uma regra do
tipo: SE X, ENTO Y; desde que as variveis analisadas, X e Y neste caso, sejam noes
difusas.
Sendo assim, foram definidas as seguintes regras de acordo com os conjuntos
definidos na Seo anterior. A Tabela 1 mostra o conjunto de regras de inferncia.
Ou seja, dadas as definies das inferncias, pode-se criar uma tabela simplificada
que representa todas as definies de forma mais simples. A Tabela 2 mostra a simplificao adotada.
Para os operadores AND e OR foram atribudas as funes min(A,B) e max(A,B),
respectivamente, que so exemplos de operadores T-normas e T-conormas que generalizam os operadores AND e OR (para a abordagem fuzzy). A primeira funo, min(A,B),

Figura 2. Funes utilizadas para a varivel lingustica tempo de entrega.

retorna A se A<=B, caso contrrio retorna B. J a funo max(A,B) retorna A se A>=B,


caso contrrio retorna B.
4.3. Avaliao da sada do sistema - Defuzzificao
Nesta Seo sero mostrados os resultados obtidos para a avaliao da sada do sistema.
Os mtodos utilizados na defuzzificao do sistema foram os seguintes: Centride, Primeiro do Mximo e Centro do Mximo. Existem outros mtodos para defuzzificao,
porm, apenas os mtodos citados foram escolhidos para que se pudesse obter uma comparao entre eles.
Para o clculo do mtodo do Centride necessrio encontrar o Baricentro (ou
Centride) da figura formada pela composio dos grficos das variveis utilizadas. A
Figura 4 mostra um exemplo de onde est localizado o centride da forma a seguir.
Com isso, para encontrar o valor do Centride de uma figura plana composta por
formas geomtricas bsicas (por exemplo: tringulo e retngulo), 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 retngulo (Aret ) e rea de um tringulo (Atri ):
Aret = B H.

(1)

Atri = B H/2.

(2)

onde B a base da forma e H a altura.

Figura 3. Funes utilizadas para a varivel lingustica qualidade do servio.

Figura 4. Um exemplo da localizao do centride (P) da curva C.

Baricentro de um retngulo (Barret ) e Baricentro de um tringulo(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 equaes:
Pi=N

yi Ai
.
YG = Pi=1
i=N
i=1 Ai

(5)

Pi=N

xi Ai
XG = Pi=1
.
i=N
i=1 Ai

(6)

O valor de XG , portanto, o valor encontrado para a varivel de sada analisada.

Se (preo X prazo de entrega) Ento


Barato & Rpido
Bom
Barato & Mdio
Bom
Barato & Demorado
Mdio
Mdio & Rpido
Bom
Mdio & Mdio
Mdio
Mdio & Demorado
Ruim
Caro & Rpido
Mdio
Caro & Mdio
Ruim
Caro & Demorado
Ruim
Tabela 1. Regras de Inferncia.

Valor/Tempo
Barato
Mdio
Caro

Rpido
Bom
Bom
Mdio

Mdio Demorado
Bom
Mdio
Mdio
Ruim
Ruim
Ruim

Tabela 2. Tabela relacionando o Valor X Tempo e tendo como resultado a Qualidade do servio.

Outro mtodo conhecido o Primeiro do Mximo. Como o prprio nome sugere,


neste mtodo tomado como valor crisp de sada do sistema o primeiro valor do ponto
mais alto do grfico. A Figura 5 mostra uma ilustrao do mtodo.

Figura 5. Um exemplo da localizao do primeiro ponto do Mximo (Z0 ).

Dessa forma, basta encontrar o valor de Z0 para que tenhamos o valor crisp de
sada do sistema.
Por ltimo, apresentado o mtodo Centro dos Mximos que sugere tomar como
valor crisp de sada o ponto central dos mximos. A Figura 6 mostra um exemplo deste
mtodo.
O valor de Z0 calculado atravs da mdia entre os pontos de mximo. Neste
caso, esto representados pelas duas linhas tracejadas na Figura 6.
4.4. Exemplo de execuo
Nesta Seo, ser mostrado um exemplo para verificar o funcionamento da Lgica Fuzzy
e do programa implementado.

Figura 6. Um exemplo da localizao do centro dos Mximos (Z0 ).

No programa implementado na Linguagem C, existem os seguintes dados de entrada: 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, ento, entra na etapa de fuzzificao. Nesta etapa so verificadas
as pertinncias dos valores de entrada nos respectivos grficos informados na Seo 4.1.
Como primeira resposta, o programa informa as seguintes pertinncias:
Grfico de Valor: Barato = 0.00, Mdio = 0.60 e Caro = 0.4;
Grfico de Tempo: Rpido = 0.67, Mdio = 0.33 e Demorado = 0.0;
Em seguida, o programa entra na parte da inferncia. Nessa parte, so seguidas
todas as regras de inferncia definidas na Seo 4.2. Assim, os valores informados para a
sada (qualidade do servio) so os seguintes:
Nvel de Qualidade: Ruim = 0.33, Mdio = 0.4 e Bom = 0.6;
Com esses dados, podemos gerar um grfico para facilitar a visualizao das curvas que foram formadas. A Figura 7, a seguir, ilustra o resultado a partir dos valores
citados anteriormente.
Por fim, temos a parte da defuzzificao e sero mostrados os resultados de acordo
com os mtodos mostrados na Seo 4.3.
Aps separar a Figura 7 em reas conhecidas, obteve-se a Figura 8. Para o caso
do mtodo do Centride, alm de precisar encontrar a rea total, precisa-se das coordenadas do Baricentro de cada Ai . Deste modo, aps a realizao dos respectivos clculos,
encontraram-se os seguintes resultados:

Yg =

y1 A1 + y2 A2 + y3 A3 + y4 A4 + y5 A5 + y6 A6 + y7 A7
= 0.241.
A1 + A2 + A3 + A4 + A5 + A6 + A7 +

(7)

Xg =

x1 A1 + x2 A2 + x3 A3 + x4 A4 + x5 A5 + x6 A6 + x7 A7
= 56.82.
A1 + A2 + A3 + A4 + A5 + A6 + A7 +

(8)

Como precisa-se do valor da coordenada x, o valor de sada crisp do sistema


Xg = 56.82, como mostra o resultado da Equao 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 esto na faixa dos valores mdios de

Figura 7. Grfico de sada aps a execuo da fase de inferncia.

suas respectivas variveis. Mais especificamente, o valor 60 est entre mdio e caro e o
valor 4 est entre rpido e mdio. Portanto, aceitvel que o valor de sada do sistema
(Qualidade do servio) tambm esteja na faixa mdia.
No prximo mtodo, Primeiro do Ponto Mximo, analisar-se- tambm o valor de
sada crisp do sistema. Tendo conhecimento da faixa mxima, neste mtodo basta tomar
como sada do sistema o primeiro ponto do mximo. No caso deste exemplo, a sada do
sistema est localizada no ponto Xg = 65. Estes valores so obtidos atravs de simples
clculos tendo como base as retas que formam os tringulos e trapzios.
Por fim, o mtodo Centro dos Mximos prov como sada crisp do sistema o ponto
mdio (centro) dos mximos atravs do clculo da mdia aritmtica entre os pontos de
mximo. Dessa forma, se o primeiro do ponto mximo 65, e o ltimo ponto mximo
100, ambos no eixo x, tem-se que XCentral = 82, 5.
Comparando-se as sadas crisp obtidas atravs dos clculos dos trs mtodos,
percebe-se que, para o exemplo citado, o mtodo Centride apresenta como sada final do sistema um valor mais justo, ou seja, de acordo com o que desejado como sada
do sistema, este foi o valor que mais se aproximou do ideal.

5. Concluso
Tendo em vista todos os tpicos vistos neste trabalho com relao Lgica Fuzzy, pde-se
perceber um pouco de sua utilidade.
Ao ser definido um problema para utilizar lgica Fuzzy, necessrio passar para
as etapas de Fuzzificao, Inferncia e Defuzzificao. Conforme aumenta a quantidade
de vriveis lingusticas, aumenta a complexidade do problema em lgica Fuzzy, pois so

Figura 8. Grfico de sada aps a execuo da fase de inferncia com a diviso


das reas (Ai , i = 1, 2, ..., 7).

necessrias regras mais complexas para que o sistema possa gerar uma sada de acordo
com o que se deseja.
Dessa maneira, implementou-se um exemplo de aplicao (qualidade do servio
em uma compra pela Internet) dessa metodologia abordando todas as fases de desenvolvimento de um sistema Fuzzy. Alm disso, foi possvel perceber a diferena entre os
mtodos de defuzzificao sendo necessrio avaliar a sada gerada por cada mtodo de
forma que esse resultado corresponda ao valor que se imagina na realidade.

Referncias
Cox, E. (1994). The Fuzzy System Handbook: a Practitioners Guide to Building, Using
and Maintaining Fuzzy Systems.
Dimuro, G. P., Santos, A. V., Bedregal, G. P., and Costa, A. C. R. (2009). Fuzzy evaluation 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, EPIA2009, pages 451462,
Aveiro. APIA/Universidade de Aveiro.
Farias, G. P., Dimuro, G. P., and Costa, A. C. R. (2011). Aplicao de agentes bdi com
percepo fuzzy em um modelo presa-predador fuzzy. Revista de Informtica Terica
e Aplicada, 17(3):299324.
Ghasem-Aghaee, N. and ren, T. I. (2003). Towards fuzzy agents with dynamic personality for human behavior simulation. In Proc. of the 2003 Summer Computer Simulation
Conference, Montreal, July 20-24, 2003, pages 310, San Diego. SCS.

Hassan, S., Garmendia, L., and Pavn, J. (2008). Agent-based social modeling and simulation 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 4047. 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 941946, Berlin. 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 1118, 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 MultiConference, Norfolk, 2007, pages 102109, San Diego. SCS.
Shen, S., OHare, G. M. P., and OGrady, M. J. (2008). Fuzzy-set-based decision making
through energy-aware and utility agents within wireless sensor networks. Artificial
Intelligence Review, 27(2-3):165187.
Zadeh, L. A. (1965). Fuzzy Sets. Information and Control, volume [S.1], v.3, n.8, p.338353.

You might also like