Baixe o app para aproveitar ainda mais
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.
Compartilhar