Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Relatório Fuzzy Logic (Final), Provas de Informática

Trabalho aborda o estudo da Lógica Nebulosa a partir do desenvolvimento de um aplicativo para dispositivos Android. Essa pesquisa se destaca por apresentar uma aplicação prática da Lógica Nebulosa e por abordar um tema bastante popular e corriqueiro que é a venda de carros usados

Tipologia: Provas

2016

Compartilhado em 05/03/2016

Luan_Scudeler
Luan_Scudeler 🇧🇷

1 documento

1 / 27

Documentos relacionados


Pré-visualização parcial do texto

Baixe Relatório Fuzzy Logic (Final) e outras Provas em PDF para Informática, somente na Docsity! UNIVERSIDADE DE SOROCABA PROGRAMA INSTITUCIONAL DE INICIAÇÃO CIENTÍFICA PIBIC/PROBIC/PROVIC LÓGICA NEBULOSA FUZZY LOGIC Bolsista: Luan Scudeler de Souza Voluntário: Lucas Bertho Orientador: Prof. Me. Robinson Luz Período relatado: 09/2014 a 08/2015 Modalidade: PROBIC Protocolo PROAC: [ número do protocolo ] Relatório científico final apresentado à presidência dos programas institucionais de bolsas do Programa de Iniciação Científica como parte dos requisitos das atividades do bolsista. Sorocaba 03 de 08 de 2015 LÓGICA NEBULOSA FUZZY LOGIC Relatório científico final entregue à presidência dos programas institucionais de bolsas do Programa de Iniciação Científica como parte dos requisitos das atividades do bolsista. MAUA fr p T [ nome completo do bolsista ] Assinatura do bolsista ; P , , E [nome coméleto do orientador ] Assinatura do orientador E hem EA Lud Co 1. INTRODUÇÃO Este relatório aborda o estudo sobre a lógica nebulosa e apresenta o desenvolvimento de um aplicativo para dispositivos Android com o uso de conceitos e métodos presentes na mesma. Lógica nebulosa foi idealizada e estudada primeiramente por Lofti A. Zadeh em 1965, trata-se de uma lógica inovadora e de grande utilidade para resolução de problemas do mundo real. É uma lógica que aproxima mais a máquina do ser humano, pois ela permite o uso de variáveis linguísticas e dados imprecisos para que sejam processados e transformados em um único resultado para o problema. A hipótese da pesquisa consiste em demonstrar o uso da lógica nebulosa para a resolução de um problema que apresenta características abstratas, que não podem ser mensurados com exatidão, e que precisam ser utilizadas para gerar um único resultado concreto, como é o caso do contexto da aplicação Android desenvolvida nessa pesquisa. Na aplicação aspectos comumente analisados quando se quer definir o valor de um carro usado são avaliados pelo usuário, essa avaliação é feita através de qualificadores linguísticos que não representam com exatidão seus estados, mas ao serem usados em um sistema de lógica nebulosa possibilitaram gerar um resultado mais preciso. A seguir são apresentados todos os tópicos que constituem a lógica nebulosa e os detalhes do aplicativo Android desenvolvido. 2. OBJETIVOS Objetivo geral da pesquisa: Desenvolver uma aplicação para dispositivos Android utilizando um sistema de lógica nebulosa para solução de um problema que apresente características compatíveis com a mesma, características que a lógica nebulosa possa dar suporte para a modelagem e solução em geral. Problema abordado na aplicação desenvolvida: - Calcular o valor de um automóvel usado com base em variáveis linguísticas de entrada (Ex.: Funilaria e pintura: Bom; Motor: Ótimo; Mecânica e interior: Ruim) aplicando a devida modelagem para o sistema, para chegar de forma automatizada em um valor final o mais próximo da realidade possível. Objetivo Específico: Estudar os conceitos da lógica nebulosa e entender onde e como ela pode ser aplicada, após esses assuntos serem esclarecidos, desenvolver um aplicativo protótipo para plataforma Android utilizando a lógica nebulosa, fazendo uso da sua estrutura e conceitos. Após a finalização do protótipo o objetivo passa a ser o desenvolvimento da aplicação final. 3. HISTÓRIA DE LOFTI A. ZADEH Lotfi A. Zadeh nasceu em Baku, Azerbaijão. Seu pai era azerbaijano e trabalhava como jornalista no Irã, sua uma mãe russa, era médica cirurgiã; sua família se mudou de volta para Teerã em 1931, depois de algumas das severas políticas de imigração que foram aplicadas por Stalin. Zadeh continuou a sua formação em Inglês em uma escola missionária presbiteriana privada, em seguida, se formou na Universidade de Teerã, em 1942. Conseguiu o seu Ph.D. na Universidade de Columbia, em Nova York 1949, onde passou a ensinar Teoria de Sistemas. Em 1959, começou sua carreira de professor na Universidade da Califórnia em Berkeley (UCB). Ele se aposentou oficialmente em 1991, mas continua sendo extremamente ativo em conferências científicas, onde é um muito procurado como orador. Lotfi A. Zadeh é talvez melhor conhecido por ter inventado o conceito de "Fuzzy Logic" (lógica nebulosa), uma teoria que ele apresentou pela primeira vez em 1965. Lógica nebulosa é usada para noções que não podem ser definidas no rigor matemático, mas que dependem da identificação de gradações, daí a palavra, “fuzzy” (nebuloso, distorcido). Por exemplo, para definirmos se um alimento pertence ou não ao conjunto das frutas podemos gerar conjuntos como na Figura 1: Figura 1: Maçã e pera pertencem ao conjunto de frutas, enquanto cenoura e brócolis não. A associação para cada elemento da figura acima pode ser descrita com {verdadeiro, falso}, os elementos pertencem ou não pertencem ao conjunto de frutas. Porém abordando o mesmo conjunto com o conceito da lógica nebulosa, podemos ter um resultado como na Figura 2. A maioria das pessoas consideram o tomate ou outros tipos de frutas vermelhas como um tipo de fruta apesar de não terem total certeza disso, como teriam em relação a maçã. O processo de lógica nebulosa é explicado no Algoritmo 1: Em primeiro lugar, um conjunto de entrada de dados são recolhidos e convertidos em um conjunto nebuloso usando variáveis linguísticas, termos linguísticos e funções de associações. Este passo é conhecido como fuzificação. Depois, uma inferência é feita com base em um conjunto de regras. Por último, a saída nebulosa (distorcida) resultante é mapeada para uma saída clara (nítida) utilizando as funções de associações na etapa de defuzificação. A fim de exemplificar o uso de um FLS, considere um sistema de ar condicionado controlado por um FLS. O sistema ajusta a temperatura do quarto de acordo com a temperatura atual do ambiente e do valor alvo. Os processos do FLS comparam periodicamente a temperatura ambiente e a temperatura alvo, e gera um comando para aquecer ou esfriar o ambiente. Algoritmo 1: Algoritmo de lógica nebulosa 1. Definem-se as variáveis linguísticas e os termos (inicialização); 2. Constroem-se as funções de associações (inicialização); 3. Constroem-se as regras base do sistema (inicialização); 4. Convertem-se os dados de entrada para valores nebulosos usando as funções de associações (fuzificação); 5. Avaliam-se as regras nas regras base do sistema (inferência); 6. Combinam-se os resultados de cada regra (inferência); 7. Convertem-se o dado de saída para um valor não nebuloso (defuzificação). Figura 5 : FLS para controle de um ar condicionado FLS SALA AR CONDICIONADO Temperatura Alvo Quente/ Frio/ Sem mudança Comando Temperatura da Sala 5.1. Variáveis linguísticas Variáveis linguísticas são as variáveis de entrada e saída do sistema cujos valores são palavras ou frases de uma língua natural, em vez de valores numéricos. Uma variável linguística é geralmente decomposta em um conjunto de termos linguísticos. Exemplo: Considere o ar condicionado na Figura 5. Temperatura (t) é a variável linguística que representa a temperatura da sala. Para qualificar a temperatura, termos como “quente” e “frio” são usados na vida real. Estes são os valores linguísticos da temperatura. Então, T (t) = {muito frio, frio, quente, muito quente} pode ser o conjunto de decomposições à variável linguística chamada temperatura. Cada membro desta decomposição é chamado de termo linguístico e podem cobrir uma porção dos valores gerais da temperatura. 5.2. Funções de associação Funções de associações são usadas nos processos de fuzificação e defuzificação de um FLS, para mapear os valores de entrada não nebulosos para termos linguísticos nebulosos e vice-versa. As funções de associação são utilizadas para quantificar um termo linguístico. Por exemplo, na Figura 6, a função de associação para os termos da variável linguística temperatura são plotados. Nota-se que, uma característica importante da lógica nebulosa é que um valor numérico não tem de ser fuzificado usando apenas uma função de associação. Em outras palavras, um valor pode pertencer a diversos grupos ao mesmo tempo. Por exemplo, de acordo com a Figura 6, um valor de temperatura pode ser considerado “frio” e “muito frio” ao mesmo tempo, com diferentes graus de adesões. Figure 6: Função de associação para T(temperature) = {too-cold, cold, warm, hot, too-hot}. Há diferentes formas de representar as funções de associações, as mais comuns são triangular, trapezoidal, linear, e gaussiano, Figura 7. O tipo da função de associação pode ser dependente do contexto e geralmente escolhido arbitrariamente de acordo com a experiência do usuário. Figura 7: Diferentes tipos de representação de funções de associação. 5.3. Regras da lógica nebulosa Em um FLS, uma base de regras é construída para controlar a variável de saída. Uma regra de lógica nebulosa é uma simples regra de IF-THEN com uma condição e uma conclusão. Na Tabela 1, exemplos de regras de lógica nebulosa para o sistema de ar condicionado são listados. Tabela 2 mostra a representação matricial das regras nebulosas para os referidos FLS. As linhas na matriz contêm o valor atual da temperatura ambiente que a sala pode ter, as colunas contêm os grande utilidade em uma variedade de operações de controle industrial e em tarefas de reconhecimento de padrões que se estendem desde reconhecimento de texto manuscrito, até a avaliação de crédito financeiro. Existe também um interesse crescente em se utilizar a lógica nebulosa em sistemas especialistas para torná-los mais flexíveis. No Japão, a lógica nebulosa já se faz presente no dia a dia do setor industrial e muitos produtos comerciais já se encontram disponíveis, como mostra a Tabela 3 a seguir: Tabela 3: Relação das aplicações da lógica nebulosa e as empresas pertencentes APLICAÇÃO EMPRESA Transmissão automotiva Mitsubishi Mecanismo de foco automático Cânon Sistema de tracking subjetivo (Maxxum 7xi) Minolta Estabilizador eletrônico de imagens Panasonic Máquina de lavar roupa Sanyo Geladeiras Sharp Ar condicionado Mitsubishi, Hitachi e Sharp Injeção eletrônica NOK/Nissan Elevadores Fujitec 7. METODOLOGÍA A lógica nebulosa é uma ferramenta matemática para lidar com dados incertos e ambíguos, ela é pouco conhecida, mas pode estar presente no nosso dia- a-dia mais do que imaginamos, através de equipamentos que controlam iluminação, temperatura, entre outros. Essa pesquisa como uma forma de estudo experimental, aplica na prática mais uma maneira (não tanto usual) em que a lógica nebulosa pode ser usada. 7.1 Cenário do problema O aplicativo Android desenvolvido com o objetivo de estimar um valor em reais para um carro usado foi feito com base na avaliação do usuário da aplicação sobre fatores tipicamente analisados ao avaliar um carro, esses fatores foram definidos a partir de uma pesquisa sobre o que as pessoas mais reparam na hora de definir um preço para venda de um carro. A ação de definir um preço para um carro usado apresenta inúmeros fatores que podem variar o preço final estabelecido, no mercado existem vários anúncios para um mesmo carro com diferentes estados de qualidade e consequentemente diversas faixas de preço, todas essas variações e incertezas puderam ser aplicadas (através do aplicativo Android) em um sistema de lógica nebulosa. 7.2 Estratégias de desenvolvimento Os fatores definidos para a avaliação de um carro foram: funilaria/pintura, motor e mecânica/interior. Eles foram incluídos no sistema de lógica nebulosa e usados como base para gerar um fator final, esse fator é aplicado sobre o valor do carro presente na tabela FIPE (Fundação Instituto de Pesquisas Econômicas) de média de preços de carros usados. Após essa etapa, o fator gerado pelo sistema nebuloso poderá reduzir ou aumentar o valor do automóvel dependendo dos níveis de qualidades atribuídos para o carro. Para o sistema nebuloso foram feitas simulações e testes a partir do software fuzzyTECH, onde foi analisado o comportamento do sistema para todas as possíveis combinações de entradas. Durante o desenvolvimento do aplicativo Android ocorreu gradualmente em conjunto o estudo da linguagem de programação Java para Android, da lógica nebulosa em si e sobre implementação de banco de dados. Para fins de facilitar e garantir uma maior precisão nos cálculos presentes no sistema nebuloso do aplicativo, foi utilizado a jFuzzyLogic (uma biblioteca de lógica nebulosa para a linguagem JAVA) que providenciou métodos para criar um controlador de lógica nebulosa e executar defuzicações e inferências no mesmo. No sistema de lógica nebulosa desenvolvido foi utilizado o método COG (centro de gravidade) como forma de defuzificação do sistema. O método COG foi escolhido pois se adaptou melhor ao contexto do problema, gerando resultados mais sensíveis em relação aos diferentes valores de entradas possíveis que o usuário pode estabelecer, aumentando a eficiência da estimativa do preço do automóvel, pois qualquer alteração na qualidade de uma das características a serem avaliadas podem afetar diretamente o preço final. 8. RESULTADOS Os resultados a seguir foram obtidos nesta pesquisa ao longo dos estudos sobre a lógica nebulosa e sobre a forma de implementá-la, apresentam-se os dados finais obtidos e suas análises. 8.1. Desenvolvimento do aplicativo Android (protótipo) Primeiramente um aplicativo para dispositivos Android foi desenvolvido, o aplicativo consiste em um protótipo que aborda o tema sobre cálculo de inteligência, obtidos através de um controlador de lógica nebulosa onde estão presentes as seguintes informações: Variáveis de entrada: Nível de conhecimento em Exatas, em Biológicas e em Humanas. As variáveis de entrada contém 6 termos diferentes de acordo com a intensidade aplicada a elas, os termos são: Muito Ruim, Ruim, Mais ou Menos, Bom, Muito Bom, Excelente. Variável de saída: A variável de saída é gerada e contém 3 termos de acordo com o resultado, os termos são: Pouco Inteligente, Inteligente, Muito Inteligente. Base de Regras: Uma base de regras foi gerada através de uma ferramenta para criação de controladores de lógica nebulosa. Figura 11: Imagem do aplicativo final em funcionamento AM Gen r Hummer Wagon 6.5 4x4 Diesel TB ” diesel é 1998 v Funilaria e pintura Bom - 0.58 so Motor Muito Bom - 0.61 [eee Parte mecânica e inteiror Ruim - 0.29 ———se Tabela Fipe: R$ 227103.00 Fuzzy Value: 0.48 Resultado: R$ 138281.91 CALCULAR Fiat Siena HL 1.6 mpi 16V Siena HLX 1.8 mpi Flex 8V 4p Siena HLX Dualogic 1.8 mpi Flex 8 4p Siena Sporting 1.6 Flex 16V 4p Siena Sporting Dualogic 1.6 Flex 164.. Siena Stile/Sport MTV 1.6 mpi 16V Siena TETRAFUEL 1.4 mpi Fire Flex 8v.. Stilo 1.8 ATTRACTIVE Flex 8V 5p 1.8 MS Lim.Edit./ MS Season 16V. Stilo 1.8 SP Flex 8V 5p 1.8 Sporting Flex 8V 5P Stilo 1.8/ 1.8 Connect 8V 103cv 5p 1.8/1.8 Connect Flex 8V 5p 1.8/1.8 SP/ Connect 16V 122cv 5p ilo 2.4 Abarth 20V 167cv 5p Dualogic 1.8 BlackMotion Flex 8V Stilo Dualogic 1.8 Flex 8V 5p Je te Daihatsu Dodge EFFA r Engesa Envemo Ferrari he Fiat Fibravan Ford Je FOTON Fyber GEELY É GM - Chevrolet GREAT WALL Gurgel HAFEI Honda Hvundai Fiat Palio 1.0 Celebr. ECONOMY F.Flex 8V.. gasolina Selecione um ano 2015 2014 2013 2012 2011 2010 2009 Je Je 1e 8.2.1 Teste e análise dos resultados Assim como no protótipo a aplicação final também foi testada e simulada através do software fuzzyTech Figura 13, auxiliando também na geração da base de regras da aplicação para compor o sistema de lógica nebulosa desenvolvido. Figura 12: Demonstração de um resultado sendo obtido através do simulador Os valores gerados pelo aplicativo desenvolvido foram comparados com os valores de carros no mercado em um estado parecido ao avaliado na aplicação, Tabela 4. A tabela a seguir mostra uma relação dos resultados obtidos, onde nas colunas referentes aos sites “WebMotor” e “mercadolivre” estão contidos os valores mínimos e máximos para o carro em questão de anúncios presentes nos sites. A coluna “Aplicativo” informa o valor obtido através da aplicação Android. Tabela 4: Comparações entre preços obtidos no aplicativo e preços no mercado atual AUTOMÓVEL VALOR (R$) Carro Modelo Aplicativo WebMotors.com.br mercadolivre.com.br Fiat Uno 1.3 CS 8V Álcool 2P 1989/1989 4.890,43 4.000,00 a 4.450,00 4.500,00 a 6.500,00 Renault Clio 1.6 RL Álcool 2P 1996/1996 6.010,36 6.000,00 6.800,00 Volkswagen Gol City 1.0 Mi Álcool 4P 2003/2004 14.143,63 12.000,00 a 14.700,00 12.900,00 a 14.900,00 Chevrolet Celta Life 1.0 MPFI 8V FlexPower 2p 2013/2013 22.050,43 16.900,00 a 23.000,00 16.900,00 a 21.980,00 O sistema nebuloso empregado na aplicação gerou um valor de custo final para o automóvel bastante próximo da realidade, através do recebimento de informações vagas sobre a qualidade de suas partes. A aplicação demonstra na prática o uso da lógica nebulosa para resolver problemas que apresentam características nebulosas e incertas. 8.2.2 Documentação do aplicativo com base na metodologia UML A seguir na Figura 13 está o diagrama de classe da aplicação e na Figura 14 o digrama de caso de uso. Os resultados obtidos nessa pesquisa em relação às outras literaturas culminam em um ponto comum, onde se conclui que a lógica nebulosa é uma ferramenta que facilita a modelagem de problemas que apresentam informações imprecisas e que ajuda na abstração dessas informações. Segundo GONZÁLEZ “a adoção da Lógica Nebulosa permite o tratamento de dados ambíguos, imprecisos, com presença de um certo grau de incerteza. Também permite a solução de problemas onde a modelagem matemática seria complexa.” 10. CONCLUSÃO O objetivo desse trabalho consistiu no estudo da lógica nebulosa e no desenvolvimento de um aplicativo Android utilizando a modelagem, cálculos e conceitos da mesma. Esse aplicativo tinha como objetivo calcular o preço de um carro usado com base na avaliação de três pontos principais: Funilaria e pintura, motor, mecânica/interior. Primeiramente com o estudo realizado sobre a lógica nebulosa, concluiu-se que ela apresenta características que facilitariam todo o processo para gerar o resultado final e para modelar o sistema. Pois ao avaliar a qualidade dos três pontos principais presentes na aplicação, o fator de incerteza e imprecisão estão fortemente presentes e esses fatores são compatíveis com a lógica nebulosa. No processo de desenvolvimento do aplicativo Android, foi estabelecido o uso da tabela FIPE como referência para gerar o valor final do carro usado sendo avaliado, e em complemento, um sistema de lógica nebulosa tratando as entradas fornecidas pelo usuário e gerando os cálculos necessários. A saída do sistema resultou em um valor em real satisfatoriamente realista quando comparado aos preços estabelecidos atualmente no mercado de carros usados. Portando, a lógica nebulosa foi considera uma ferramenta bastante eficiente e adequada para o problema em questão, provando também sua a versatilidade que já é uma característica conhecida da lógica nebulosa. Contribuiu para criar uma forma interativa, automatizada e de fácil acesso para avaliar a qualidade de carros usados e estimar seus preços de venda no mercado, provando também ser uma ótima ferramenta quando aplicada em ambientes que contém dados com alta taxa de variação e/ou incerteza nas suas definições. 11. REFERÊNCIAS AMENDOLA, M.; SOUZA, A. L.; BARROS, L. C. Manual do uso da teoria dos conjuntos Fuzzy no MATLAB 6.5, 2005. Disponível em <http://www.ime.unicamp.br/~laeciocb/manual_fuzzy_matlab.pdf> Acesso em: 28 dez. 2014. A short Fuzzy Logic Tutorial, 2010 Disponível em: <http://cs.bilkent.edu.tr/~zeynep/files/short_fuzzy_logic_tutorial.pdf>.Acessoem: 30 dez. 2014. CINGOLANI; PABLO; ALCALA-FDEZ J. jFuzzyLogic: a robust and flexible Fuzzy- Logic inference system language implementation. Fuzzy Systems (FUZZ-IEEE), 2012 IEEE International Conference on. IEEE, 2012. Fuzzy control programming. Technical report, International ElectrotechnicalCommision, 1997. GONZÁLEZ R. G. R. Análise de atenuação de sinal em ambientes indoor usando lógica nebulosa. (PUC-Campinas), Brasil, 2009. GUIMARÃES, R. et al. “Lógica Fuzzy ou Lógica Nebulosa”. Projeto Robótica, Colégio Nobel [Salvador, BA], 2002. Disponível em: <http://www.colegionobel.com.br/robo tica/nebula.html>. Acesso em: 22 dez. 2014. J. MENDEL. Fuzzy logic systems for engineering: a tutorial. Proceedings of the IEEE, Vol. 83, 1995. LAUDARES, L. A. Lógica Nebulosa: Uma abordagem filosófica e aplicada (UFSC), Brasil, 2002. SIVANANDAM, S.N.; S. SUMATHI; DEEPA S.N. Introduction to Fuzzy Logic using MATLAB (Springer), 2007. SANDRI, SANDRA; CORREA, CLÁUDIO. Lógica Nebulosa, 1999. Disponível em <http://www.deti.ufc.br/~guilherme/PAPERS/curso_ERN99_fuzzy.pdf>. Acesso em: 30 dez. 2014. <http://www.azer.com/aiweb/categories/magazine/74_folder/74.articles/74_zadeh> Acesso em: 10 jan. 2015. Software fuzzyTECH 5.54d Professional Edition Copyright 1991 - 2003INFORM. <http://www.codeproject.com/Articles/151161/Fuzzy-Framework>. Acesso em: 05/01/2015.
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved