Anais do Encontro Regional de Computação e Sistemas de Informação
Resumos e Artigos Completos
VI Encontro Regional de Computação e Sistemas de Informação, ENCOSIS 2017, Manaus, Amazonas, Brasil, Maio 25-27, 2017
ISSN 2238-5096
Tabela de Conteúdo Resumos Localização 3D em sistemas RFID com leitor móvel
1
Eric S. Ferraz, Celso B. Carvalho
Recomendação de Obras Acadêmicas Por Meio de Filtragem Híbrida e Baseada em Conhecimento Fábio S. Silva, LetÍcia C. Passos, Lucas Gabriel C. Evangelista e Thiago M. Rocha Aplicativo móvel para análise granulométrica do solo com avaliação de usabilidade usando a ferramenta Google TestLab
5
9
Paulo Igor Moraes, Marcos Filipe Alves Salame
Artigos Completos Engenharia de Software Um Meta Modelo do Processo Unificado Utilizando a Ontologia de Fundamentação Unificada-B Sildenir A. Ribeiro, Eber A. Schmitz, Antônio J. S. M. de Alencar, Mônica F. da Silva
13
Resolvendo Problemas de Manutenção de Software Por Meio da GC com Apoio Redmine em um Órgão Federal Francisco Canindé da S. Leite, Paulo P. de Jesus Junior, Geveson de S. Oliveira
23
Aplicação de Dojo como Mecanismo para Medir o Ensino e Aprendizagem para Alunos de Programação Maryane L. B. Pinheiro, Carlos Augusto de A. Mar, Sergio Roberto C. Vieira
Manaus, 25 a 27 de maio de 2017
33
ISSN 2238-5096
SISREMO - Sistema de elicitação de requisitos com base na técnica REMO
43
Carlos Ricardo Bandeira de Souza, Sérgio Roberto Costa Vieira
Cidades Inteligentes Sistema de Reconhecimento de Gestos Utilizando Smartwatches 53
Douglas Lima Dantas, Carlos Maurício Seródio Figueiredo
Sistema de Navegação para Pedestres baseado em Sensores Inerciais e GPS de Smartphones
63
Yasmin A. Enríquez, Leonardo S. Mendes
Arquitetura de IoT para Cidades Inteligentes 73
Douglas Lima Dantas, Carlos Maurício Seródio Figueiredo
Interface para Aquisição de Dados da Variação do Nível d'água do Igarapé do Mindú Silas F.s F. Filho, Francisco de A. P. Januário, Maria Betânia L. Oliveira, André Luiz L. Segundo
83
Inteligência Artificial e Aprendizagem de Máquina Algoritmos de Agrupamento Aplicados à Classificação de Precipitações 93
Giovanni Caldeira, Carlos Mauricio Figueiredo
Análise de Expressões Faciais para Interatividade com Personagens Digitais Emanuel Oliveira da Silva, Elloá B. Guedes, Maria Betânia Leal de Oliveira
101
Sistema de Recomendação de Passeios Turísticos Baseado em conteúdo Elimarcos Ales Arouca, Marcela Sávia Picanço Pessoa, Sérgio Cleger Tamayo
Manaus, 25 a 27 de maio de 2017
111
ISSN 2238-5096
Uma Abordagem Comparativa de Algoritmos de Aprendizado Supervisionado para Classificação dos Cultivares da Planta Paullinia cupana
121
Allex de Lima Sousa, Marcos Filipe Alves Salame
Complexidade de Algoritmos e Otimização Algoritmos Baseados em Busca Cega Aplicados em Teoria dos Grafos 130
Iramar F. dos Santos, Alexandre M. Queiroga
Sobre problemas de listas colorações limitadas e a propriedade da selecionabilidade em grafos
140
Simone I. M. Gama, Rosiane de Freitas, Mário Salvatierra
Análise dos Tempos de Setup Dependentes da Sequência em uma Empresa do Polo Industrial de Manaus através da Regra de Liberação e de Programação Dinâmica
150
Nara Q. Begnini, Luiz Eduardo F. Bentes, Wesley da S. Rocha, Renata da E. Onety
Redes e Segurança Estudo Comparativo de Métodos para Localização Indoor em Redes WiFi Jefferson S. do Nascimento, Igor M. S. Oliva, Edson J. Drosdeck, Diego da S. Froner, Felipe A. Pinagé
Política de Gerenciamento de Buffer com Naive Bayes para Rede Tolerantes a Atrasos e Desconexões
159
168
José Amaral Santos, Sergio Cleger Tamayo, Camilo Souza
Proteção Híbrida para Redes Ópticas de Alta Capacidade 178
Rodrigo C. de Freitas, Valdenir Silva, Silvia O. da Costa
Identificação e Análise das Principais Falhas em Sites Empresariais Utilizando Scanner de Vulnerabilidades Open Source
188
Ane Priscila S. Souza, Clayton Santos Manaus, 25 a 27 de maio de 2017
ISSN 2238-5096
Informática na Educação e Informática Médica Recursos Computacionais: Reflexões sobre a utilização de jogos virtuais no processo de reabilitação fisioterapêutica nas clínicas especializadas
198
Andrew Gama Branches
DBOA - Um Repositório para Objetos de Aprendizagem com foco nos Metadados Pedagógicos Elismar A. de Oliveira Filho, Carlos Eduardo Paulino Silva, Márcio Assis Miranda
206
Cariogame: Gamificação para Estudo de Cariótipo Com Alterações Numéricas e Estruturais Felipe G. L. do Nascimento, Juliany R. Raiol, Lucivana P. de S. Mourão, Maria da C. F. Santos, Jonh M. C. Silva
Desenvolvimento de um sistema web de gerenciamento escolar utilizando a tecnologia JSF Primefaces
216
226
Jeferson Rocha Silva, Sérgio Roberto C. Vieira
Inteligência Artificial Sistema de Controle de Voz para Internet das Coisas 236
Wilson C. C. Junior, Carlos M. C. Figueiredo
Obtenção de Aproximações de Pi com a Plataforma Raspberry Pi 245
Janderson do Nascimento Lira, Elloá B. Guedes
Protótipo de uma Mão Robótica Controlada Remotamente por Luva Sensorial
255
Davi C. M. Barreto, Francisco Januário, Eduardo Façanha
Modelagem da Mão Humana para Aplicação na Mão Robótica Eduardo G. N. Façanha F, Francisco A. P. Januário, Davi C. M. Barreto
Manaus, 25 a 27 de maio de 2017
265
ISSN 2238-5096
Anais do Encontro Regional de Computação e Sistemas de Informação
Localização 3D em sistemas RFID com leitor móvel Eric S. Ferraz1, Celso B. Carvalho1 1
Faculdade de Tecnologia – Universidade Federal do Amazonas (UFAM) Manaus – AM – Brasil ericferraz@gmail.com, ccarvalho_@ufam.edu.br
Abstract. RFID has been widely used in applications for indoor objects location. This article proposes a 3D location algorithm based on a system that uses a mobile reader and a reference matrix of real (passive) and virtual tags. The proposed algorithm compares the RSSI of the target tag with the RSSI of the tags of the reference matrix and defines the estimated position. Preliminary results show that the location scheme may be promising for indoor location of tags. Resumo. RFID vem sendo bastante utilizada em aplicações para localização de objetos em ambientes internos. Este artigo propõe um algoritmo de localização 3D baseado em um sistema que utiliza um leitor móvel e uma matriz de referência de etiquetas passivas e virtuais. O algoritmo proposto compara o RSSI da etiqueta alvo com o RSSI das etiquetas da matriz de referência e define a posição estimada. Resultados preliminares mostram que o esquema de localização poderá ser promissor na localização indoor de etiquetas.
1. Introdução O RFID (Radio Frequency Identification) é uma forma mais eficiente de identificar objetos que a convencional técnica de código de barras e vem se tornando popular em aplicações de vigilância, controle de acesso ou rastreamento de movimento [Finkenzeller 2010]. Um esquema de localização baseado em RFID atribui etiquetas a objetos e localiza estes objetos por meio da comunicação entre as etiquetas e os leitores fixados em locais conhecidos. LANDMARC [Ni, Liu, Lau and Patil 2004] é um dos trabalhos pioneiros no emprego da intensidade de sinais para localização interna, utiliza etiquetas de referência e pré-define o mapa de localização das etiquetas de referência para facilitar o rastreamento. Mais tarde VIRE [Zhao, Liu and Ni 2007] propõe a utilização de etiquetas de referência virtuais de forma a reduzir a distância entre etiquetas na grade de referência. Han, et al. [Han, Zhao, Cheng, and Wong and Wong 2012] estende a solução proposta em VIRE para o plano 3D, através da utilização do RSSI (Received Signal Strength Indicator) das etiquetas reais por meio de interpolação linear, encontrando o valor de RSSI das etiquetas virtuais. O sistema proposto por Wang, et al. [Wang, Wu, Shi and Zhang 2016] utiliza otimização por enxame de partículas (Particle Swarm Optimization - PSO) e filtros gaussianos para redução do erro de localização. Após análise dos artigos de referência verificou-se todos utilizam leitores fixos (quanto maior a quantidade de leitores maior a acurácia). O aumento seja de leitores ou de etiquetas encarece o projeto, e por este motivo propomos a utilização de um único leitor móvel aliado a uma matriz de etiquetas de referência e etiquetas virtuais. Desta forma Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
reduzimos os custos de implementação do sistema e conseguimos realizar a localização de etiquetas com apenas um leitor. A avaliação de desempenho do algoritmos de localização, realizado por simulação, apresenta um erro médio de 1.9 m. Para tratar do assunto do tema localização 3D em sistemas RFID, na seção 2 apresentamos a nossa proposta e resultados preliminares e na seção 3 as conclusões e trabalhos futuros.
2. Proposta e Resultados Preliminares De forma a validar o algoritmo proposto neste trabalho, optou-se pela simulação utilizando o software Matlab no qual desenvolvemos nosso próprio simulador. Implementamos uma matriz 3D com 3m de largura, 3m de comprimento e 4m de altura (simulando um cômodo de uma residência) com etiquetas de referência posicionadas estrategicamente nos oito vértices do ambiente e um leitor na posição "zero" (0,0,0). A potência refletida por cada etiqueta interrogada pelo leitor é dada pela equação de Friis:
onde: = 30 dBm é o valor da potência transmitida pelo leitor, = 1 é o ganho da antena do leitor, = 1 é o ganho da antena da etiqueta, = 0,3125 é o comprimento de onda na frequência de 960 MHz, k = 0,33 é a perda de transmissão backscatered e d é a distância entre o leitor e a etiqueta dada pela equação:
onde: Xref, Yref e Zref são as coordenadas das etiquetas de referências e Xleitor, Yleitor e Zleitor são as coordenadas do leitor. A Figura 1 mostra a estratégia utilizada para posicionamento das etiquetas virtuais, n etiquetas virtuais podem ser posicionadas equidistantes entre duas etiquetas de referência do ambiente simulado, esta estratégia visa diminuir o erro da matriz de referência reduzindo a distância entre as etiquetas da matriz de referência.
Figura 1. Posicionamento das etiquetas no ambiente simulado
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
2
A ideia desta abordagem é estimar a potência refletida pelas etiquetas virtuais utilizando interpolação linear e tendo como referência os valores de RSSI das etiquetas de referência. Desta forma, quando um objeto a ser monitorado, estando com uma etiqueta RFID (etiqueta alvo), posicionado aleatoriamente no ambiente simulado refletir para o leitor um valor de potência (RSSI), este pode ser comparado ao RSSI das etiquetas virtuais e/ou de referências a fim de se determinar o posicionamento do objeto monitorado. O Algoritmo implementado para localização das etiquetas alvo é descrito abaixo: Algoritmo 1:Algoritmo para localização de etiquetas RFID Entrada: Ptx_leitor, Frequency, Reader_Position, Matriz_Ref (RSSI, Positions) Entrada: posições, RealTags_Position, count Saída: Posição_Estimada, erro 1: Ptx_leitor 30dBm; Frequency 960MHz; Reader_Position (0,0,0); 2: Matriz_Ref (RSSI, Positions) inf. de RSSI e Posições da matriz de referência; 3: posições 10; , RealTags_Position Posições rand. de coordenadas (x, y, z); 4: count 1; 5: enquanto Reader_Position(1) ≤ posições faça 6: Distancia_realtag Distância [Reader_Position x RealTags_Position]; 7: RSSI_realtag Aplicação da equação de Friis em Distancia_realtag; 8: Menor_dif(i) Compara RSSI_realtag com RSSI da Matriz_Ref; 9: Pos_tagmenordif(i) Recebe a pos. da etiq. com < valor de diferença; 10: Reader_Position(1) Reader_Position(1) + 1; 11: count count + 1; 12: fim enquanto 13: Posição_Estimada Posição com maior incidência em Pos_tagmenordif; 14: erro Distancia [Posição_Estimada x RealTags_Position]; Algoritmo 1. Algoritmo proposto para localização de etiquetas
O algoritmo proposto gera 2 saídas: - Posição_Estimada: Posição estimada da etiqueta alvo; - erro: Distância encontrada entre a posição estimada e a real posição da etiqueta alvo, calculado através da Equação 2.2 As linhas de 1 a 4 são para inicialização das variáveis de entrada. As linhas de 5 a 12 são responsáveis pela identificação da posição da etiqueta alvo na matriz de referência. Esta posição é determinada nas linhas 8 e 9, sendo definida como a posição da etiqueta (de referencia ou virtual) que possui a menor diferença no valor de RSSI quando comparado ao da etiqueta alvo. Já as linhas 13 e 14 são as saídas do algoritmo. Foram executadas simulações alterando-se o valor de n (quantidade de etiquetas virtuais posicionadas entre duas etiquetas de referência). Os resultados da média do erro para cada valor de n são apresentados na Figura 2. Expandindo o erro nas 3 coordenadas (x, y, z) temos: erro eixo x = 0,17m; erro eixo y = 1,17; erro eixo z = 1,46m
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
3
Verificamos que o erro médio no eixo em que o leitor móvel se movimenta (eixo x) é inferior a 0.2m. Utilizando a mobilidade do leitor pretendemos efetuar medições de RSSI acrescentando movimento do leitor móvel nos eixos y e z de forma a reduzir o erro médio total.
Figura 2. Erros médios encontrados
3. Conclusões e trabalhos futuros Neste artigo propomos um mecanismo de localização de etiquetas RFID em ambientes 3D utilizando um único leitor RFID móvel. Tal cenário não tem sido verificado em outros trabalhos da literatura. O algoritmo de localização, ainda possui erro médio elevado na localização de etiquetas. Após uma análise dos resultados iniciais verificamos que o erro médio no eixo x (eixo no qual o leitor esta se movimentando nas simulações) é inferior a 0.2m. Na continuação da pesquisa, pretendemos efetuar a adaptação do algoritmo para cenários com variação de RSSI, utilização de filtros de Kalman para redução do erro da posição estimada e introdução de um controle de potência para redução da energia total utilizada.
4. Referências Finkenzeller, K., & Handbook, R. F. I. D. (2010). Fundamentals and Applications in Contactless Smart Cards, Radio Frequency Identification and Near-Field Communication . Hoboken. Ni, L. M., Liu, Y., Lau, Y. C., & Patil, A. P. (2004). LANDMARC: indoor location sensing using active RFID. Wireless networks, 10(6), 701-710. Zhao, Y., Liu, Y., & Ni, L. M. (2007, September). VIRE: Active RFID-based localization using virtual reference elimination. In Parallel Processing, 2007. ICPP 2007. International Conference on (pp. 56-56). IEEE. Han, J., Zhao, Y., Cheng, Y. S., Wong, T. L., & Wong, C. H. (2012). Improving accuracy for 3D RFID localization. International Journal of Distributed Sensor Networks. Wang, C., Wu, F., Shi, Z., & Zhang, D. (2016). Indoor positioning technique by combining RFID and particle swarm optimization-based back propagation neural network. Optik-International Journal for Light and Electron Optics, 127(17), 68396849.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
4
Anais do Encontro Regional de Computação e Sistemas de Informação
Recomendac¸ao ˜ de Obras Acadˆemicas Por Meio de Filtragem H´ıbrida e Baseada em Conhecimento Fabio ´ S. Silva1 , Let´ıcia C. Passos1 , Lucas Gabriel C. Evangelista1 e Thiago M. Rocha2 1
Escola Superior de Tecnologia (EST) – Universidade do Estado do Amazonas (UEA) Av. Djalma Batista – 3578, Flores – Manaus, AM – Brasil. Caixa postal: 69055-035 2
Samsung Ocean Center – Samsung Av. Djalma Batista – 1200, Flores – Manaus, AM – Brasil. Caixa postal: 69055-035 {fssilva, lgce.eng, lcps.eng}@uea.edu.br, tm.uea.2014@gmail.com
Abstract. Due to the diversity of information, articles, products and services currently available, searching for items that are of interest to the user has become a chore. This article presents the proposal of a Recommender System of academic works that uses Hybrid and Knowledge based Filtering techniques to support the research of teachers and students. Resumo. Devido a` diversidade de informac¸oes, ˜ artigos, produtos e servic¸os dispon´ıveis atualmente, a busca por itens que sejam de interesse do usuario ´ tornou-se uma tarefa a´ rdua. Este artigo apresenta a proposta de um Sistema de Recomendac¸ao ˜ de obras acadˆemicas quem emprega as t´ecnicas de Filtragem H´ıbrida e Baseada em Conhecimento visando apoiar a pesquisa de professores e alunos.
1. Introduc¸ao ˜ No ambiente acadˆemico ocorre o problema da Sobrecarga de Informac¸ao, ˜ pois um grande volume de obras acadˆemicas s˜ao produzidas pelas instituic¸oes ˜ de ensino e pesquisa. Normalmente, ferramentas de busca s˜ao disponibilizadas em bibliotecas digitais e portais de universidades para que o acadˆemico possa procurar obras acadˆemicas. Para contextualizar, a Universidade de S˜ao Paulo (USP) possui seu Portal de Teses. J´a a Universidade Federal de Minas Gerais (UFMG) possui a Biblioteca Digital de Teses e Dissertac¸oes. ˜ Entretanto nestes ambientes a interac¸ao ˜ personalizada por meio de recomendac¸ao ˜ de obras acadˆemicas e´ raramente empregada. Assim, devido ao problema supracitado, est´a sendo realizado um projeto de pesquisa que visa desenvolver uma ferramenta para acesso personalizado as obras acadˆemicas na Universidade do Estado do Amazonas (UEA). Um prototipo ´ da ferramenta foi desenvolvido por meio um Sistema de Recomendac¸ao ˜ de obras acadˆemicas que emprega t´ecnicas de Filtragem H´ıbrida e Baseada em Conhecimento por meio de um Classificador Bayesiano.
2. Sistemas de Recomendac¸ao ˜ Sistemas de Recomendac¸ao ˜ tradicionais filtram itens relevantes de acordo com os interesses de um usu´ario ou de um grupo de usu´arios levando em considerac¸ao ˜ a similaridade Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
entre os perfis de usu´arios, entre os conteudos ´ e perfil do usu´ario, e tamb´em at´e o contexto do usu´ario. Grandes empresas como Amazon (em [Linden et al. 2003]), Netflix (em [Zhou et al. 2008]) e Google (em [Das et al. 2007]), est˜ao investindo no emprego de Sistemas de Recomendac¸ao ˜ para obter diferencial competitivo em seus servic¸os. Para realizar a recomendac¸ao, ˜ o sistema proposto neste trabalho emprega as t´ecnicas de Filtragem H´ıbrida e Baseada em Conhecimento. 2.1. Filtragem H´ıbrida A t´ecnica de Filtragem H´ıbrida procura combinar os pontos fortes das t´ecnicas de Filtragem Baseada em Conteudo ´ (FBC) e Filtragem Colaborativa (FC) visando superar as limitac¸oes ˜ de cada t´ecnica de filtragem e apresentar melhores resultados. Segundo [Adomavicius and Tuzhilin 2005], na literatura e´ poss´ıvel encontrar algumas propostas para combinac¸ao ˜ t´ecnicas FBC e FC como segue: (i) combinac¸ao ˜ linear dos resultados da FBC e FC, em que consiste em usar as t´ecnicas de forma separada de forma que os resultados possam ou n˜ao serem combinados; (ii) incorporar na FC algumas caracter´ısticas da FBC e vice-versa; e (iii) construc¸ao ˜ de um modelo unificado que incorpora as caracter´ısticas de ambas t´ecnicas. Neste trabalho foi empregado a combinac¸ao ˜ linear. 2.2. Filtragem Baseada em Conhecimento De acordo com [Chen 2005], esse t´ecnica de filtragem emprega algoritmos de aprendizagem de m´aquina para classificac¸ao ˜ de itens. Assim, torna-se poss´ıvel obter uma lista de itens classificados que ser´a usada na recomendac¸ao. ˜ A classificac¸ao ˜ de itens e´ realizada por meio de um modelo de aprendizagem obtido a partir do processamento de uma base de conhecimento composta por registros de obras avaliadas como relevantes ou irrelevantes pelos acadˆemicos. O modelo de aprendizado obtido e´ criado de acordo com o modelo matem´atico da t´ecnica de aprendizagem de m´aquina empregada. Neste trabalho, foi utilizado um classificador Baeysiano [Kumar et al. 2005], que e´ fundamentado em um teorema estat´ıstico conhecido como o teorema de Bayes, o qual foi empregado para gerar uma lista de obras acadˆemicas classificadas como relevantes.
3. Trabalhos relacionados Em [Casagrande et al. 2015] foi desenvolvido um sistema de recomendac¸ao ˜ em um repositorio ´ digital de obras liter´arias. A FH foi implementada FH incorporando caracter´ısticas da FC na FBC, com o agrupamento de perfis de usu´ario, por´em sem a construc¸ao ˜ expl´ıcita de um perfil o qual n˜ao o permite determinar ou modificar as suas preferˆencias e tamb´em sem a combinac¸ao ˜ linear dos resultados obtidos. De forma semelhante, em [Costa et al. 2011] foi constru´ıdo um Sistema de Recomendac¸ao ˜ personalizada de artigos cient´ıficos para Bibliotecas Digitais, tamb´em sendo aplicada a t´ecnica de FH, por´em o sistema n˜ao permite a especificac¸ao ˜ e modificac¸ao ˜ do perfil pelo usu´ario. O Sistema de Recomendac¸ao ˜ proposto neste artigo possui como diferencial empregar uma abordagem de recomendac¸ao ˜ h´ıbrida que combina as duas t´ecnicas de filtragem de informac¸ao ˜ e aprendizagem m´aquina. Como tamb´em, permitir que o perfil de usu´ario possa ser modificado pelo mesmo para personalizar a sua recomendac¸ao. ˜ Al´em disso, o sistema recomenda n˜ao somente artigos acadˆemicos, mas tamb´em TCCs, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
6
dissertac¸oes ˜ e teses, bem como possibilita que os proprios ´ usu´arios cadastrem suas obras publicas. ´
4. Tenebris: Sistema de Recomendac¸ao ˜ Proposto O Sistema de Recomendac¸ao ˜ foi denominado de Tenebris e desenvolvido para plataforma Web. Por meio deste sistema o acadˆemico pode obter uma lista de obras recomendadas, acessar e avaliar uma obra, gerenciar suas obras cadastradas e editar seu perfil de interesses. 4.1. Arquitetura do Sistema A arquitetura apresentada na Figura 1 e´ distribu´ıda entre cliente e servidor e baseada em dois modulos ´ front-end e back-end. O modulo ´ front-end possui os componentes respons´aveis pela interac¸ao ˜ com o usu´ario e monitoramento da interac¸ao. ˜ J´a no modulo ´ back-end, ficam localizados os componentes de suporte a filtragem de informac¸ao, ˜ gerenciamento de perfis de acadˆemicos e obras acadˆemicas.
Figura 1. A arquitetura do Sistema de Recomendac¸ao. ˜
4.2. Prototipo ´ do Sistema O sistema pode ser acessado por meio de navegadores tradicionais e/ou navegadores de dispositivos moveis, ´ pois as suas p´aginas foram desenvolvidas de forma responsiva. As Figuras 2(a), 2(b), 3(a) e 3(b) apresentam algumas telas do sistema: login, recomendac¸ao ˜ de obras relevantes, avaliac¸ao ˜ de obra e cadastro de perfil do acadˆemico, respectivamente.
(a) Tela inicial
(b) Obras recomendadas para o usu´ario
Figura 2. Telas do sistema Tenebris
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
7
(a) Informac¸oes ˜ e avaliac¸ao ˜ de uma obra
(b) Perfil de usu´ario
Figura 3. Telas do sistema Tenebris
5. Conclusoes ˜ e Trabalhos Futuros Este artigo apresentou a proposta de um Sistema de Recomendac¸ao ˜ de Obras Acadˆemicas por meio de Filtragem H´ıbrida e Baseada em Conhecimento. Foi apresentada a arquitetura do sistema, seus principais componentes e tamb´em as principais telas do prototipo ´ desenvolvido. Como trabalhos futuros ser˜ao realizados testes com o objetivo de avaliar a qualidade das recomendac¸oes ˜ geradas por meio das m´etricas: precis˜ao, revocac¸ao ˜ e medida F.
Referˆencias Adomavicius, G. and Tuzhilin, A. (2005). Toward the next generation of recommender systemas: A survey of the state-of-the-art and possible extensios. In Lin, X. and Chen, L., editors, IEEE Transactions on Knowledge and Data Engineering, pages 734–749. IEEE. Casagrande, M. F. R., Kozima, G., and Willrich, R. (2015). A recommendation technique based on metadata for digital repositories oriented to learning. Brazilian Journal of Computers in Education, 23(2):69–70. Chen, A. (2005). Context-aware collaborative filtering system: Predicting the user’s preferences in ubiquitous computing. Costa, E. B., Oliveira, T. T., Silva, A. P., and Bittencourt, I. I. (2011). Sistema de recomendac¸ao ˜ h´ıbrido para bibliotecas digitais que suportam o protocolo oai-pmh. In Brazilian Symposium on Computers in Education (Simposio ´ Brasileiro de Informatica ´ na Educac¸ao-SBIE), ˜ volume 1. Das, A. S., Datar, M., Garg, A., and Rajaram, S. (2007). Google news personalization: scalable online collaborative filtering. In Williamson, C. and Zurko, M. E., editors, 16th international conference on World Wide Web Pages, pages 271–280. ACM. Kumar, V., Steinbach, M., and Tan, P.-N. (2005). Introduc¸ao ˜ ao Data Minning – ˆ Minerac¸ao ˜ de Dados. CIENCIA MODERNA, 1th edition. Linden, G., Smith, B., and York, J. (2003). Amazon.com recommendations: item-to-item collaborative filtering. In Blake, M. B., editor, IEEE Internet Computing – Volume 3, Issue 1, pages 76–80. ACM. Zhou, Y., Wilkinson, D., Schreiber, R., and Pan, R. (2008). Large-scale parallel collaborative filtering for the netflix prize. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
8
Anais do Encontro Regional de Computação e Sistemas de Informação
Aplicativo movel ´ para analise ´ granulom´etrica do solo com avaliac¸ao ˜ de usabilidade usando a ferramenta Google TestLab Paulo Igor Moraes1 , Marcos Filipe Alves Salame2 1
Bolsista de Iniciac¸ao ˜ Cient´ıfica FAPEAM, 2 Analista de Tecnologia da Informac¸ao ˜
Embrapa Amazonia ˆ Ocidental Caixa Postal 319 – 69010-970 – Manaus – AM – Brasil pauloigormoraes@gmail.com, marcos.salame@embrapa.br
Abstract. Soil is the most important part of the geosphere, from which a large portion of our food comes. Their use without proper management and planning and without considering their physico-chemical characteristics, can lead to waste in production and negative impacts to the environment. Based on this scenario, a mobile app was developed to assist the soil physical analysis procedure and to aware about the importance of this procedure. We used Google Android Studio, Java Development Kit, Material Design metrics, PieCharts library and the Google TestLab tool. The application has functionalities of textural classification, practical information and calculations necessary in the process of physical soil analysis performed in laboratories Resumo. O solo e´ a parte mais importante da geosfera, de onde prov´em grande parcela de nossos alimentos. Sua utilizac¸ao ˜ sem manejo e planejamento adequados e sem considerar suas caracter´ısticas f´ısico-qu´ımicas, podem acarretar desperd´ıcios na produc¸ao ˜ e impactos negativos ao meio ambiente. Com base nesse cenario, ´ foi desenvolvido um aplicativo movel ´ com o objetivo de conscientizar e auxiliar o procedimento de analise ´ f´ısica do solo. Foram utilizados o Google Android Studio, Java Development Kit, m´etricas de Material Design, biblioteca PieCharts e a ferramenta Google TestLab. O aplicativo possui funcionalidades de classificac¸ao ˜ textural, informac¸oes ˜ praticas ´ e calculos ´ necessarios ´ no processo da analise ´ f´ısica do solo realizada em laboratorios. ´
1. Introduc¸ao ˜ O solo e´ uma colec¸ao ˜ de corpos naturais, constitu´ıdos por partes solidas, ´ l´ıquidas e gasosas, tridimensionais, dinˆamicos, formados por materiais minerais e orgˆanicos que ocupam a maior parte do manto superficial das extensoes ˜ continentais do nosso planeta [Santos et al. 2006]. A composic¸ao ˜ do solo interfere diretamente nas plantac¸oes ˜ de v´arios alimentos. Para que uma planta produza bons frutos, um solo adequado e´ primordial, precisando ter a quantidade necess´aria de minerais, ar, a´ gua e substˆancias orgˆanicas. Existem v´arios tipos de an´alises de solo dispon´ıveis no mercado, a escolha depende do objetivo. Uma de uso comum e´ a an´alise qu´ımica, que fornece subs´ıdios aos profissionais para a definic¸ao ˜ das doses de calc´arios e adubos para serem aplicados no solo de acordo com o cultivo. H´a uma an´alise mais completa que contempla fertilidade, incluindo micronutrientes, mat´eria orgˆanica (MO) e granulometria ou textura. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
De acordo com [Almeida et al. 2012], a an´alise granulom´etrica ou classificac¸ao ˜ textural visa a` quantificac¸ao ˜ da distribuic¸ao ˜ por tamanho das part´ıculas individuais de minerais do solo. Durante a classificac¸ao ˜ do solo em um determinado local, a textura dos diferentes horizontes e´ muitas vezes a primeira e mais importante propriedade a ser determinada e, a partir desta informac¸ao, ˜ muitas conclusoes ˜ importantes podem ser tomadas. Al´em disso, a textura do solo n˜ao e´ prontamente sujeita a mudanc¸as, sendo, portanto, considerada como uma propriedade b´asica do solo, [Brady and Weil 2006]. Segundo [Santos et al. 2010], no Amazonas, o guaran´a, por exemplo, e´ cultivado principalmente em latossolo amarelo a´ lico muito argiloso e em argilosos e muitas vezes a recomendac¸ao ˜ de nutric¸ao ˜ para um tipo de solo difere bastante do outro, sendo de fundamental importˆancia realizar a identificac¸ao ˜ do tipo de solo antes de realizar calagem e adubac¸ao. ˜ No geral, um solo arenoso e´ leve, perme´avel a` a´ gua e f´acil de trabalhar, mas n˜ao acumula nutrientes. J´a um solo argiloso e´ pesado, granuloso, compacto, facilmente inund´avel e fica duro no tempo seco. Com base nesse cen´ario, foi desenvolvido um aplicativo para dispositivos moveis ´ com sistema operacional Android que tem como funcionalidade principal realizar a classificac¸ao ˜ textural simplificada e detalhada do solo a partir das porcentagens identificadas de argila, silte e areia, apos ´ a realizac¸ao ˜ da an´alise granulom´etrica do solo. Al´em disso, o aplicativo fornece v´arias informac¸oes ˜ pr´aticas sobre o solo, podendo ser usada como ferramenta na educac¸ao ˜ e apresenta c´alculos de aux´ılio a t´ecnicos necess´arios no processo completo da an´alise f´ısica do solo realizada em laboratorios. ´ O texto est´a organizado da seguinte maneira: a sec¸ao ˜ 2 apresenta os trabalhos relacionados, a sec¸ao ˜ 3 busca apresentar a metodologia, a sec¸ao ˜ 4 discute sobre os resultados alcanc¸ados enquanto que a sec¸ao ˜ 5 traz algumas considerac¸oes ˜ sobre o trabalho.
2. Trabalhos Relacionados Existe um software de computador que funciona em sistemas operacionais Microsoft Windows, nomeado de SCCLAT - Sistema Computadorizado de Classificac¸ao ˜ Textural dos Solos. Foi criado pelo LAGESOLOS - Laboratorio ´ de Geomorfologia Ambiental e Degradac¸ao ˜ dos Solos no Instituto de Geociˆencias da Universidade Federal do Rio de Janeiro (UFRJ), com objetivo de classificar a textura do solo a partir de porcentagem de argila, silte e areia. Por´em, o programa n˜ao apresentou compatibilidade com as u´ ltimas versoes ˜ do Microsoft Windows, ficando mais restrito. Outro software que pode ser citado e´ o aplicativo para dispositivos moveis, ´ com sistema operacional Android, nomeado de Tipos de Solo. Foi desenvolvido por acadˆemico da Pontif´ıcia Universidade Catolica ´ de Campinas (PUC Campinas - SP) e tem como objetivo a classificac¸ao ˜ dos tipos de solos seguindo o princ´ıpio do grupamento textural detalhado. Todavia, foram detectados durante sua execuc¸ao ˜ travamentos e incompatibilidade com alguns aparelhos e o aplicativo apresenta basicamente somente uma funcionalidade.
3. Material e M´etodos Foram utilizados no processo de desenvolvimento do aplicativo mecanismos como: Google Android Studio para escrita e compilac¸ao ˜ do codigo ´ fonte; como linguagem de programac¸ao ˜ foi utilizada Java JDK (Java Development Kit); para construc¸ao ˜ visual foManaus, 25 a 27 de maio de 2017 ISSN 2238-5096
10
ram empregadas m´etricas do Google Material Desgin, que ser˜ao discutidos no proximo ´ subitem; tamb´em foi usada a biblioteca PieCharts para construc¸ao ˜ do gr´afico. A classificac¸ao ˜ textural foi baseada em [Pedroso Neto and Costa 2012]: 1. Classificac¸ao ˜ textural simplificada: 1) Muito Argilosa; 2) Argilosa; 3) Franco (m´edio); e 4) Arenosa. 2. Classificac¸ao ˜ textural detalhada: 1) Muito Argilosa; 2) Argilosa; 3) Argilaarenosa; 4) Argila-siltosa; 5) Franco-argilo-arenosa; 6) Franco-argilosa; 7) Franco-argilo-siltosa; 8) Franca; 9) Franco-arenosa; 10) Franco-siltosa; 11) Siltosa; 12) Areia-franca; e 13) Arenosa. A criac¸ao ˜ da interface foi baseada no Google Material Design, lanc¸ado no ano de 2014 como uma tentativa de auxiliar os desenvolvedores na construc¸ao ˜ de aplicativos visualmente melhores devido a diversos aplicativos apresentarem instabilidade na percepc¸ao ˜ visual, ocasionando, em alguns casos, a rejeic¸ao ˜ do publico. ´
4. Resultados e Discussoes ˜ Foi obtida uma primeira vers˜ao funcional do aplicativo. Apos ´ v´arios testes, ele apresentou compatibilidade desde a vers˜ao 4.0.3 (API n´ıvel 15 ou Android Ice Cream Sandwich) at´e a vers˜ao 7.0 (API n´ıvel 24 ou Android Nougat). De forma a exemplificar o funcionamento da classificac¸ao ˜ textural. A Figura 1a apresenta as porcentagens obtidas ao final da an´alise granulom´etrica do solo. A Figura 1b exibe os resultados obtidos de acordo com as porcentagens informadas e as tabelas usadas da an´alise simplificada e detalhada.
(a) Inserir Dados
(b) Classif. Textural
Figura 1. Telas da classificac¸ao ˜ textural do aplicativo
O aplicativo tamb´em foi avaliado, em contexto de usabilidade, pelo Google TestLab que est´a dispon´ıvel dentro da plataforma Firebase Console, essa plataforma divide o teste em dois n´ıveis de an´alise, s˜ao eles: Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
11
• Dimens˜ao de teste: ligada a configurac¸ao ˜ do dispositivo para teste; e • Execuc¸ao ˜ de teste: combinac¸oes ˜ v´alidas para teste; Os aparelhos usados nos testes, e o tempo que cada um levou para finalizar cada execuc¸ao ˜ s˜ao apresentados na Tabela 1. Tabela 1. Tabela de informac¸ao ˜ sobre o TestLab.
Item 01 02 03 04
Modelo Nexus 4 OnePlus One Moto G4 Galaxy J5
N´ıvel API 22 22 23 23
Tempo 3 min 47 seg 3 min 42 seg 3 min 23 seg 3 min 27 seg
5. Considerac¸oes ˜ Finais De acordo com [Honda and Jorge 2013], a aplicac¸ao ˜ de t´ecnicas computacionais na agricultura permite o desenvolvimento de softwares, onde a necessidade de informac¸ao ˜ pode ser suprida ao agricultor, favorecendo o desenvolvimento do setor agropecu´ario. Foram aplicados testes com a ferramenta Google TestLab em que o aplicativo apresentou um resultado satisfatorio, ´ tendo sua arquitetura e usabilidade aprovadas. Como trabalho futuro, pode ser feita uma validac¸ao ˜ com o publico ´ alvo para obter mais informac¸oes ˜ para poder realizar ajustes e aprimoramentos no aplicativo. Pode tamb´em ser desenvolvido um modulo ´ para ajudar a mapear e/ou realizar o zoneamento geogr´afico das a´ reas de cada tipo de solo no Amazonas.
Referˆencias Almeida, B. G. d., Donagemma, G. K., Ruiz, H. A., Braida, J. A., Viana, J. H. . M., Reichert, J. M. M., Oliveira, L. B., Ceddia, M. B., Wadt, P. S., Fernandes, R. B. . A., et al. (2012). Padronizac¸ao ˜ de m´etodos para an´alise granulom´etrica no brasil. Rio de Janeiro: Embrapa, 11. Brady, N. C. and Weil, R. R. (2006). The nature and properties of soils. Prentice Hall, 13 edition. Honda, B. and Jorge, L. A. C. (2013). Computac¸ao ˜ aplicada a` agricultura de precis˜ao. Cientıfica Eletronica ˆ UNISEB, 1:111–132. Pedroso Neto, J. C. and Costa, J. O. (2012). An´alise do solo: determinac¸oes, ˜ c´alculos e interpretac¸ao. ˜ Dispon´ıvel em <http://www.epamig.br/index.php? option=com_docman&task=doc_download&Itemid=99999999&gid= 2919>. Acesso em: 27 de Abr. de 2017. Santos, H. G. d., Jacomine, P. K. T., Anjos, L. H. C. d., Oliveira, V. A. d., Oliveira, J. B. d., Coelho, M. R., Lumbreras, J. F., and Cunha, T. J. F. d. (2006). Sistema brasileiro de classificac¸ao ˜ de solos. Santos, L. P., Braganc¸a, S. M., and Silva, E. D. B. (2010). Dinˆamica de nutrientes e atributos qu´ımicos do perfil do solo em resposta a` aplicac¸ao ˜ de calc´ario na cultura do guaranazeiro em formac¸ao ˜ no munic´ıpio de mau´es. XXIX Reuniao ˜ Brasileira de Fertilidade do Solo e Nutric¸ao ˜ de Plantas. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
12
Anais do Encontro Regional de Computação e Sistemas de Informação
Um Metamodelo do Processo Unificado Utilizando a Ontologia de Fundamentação Unificada-B Sildenir Alves Ribeiro1,2, Eber Assis Schmitz1 , Antônio Juarez S. M. de Alencar1 Mônica Ferreira da Silva1 1
Instituto Técio Pacitti / NCE – Universidade Federal do Rio de Janeiro (UFRJ) Av. Athos S. Ramos, 274 – Cidade Universitária – Rio de Janeiro – RJ
2
Coordenação de Automação Industrial – Centro Federal de Educação Tecnológica do Rio de Janeiro (CEFET/RJ) Rua Miguel Ângelo, 97 – Maria da Graça – Rio de Janeiro – RJ
sildenir.ribeiro@cefet-rj.br,{eber,juarezalencar,monica}@nce.ufrj.br
Resumo. O objetivo deste trabalho é apresentar uma modelagem ontológica do Processo Unificado (PU) usando Ontologias de Fundamentação Unificada-B (UFO-B). O propósito é explorar os eventos atômicos e complexos do PU e assim definir uma estrutura eficaz que permita gerenciar o processo de software e não apenas controla-lo. Os conceitos da UFO-B foram aplicados no PU para modelar os eventos (perdurantes) e suas relações a partir de um micro incremento comum a todas as fases do PU. O uso da UFOB permitiu uma visualização mais profunda da taxionomia e da semântica do PU, baseando-se nas regras estruturais do processo para definir e integrar o modelo de desenvolvimento ao domínio do problema e assim representar e validar o processo em toda sua extensão. Como resultado, a modelagem apresentou um metamodelo ontológico do Processo Unificado. Abstract. The goal of this paper is to present an ontological modeling of the Unified Process (UP) using Unified Foundational Ontology-B (UFO-B). The purpose is to explore the atomic and complex events of the PU and thus define an effective structure that allows managing the software process and not just controlling it. The concepts of UFO-B were applied in the PU to model the events (perdurant) and their relations from a micro-increment common to all phases of the PU. The use of UFO-B allowed a deeper view of the taxonomy and semantic of the PU, based on structural rules of the process to define and integrate the development model the problem domain and thus represent and validate the process in all its extension. As result, the modeling presented an ontological metamodel of the Unified Process.
1. Introdução A construção de software requer um conjunto de atividades que envolva toda a extensão do projeto, do levantamento inicial até a entrega do produto de software contratado [Dennis e Wixiom, 2005]. A obediência aos padrões, à inserção correta das técnicas, métodos, modelos, ferramentas e paradigmas existentes são fatores que contribuem para a qualidade do produto de software, mas pode não ser suficiente ou adequado para o processo de desenvolvimento de software quando aplicado a um determinado domínio [Ribeiro, 2017]. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
O PU (Processo Unificado) é uma metodologia de desenvolvimento comumente utilizada e alinhada com a Linguagem de Modelagem Unificada (UML) [Jacobson, et al., 1999a], [Jacobson, et al., 1999b] e que atende aos mais altos níveis de exigências em se tratando de processo de desenvolvimento de software. Segundo [Wheeler, 2001], no máximo é possível controlar o processo, e isto não garante a direção correta de sua execução. Wheeler (2001) afirma ainda que é essencial que o processo seja gerido, controlado e avaliado durante toda a sua extensão e execução, uma vez que o controle do processo vai além do uso adequado da metodologia ou de técnicas empregadas para gerenciá-lo. Em se tratando de desenvolvimento de software, é exige ainda conhecimento profundo do processo, do ambiente e da ferramenta de modelagem que será utilizada. Isto impõe o uso de ferramentas adequadas para abstrair a informação no mais baixo nível para que se possa explorar as fases do desenvolvimento, a complexidade de cada interação e um caminho seguro para guiar o desenvolvimento do software. A partir deste contexto, adotou-se o uso da UFO (Unified Foundational Ontology) para construção do conhecimento sobre e modelagem dos eventos e das relações do processo unificado.
2. Trabalhos Correlatos O levantamento bibliográfico realizado para este trabalho foi direcionado para publicações dos últimos anos (2005-2015) que utilizam a UFO em processo de software. Portanto, as referências clássicas sobre o PU e a UFO somente serão citadas ao longo do texto, por se tratar de conteúdo primário para a fundamentação deste trabalho. O trabalho de maior relevância com relação ao propósito desta pesquisa foi o trabalho de [Briguente e Falbo, 2011]. O artigo apresenta uma reengenharia do processo unificado a partir da UFO (Unified Foudational Ontology) e envolve a UFO-A e a UFOB. A dissertação de mestrado de [Noll e Ribeiro, 2007], faz uma rastreabilidade ontológica sobre o processo unificado, também teve boa contribuição, uma vez que o mesmo aplica ontologias no ciclo interativo e nas fases do Processo Unificado. O texto de [Guizardi et al., 2010] foi fundamental porque enfatiza a UFO e a modelagem conceitual, com abordagem que envolve a UFO-B. O trabalho de [Falbo e Bertollo, 2009] apresenta o uso de ontologias no domínio do processo de software com um vocabulário ontológico sobre o processo de software. Este trabalho foi importante porque mostrou o uso de ontologias aplicadas ao processo de software. Os textos de [Guizzardi, et al., 2008a] e [Guizzardi, et al., 2008b], também foram amplamente analisado durante o desenvolvimento desta trabalho. Ambos trabalhos aplicam a UFO no domínio do processo de software. O trabalho de [Meenakahi, 2014] faz uma reengenharia da ontologia de processos para o processo software, apresentando uma reedição do trabalho de [Briguente e Falbo, 2011]. Já, [MARTINS, et al., 2011 ] destaca em seu trabalho o uso de ontologia de fundamentação na redução de ambiguidades na
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
14
modelagem de processos de negócio em uma abordagem sobre os eventos do processo de negócio. Outros trabalhos também forneceram embasamento para a construção do metamodelo do PU, como: [De Nicola et al., 2005] que propõe o uso de ontologias para o desenvolvimento do processo de software; [Missikoff e Navigli, 2005] que segue a mesma linha de [De Nicola et al., 2005], só que direciona seu estudo para o processo unificado em grande escala. [De Nicola et al., 2009], com uma abordagem com base na engenharia de software para a construção de ontologias; [Guizardi et al., 2011] com o emprego da UFO na modelagem conceitual para tratar a interoperabilidade semântica; e, [Vilela et al., 2005] que usa ontologias para apoiar à gestão do conhecimento em ambientes de desenvolvimento de software.
3. Processo Unificado e Ontologia de Fundamentação: Conceitos Gerais O Processo Unificado (PU), é um modelo interativo e incremental de desenvolvimento de software, que combina as atividades necessárias para transformar os requisitos de usuários na construção de software [Jacobson, et al., 1999a] e [Jacobson, et al., 1999b]. As etapas do processo são combinadas em ciclos interativos de desenvolvimento que permite acompanhar e gerenciar o desenvolvimento ao longo do ciclo de vida do processo [Jacobson, et al., 1999a] e [Jacobson, et al., 1999b]. De forma geral o Processo Unificado é representado por um conjunto de fases, como pode ser observado na figura 1. Fases do PU Disciplinas do PU
Concepção
Transição
Construção
Elaboração
Fluxos de Trabalho
Modelagem de Negócios Especificação de Requisitos Análise e Modelagem
Implementação
Teste
Fluxos de Apoio
Implantação Ger. Configuração e Mudanças Gerenciamento de Projeto Ambiente
Iterações
Início IC1
E1
E2
C1
C2
Cn
T1
T2
Figura 1. Esquema geral do Processo Unificado (Jacobson et al., (1999b)
Cada uma destas fases envolve toda a extensão do desenvolvimento determinado por três características básicas e fundamentais [Jacobson et al., 1999b], como: 1. Ser orientado por casos de uso: os casos de uso são utilizados para capturar e definir os requisitos funcionais do sistema, além de definir as metas e guiar o trabalho em cada micro interação;
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
15
2. Ser centrado na arquitetura: a arquitetura é modelada através dos aspectos estáticos e dinâmicos do processo, fornecendo uma estrutura que permite gerir o processo em cada interação; 3. Ser interativo e incremental: cada micro incremento correspondem à uma iteração e resulta em um ciclo incremental no desenvolvimento do software. As iterações referem-se aos passos e a evolução do produto a ser desenvolvido em cada fase do processo. A figura 2 ilustra o ciclo de uma iteração envolvendo as quatro fases do Processo Unificado. Planejamento da Interação
Build Estável da Iteração
Builds Intermediário Versão Compilada
Revisão da Interação
Início
Término
Elaboração da Arquitetura
Teste e Refinamentos Mudanças Propostas
Micro Incremento Contínuo Artefatos Validados Ciclo de Vida do Micro Incremento
Figura 2. Ciclo de vida do micro incremento: Interação entre as fases do PU.
FASES
Concepção
Elaboração
Construção
Transição
MARCOS
Iniciação: Objetivos do ciclo de vida
Planejamento: Arquitetura do ciclo de vida
Operacional: Recurso operacional inicial.
Entrega: Liberação do produto
OBJETIVOS
Escopo do sistema Requisitos do sistema Custo geral do sistema Riscos em potencial
Baseline da Arquitetura Riscos potenciais Componentes do sistema Reusabilidade
Qualidade do sistema Versões do sistema (Alfa e Beta) Release do sistema
Beta teste Conversão do BD Treinamentos Distribuição
ARTEFATOS
A principal finalidade do PU é evidenciar a necessidade de atribuições de tarefas a grupos ou indivíduos que necessariamente estejam envolvidos diretamente no desenvolvimento do projeto. Isto é feito através da identificação das etapas / iterações, dos marcos do projeto, dos objetivos do projeto e dos artefatos que serão gerados e utilizados durante o processo. A figura 3 apresenta uma adaptação do esquema geral do PU, e foi desenvolvida para ilustrar os principais aspectos processo de desenvolvimento de cada fase do Processo Unificado1 (PU).
Documento de visão Lista de Risco Plano de Iteração Glossário Modelo de caso de uso Protótipos
Protótipo Modelo de design Modelo de dados Modelo de Implantação
Release do sistema Casos de testes Material de suporte
Release Material de Suporte Casos de testes Pacote de distribuição
Figura 3: Mapeamento do PU (Adaptado de Larmam, (2002)) 1
Em razão do PU ser amplamente difundido e facilmente encontrado na literatura, não será apresentado neste trabalho conceitos e definições detalhadas sobre o PU. Para informações mais detalhadas, Para sugere-se ao leitor consultar as fontes referenciadas neste trabalho.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
16
O mapeamento apresentado na figura 3 também servirá de referência para a modelagem dos eventos de acordo com a UFO-B. 3.1 Ontologia de Fundamentação Unificada A UFO é uma ontologia de domínio com base filosófica e cognitiva especificada e definida a partir de um vocabulário formal com o objetivo de representar estruturalmente um domínio de forma precisa através de meta propriedades [Guizzardi, 2005] e [Guizzardi e Wagner, 2005]. As meta propriedades da UFO auxiliam na modelagem, na identificação e na classificação de conceitos de um determinado domínio, os quais podem ser transferidos para o desenvolvimento de sistemas computacionais [Guizardi et al., 2010]. A UFO é dividida em três camadas formalmente dispostas [Falbo e Guizardi, 2008]. 1. UFO-A (Ontology of Endurants): A UFO-A é o núcleo da Ontologia de Fundamentação Unificada, e é empregada para sistematizar conceitos, exemplo, tipos, estruturas taxonômicas, relações todo-parte, propriedades intrínsecas, espaços de valores de atributos, papéis, propriedades relacionais, entre outros [Guizardi et al., 2010]. 2. UFO-B (Ontology of Perdurants): A UFO-B sistematiza os conceitos de: estados, processos, eventos e relações temporais de um domínio definido pelo intervalo de tempo. O evento é o elemento central da UFO-B, e é essencial para a representação da ideia de continuidade, que é a característica marcante dos perdurantes2.[Guizzardi e Wagner, 2005]. 3. UFO-C (Ontology of Social and Intentional Entities): A UFO-C representa conceitos relacionados com as questões sociais e intenções, incluindo conceitos linguísticos [Guizzardi e Wagner, 2005]. 3.1.1 UFO-B: Eventos e Intervalos Temporais A UFO-B é uma ontologia de eventos. Os eventos são perdurantes, i.é, existem durante um período contínuo de tempo. Segundo [Guizzardi e Wagner, 2005] os eventos diferem dos objetos, uma vez que é composto de partes temporais e podem alterar uma situação interferindo no estado dos objetos que estão sendo em um intervalo de tempo. A identidade dos eventos não está diretamente ligada as suas partes temporais e se mantem ao longo do tempo mesmo que suas partes temporais sofra alguma mudança [Guizzardi e Wagner, 2005] . Como exemplo, pode-se se fazer uma analogia em uma atividade do processo unificado, onde “Análise e Modelagem” representada na figura 4, é um evento que possui 4 partes temporais, dado pelos estados {1, 2, 3, 4}. Supõe-se que a atividade 2
Os perdurantes têm a sua existência definida a partir de um intervalo de tempo e de suas relações com os Endurants. Essa relação é onde a UFO-A se expande e se conecta com a UFO-B [Falbo e Bertollo, 2009].
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
17
“Verificação do modelo”, seja executada no estado 3, como ela é um evento temporal, a mudança do seu estado (de não realizado para realizado) não promove mudança no evento “Análise e Modelagem”.
Estado3
Estado1
Estado4
Estado2
Análise e Modelagem
Figura 4. Partes temporais do evento Análise e Modelagem
3.1.2 Tipos de Eventos da UFO-B Os eventos podem ser complexos ou atômicos [Guizardi e Wagner, 2005]. Os eventos complexos são compostos, ou seja, dependem da existência de pelo menos outros dois eventos associados, e as suas partes carregam a identidade do evento complexo. Já os eventos atômicos, podem ter definição própria e são indivisíveis, dado pela orientação semântica do domínio, i.é, um evento atômico pode estender-se por um longo período de tempo, sem perder sua identidade semântica. 3.1.2 Modelagem ontológica do PU A modelagem ontologicamente é um fator que pode vir a facilitar na execução de cada atividade do processo de softeware, já que o conhecimento do domínio e do processo se expande em refinamentos que categorizam e identificam todos os eventos que devem ser executados. A modelagem tratada aqui será fortemente embasada no SPO (Software Process Ontology), proposto por [Falbo e Bertollo, 2009], com o objetivo central de abstrair os eventos do PU e assim contribuir para a evolução do processo. A figura 5 abaixo, é um fragmento da conceituação do SPO e será adotada nesta proposta para modelar os objetivos do Processo Unificado.
Figura 5. Fragmento da ontologia do processo de software [Falbo e Bertollo, 2009]
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
18
Já a figura 6 [Guizardi et al, 2008a], apresenta um fragmento da UFO-B e será usada como referência para modelar os eventos do PU.
Figura 6. Fragmento da UFO-B [Guizardi et al, 2008a]
Assim como todo processo, o PU também pode ser decomposto em subprocessos e atividades. As atividades são consumidoras de recursos e o resultado produz um artefato (modelo conceitual, modelo arquitetural, código, etc). Os artefatos também podem servir de entradas para outras atividades, estabelecendo assim o auto incremento e a interatividade, que são características marcantes do PU.
4. O Metamodelo do Processo Unificado com a UFO-B No modelo proposto neste trabalho, as atividades serão os fluxos de trabalho, apresentado na figura 1, dado pelos micro incrementos como exemplifica a figura 2 e pelo mapeamento das fases do processo, como visto na figura 3. Por convenção, as sessões a seguir apresentará somente a modelagem dos fluxos de trabalhos. Os fluxos de apoio serão modelados em uma oportunidade futura e apresentados em outro trabalho. 4.1 Representação do Modelo Ontológico do Processo Unificado O fragmento de modelagem ilustrado na figura 7, representa a ontologia do Processo Unificado. O principal objetivo desta modelagem foi identificar os “substancial” com o objetivo central de abstrair os eventos do PU e assim contribuir para a evolução do processo. Depende de pré atividades
Definido por
1..*
1..*
Atividade: Fluxo de Trabalho
Micro Incrementos
Recursos Requer
Micro Iterações
Financeiro
Contem 1
1..*
Fase do PU
Disciplinas do PU
Recursos Humanos
Recursos de Software
Recursos de Hardware
Executado em
Reconhece
Definido por
PU Padrão
PU Domínio
Projeto
De acordo com
Domínio
Figura 7. Ontologia do Processo Unificado
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
19
4.2 Metamodelo do Processo Unificado Para a modelagem ontológica foi necessário abstrair os eventos atômicos do PU e evidenciar os eventos temporais (perdurantes) através das interações de seu ciclo incremental. Este mapeamento envolveram as atividades, micro atividades e as relações entre os objetos através de uma ordem de precedência de execução. A modelagem cobriu as 4 fases do processo (Concepção, Elaboração, Construção e Transição). 4.2.1 Modelagem dos Eventos do PU Para direcionar o trabalho, definiu-se um micro incremento geral que se aplica em todas as fases do PU com as seguintes micro atividades: requisitos funcionais e casos de uso, análise, projeto (modelo arquitetural) implementação, teste, implantação/entrega, como mostra a figura 8. Requisitos funcionais e Casos de uso
Início
Análise
M1
M1
M2
Projeto
M3
Mn
M1
M1
Implementação
M2
Mn
M1
M2
M1
M2
Mn
Fim
Entrega
Teste
Figura 8. Micro incrementos utilizado na modelagem dos eventos do PU
A figura 9, modela os eventos do PU tomando como base a UFO-B, dado pelas categorias Universais, de Indivíduos e Substanciais. O modelo foi desenvolvido a partir da “Atividade Fluxo de trabalho” e da “Subatividade Micro incremento”, destacado na figura 7. Indivíduo: PU pré estado: preparação
Situação pós estado: realização
Evento: Atividade
Objeto: Fase
enquadrado em
Intervalo Temporal: Build Estáticos
participa de {disjunto, completo}
composto por
Complexo: Micro Incremento
Participação: Recursos Humanos
Substancial: Disciplinas PU
Atômico: Implantação
{disjunto, completo} parte de
*
* Caso de uso
parte de
*
* Análise
parte de
*
Projeto
parte de
*
M1
M1...Mn
M1...Mn
partes temporais dependentes: micro iterações
partes temporais dependentes: micro iterações
partes temporais dependentes: micro iterações
* * Implementação M1...Mn
partes temporais dependentes: micro iterações
parte de
*
Teste
*
M1...Mn
partes temporais dependentes: micro iterações
Figura 9. Fragmento do metamodelo do PU
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
20
O modelo possibilitou a distinguir a participação e a situação dos objetos em relação aos eventos. Permitindo observar os diferentes tipos de participação em função da existência dos recursos e da ocorrência dos eventos. A participação muda o estado da situação, sempre que a relação “pós-estado” for alimentada e quando um evento for realizado, seja atômico ou complexo.
5. Conclusão O Processo Unificado (PU) é um modelo amplamente explorado e tem se apresentado como uma ferramenta útil e eficaz para guiar o desenvolvimento de software. O emprego de ontologias nos modelos de desenvolvimento de software tem atraído muitos pesquisadores e desenvolvedores devido à alta capacidade de abstração e representação de domínios com resultados práticos, claros e que são traduzidos em modelos de desenvolvimento mais robusto e mais fiel ao seu propósito. A modelagem ontológica do Processo de Unificado (PU), usando a UFO-B (Unified Foundational Ontology-B) permitiu explorar o processo unificado e seus eventos a partir das fases e dos objetivos do PU. O uso da UFO foi fundamental neste contexto para abstrair a semântica do PU e construir conhecimento sobre o domínio do problema em que o processo de unificado foi inserido, permitindo assim maior controle e gerenciamento do processo de desenvolvimento. O metamodelo desenvolvido foi adotado para cobrir todas as fases do PU e foi aplicado em um experimento para identificar gargalos em processo de desenvolvimento de software. A aplicabilidade do metamodelo depende do domínio do projeto, portanto podem conter outras micro atividades que não foram representadas na modelagem. No entanto, com ajustes pontuais e reengenharia do metamodelo, é possível que este possa ser aplicado em outro domínio ou projeto que utiliza o PU como PDS (Processo de Desenvolvimento de Software). Futuramente pretende-se aplicar o metamodelo desenvolvido para medir um processo de desenvolvimento e usar as métricas na tentativa de redução dos custos e do tempo de desenvolvimento. A ideia é gerar um benchmarking que possa auxiliar no planejamento do processo de desenvolvimento de software, da concepção à transição.
7. Referências BRIGUENTE; A. C. O.; FALBO, R. A.; Reengenharia de uma Ontologia de Processo de Software e Seu Uso para a Integração de Ferramentas de Apoio o Planejamento de Projetos; Dissertação de mestrado; PPGI/CT/UFES; Vitória-ES; 2011. DE NICOLA, A.; MISSIKOFF, M.; NAVIGLI, R. A Proposal for a Unified Process for Ontology Building: UPON. Database and Expert Systems Applications, v. 3588, p. 655–664, 2005. DE NICOLA, A.; MISSIKOFF, M.; NAVIGLI, R. A Software Engineering Approach to Ontology Building. Information Systems, v. 34, n. 2, p. 258–275, abr. 2009. DENNIS, A.; WIXOM, B.H.; Análise e Projeto de Sistemas; segunda edição; Ed. LTC; Rio de JaneiroRJ; 2005.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
21
FALBO, R.; BERTOLLO, G. A Software Process Ontology as a Common Vocabulary About Software Processes. International Journal of Business Process Integration and Management (IJBPIM), v. 4, p. 239-250, 2009. GUIZZARDI, G. ; FALBO, R.A.; GUIZZARDI, R.S.S. A Importância de Ontologias de Fundamentação para a Engenharia de Ontologias de Domínio: O Caso do Domínio de Processos de Software; IEEE LATIN AMERICA TRANSACTIONS, VOL. 6, NO. 3, JULY 2008a. GUIZZARDI, G., FALBO, R.A. AND GUIZZARDI, R.S.S. Grounding Software Domain Ontologies in the Unified Foundational Ontology (UFO): The Case of the ODE Software Process Ontology. In Proceedings of the XI Iberoamerican Workshop on Requirements Engineering and Software Environments, 244-251, 2008b. GUIZZARDI, G.; ALMEIDA, J. P. A.; GUIZZARDI, R.S.S.; FALBO, A. R.; Ontologias de Fundamentação e Modelagem Conceitual;. Núcleo de Estudos em Modelagem Conceitual e Ontologias (NEMO), Universidade Federal do Espírito Santo (UFES), Vitória-ES, Brazil; 2010. Disponível em: <<http://nemo.inf.ufes.br/>>. GUIZZARDI, G.; ALMEIDA, J. P. A.; GUIZZARDI, R.S.S.; FALBO, A. R.. BARCELOS, M. P.; Ontologias de Fundamentação, Modelagem Conceitual e Interoperabilidade Semântica; Núcleo de Estudos em Modelagem Conceitual e Ontologias (NEMO); Universidade Federal do Espírito Santo (UFES), Vitória (ES), Brasil; 2011. Disponível em: <<http://nemo.inf.ufes.br/>>. GUIZZARDI, G., WAGNER, G.; Some Applications of a Unified Foundational Ontology in Business Modeling, In Ontologies and Business Systems Analysis, M. Rosemann and P. Green (Eds.), IDEA Publisher, 2005. JACOBSON, I.; BOCH, G.: RUMBAUGH, J.; The Unified Process; IEEE Software, vol. 16, no. 3, pp. 96-102, May-June 1999 (a). JACOBSON, I.; BOOCH, G.; RUMBAUGH, J. The Unified Software Development Process. Reading: Addison-Wesley, 1999. 463 p. (b). LARMAN, C. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition; Ed. Addison Wesley Professional; 2004. MARTINS, A. F.; FALBO, R A.; GUIZZARDI, G.; ALMEIDA, JP; Uso de uma Ontologia de Fundamentação para Dirimir Ambiguidades na Modelagem de Processos de Negócio. VII Simpósio Brasileiro de Sistemas de Informação. Salvador, 2011 p. 129 – 140. MEENAKAHI, T.; Reengineering a Software Process by using Unified Foundation Ontology; International Journal of Inventions in Computer Science and Engineering ISSN (Online): 2348 – 3539, ISSN (Print): 2348 – 3431 Volume 1 Issue 3 2014 CSE140403 <<www.ijicse.com >> MISSIKOFF, M.; NAVIGLI, R. Applying the Unified Process to Large-scale Ontology Building (P. Zítek, Ed.). Proceedings of 16th IFAC World Congress. Anais... 4 jul. 2005. Disponível em: <http://www.ifac-papersonline.net/Detailed/28815.html>. Acesso em: 2 maio de 2014. NOLL, R. P.; RIBEIRO, M. B.; Rastreabilidade Ontológica Sobre o Processo Unificado; Dissertação de Mestrado, PUC-RS; Porto Alegre – RS; 2007. RIBEIRO, S. A.; Identificação de Gargalos em Processo de Desenvolvimento de Software: Uma Proposta Baseada nos Princípios da Teoria das Restrições; Tese de Doutorado; Instituto Tércio Pacitti de Aplicações e Pesquisas Computacionais – NCE/PPGI/UFRJ; Rio de Janeiro – RJ; 2017. VILLELA, K., ROCHA, A.R., TRAVASSOS, G.H. et al.: The Use of an Enterprise Ontology to Support knowledge Management in Software Development Environments. Journal of the Brazilian Computer Society, Porto Alegre, Brazil, 11(2): 45-59 (2005). WHEELER, D. J.; Entendendo a Variação – A chave para Administrar o Caos; Ed. Qualimark; Rio de Janeiro – RJ; 2001.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
22
Anais do Encontro Regional de Computação e Sistemas de Informação
Resolvendo Problemas de Manutenção de Software Por Meio da GC com Apoio do Redmine em um Órgão Federal Francisco Canindé da Silva Leite1, Paulo Peres de Jesus Juniro1, Geveson de Souza Oliveira1 Superintendência da Zona Franca de Manaus – SUFRAMA Caixa Postal 69075-351 - Manaus – AM – Brasil {francisco.leite,
geveson.oliveira, paulo.peres}@suframa.gov.br
Abstract. Due to the scarcity of information in the organizational sphere, especially in the area of information technology, management has lost the ability to manage its IT processes and services. This paper presents the preliminary results of a work to initiate a Knowledge Management process that aims to improve the internal processes inherent in software maintenance. The reuse of information and knowledge will enable the organization to reduce its independence from service providers. From the results, it is intended to improve the knowledge base as well as pointing work directions to consolidate the GC organizational environment. Resumo. Devido a escassez de informação no âmbito organizacional, principalmente na área de tecnologia da informação, fez com que a administração perdesse a capacidade de gerir seus processos e serviços de Tecnologia da Informação. Este artigo apresenta os resultados preliminares de um trabalho de iniciação de um processo de Gestão de Conhecimento que visa à melhoria dos processos internos inerentes a manutenção de software. O reuso da informação e do conhecimento possibilitará que a organização reduza a independência em relação a empresas prestadoras de serviço. A partir dos resultados, pretende-se melhorar a base de conhecimento, bem como apontar direcionamentos de trabalho para consolidar a GC ambiente organizacional.
1. Introdução O órgão federal em estudo é responsável por conceder e gerir incentivos fiscais nos estados da Amazônia Ocidental, onde desempenha um processo vital para o desenvolvimento regional. Entretanto, os software que comportam as regras de negócios dos sistemas não foram evoluídos, os mesmos operam de forma crítica e com desempenho insatisfatório. Alguns fatores tais como: falta de documentação e tecnologia obsoleta, são agravantes que elevam os custos com manutenção. Para minimizar os problemas relacionados a manutenção de software, adotou-se de maneira ad hoc a Gestão de Conhecimento (GC) por meio da criação de um repositório denominado de Base de Conhecimento (BC). Para (Takeuchi e Nonaka, 2008 apud Rebelo, 2015) o conhecimento que uma organização consegue deter e sua capacidade de criar e utilizar esse conhecimento é a habilidade central para manter uma vantagem competitiva e inovar. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Para isso, as organizações necessitam criar um ambiente no qual as pessoas compartilhem conhecimento, de modo que suscitem novos conhecimentos, processos e produtos (Schlesinger et al., 2008). Nesse contexto, a GC é um forte aliado durante a manutenção e correção de incidentes nos sistemas, pois a adoção de modelos de padronização pode minimizar a manutenção e produzir uma modificação com qualidade, diminuindo com isso os custos para a organização (IEEE 1992, apud Milev, Zampirolli e Kobayashi 2013). Ainda (IEEE 1992, apud Milev, Zampirolli e Kobayashi 2013) a manutenção de software torna-se crítica quando é feita em sistemas legados, porque a falta de conhecimento requer mais tempo para resolução do problema. Os sistemas, em sua maioria legados operam em diferentes plataformas o que tornam a manutenção e correção dificultosas. Além disso, os incidentes requerem esforços múltiplos da fábrica de software (empresa terceirizada) elevando os custos com a manutenção, e os resultados são sempre soluções paliativas. Este artigo tem como objetivo mostrar os benefícios ganhos com a implantação da GC no âmbito do departamento de informática do órgão em estudo, pois o conhecimento retido torna-se ativo organizacional, cabe ressaltar que órgão não dispunha de BC, por isso, as demandas sempre eram encaminhadas a empresa terceirizada. Além dessa seção introdutória, este artigo está estruturado em: seção 2 apresenta o embasamento teórico, seção 3 mostra um estudo de caso, seção 4 apresenta a metodologia, seção 5 apresenta a avaliação qualitativa, seção 6 apresenta a discussão e 7 considerações finais. 2 A Gestão de Conhecimento na Administração Pública Sommerville (2007) afirma que o software é um produto intangível, diferentemente de outros projetos de engenharias. A GC pode ser entendida, basicamente, como “a arte de gerar valor a partir de bens intangíveis da organização” (SVEIBY, 1998). A Gestão do conhecimento inclui qualquer atividade relacionada com a captura, uso e compartilhamento do conhecimento pela organização (OECD, 2003). Ainda (OECD, 2003), um fato interessante é que o servidor público que participa das iniciativas de GC amplia seus conhecimentos e habilidades. A criação da GC é uma das formas encontradas para melhorar o conhecimento organizacional, dar celeridade nas resoluções dos problemas e reduzir gastos com correção de incidentes que ocorrem com certa frequência nos módulos que compõem o Sis A. Seguindo o raciocínio de (Batista, 2004 apud Coser e Carvalho, 2012) muitas organizações não conhecem o termo “gestão do conhecimento”, mas executam práticas que podem ser classificadas como GC, seguindo essa linha de pensamento, a organização utilizou-se a GC de maneira ad-hoc, uma vez que criou um repositório que serve como base de conhecimento. 2. 1 Manutenção corretiva de software A manutenção de software tem por finalidade manter o funcionamento do produto de forma que o mesmo se mantenha fidedigno conforme sua especificação. Segundo Pressman (2006), existem 4 atividades de manutenção: Manutenção corretiva, Manutenção adaptativa, Manutenção evolutiva e Manutenção preventiva.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
24
Ainda Pressman (2006), a manutenção corretiva é o processo que inclui o diagnóstico e a correção de erros do programa após o produto ter sido entregue. Com base na afirmação citada no parágrafo anterior, entende-se que a manutenção é um processo que acompanha o ciclo de vida do software para que o mesmo permaneça com suas características originais. Entretanto, a manutenção corretiva pode ficar comprometida quando não se sabe da complexidade do produto, tais como: regras de negócios e arquitetura do software. Outros fatores que ocasionam problemas durante a manutenção é o alto custo, acúmulos de solicitações e complexidade dos sistemas (Pressman, 2006). 2.3 Redmine O redmine que é um software livre e de código aberto, licenciado sobre os termos da GNU General Public License (GLP), essa ferramenta funciona como gerenciador de bug (Redmine, 2015). Dentro da metodologia empregada para captar as informações, por possuir múltiplas funcionalidades o redmine oferece apoio sistematizado para o processo de Gestão de Conhecimento. As principais características são: • Suporta múltiplos projetos; • Suporte ao Gantt (calendários e gráficos); • Possibilidades de anexar documentos e adicionar notícias aos projetos; • Wiki por projeto; • Fóruns por projeto • Feeds e notificações via e-mail; • Time Tracking; • Personalização dos fields por projetos; • Integração com ferramentas de controle de versão: SVN, CVS, Git, Mercurial, Bazaar and Darcs; • Suporte autenticação LDAP; • Suporte a diversos idiomas; • Suporte a múltiplos bancos de dados; • Pode ser projetos públicos e privados
3 Cenário O órgão possui vários módulos que compõe os sistemas, sendo que os mesmos se acoplam em quatro grupos, que para fins deste trabalho serão denominados (nomes fictícios) de Sis A, Sis B, Sis C e Sis D. Para que os sistemas atendam os objetivos do órgão, alguns módulos se correlacionam entre si, porém a falta de integração entre os mesmos ocasiona inúmeras inconsistências. A grande maioria dos módulos são legados, o que dificulta a manutenção e sustentação dos software, para este trabalho será comtemplado o Sis A. O Sis A, é um sistema que gerência a entrada de mercadorias nacionais e, é composto por 10 módulos. O estudo se aplica ao SIS A, pois é quem comporta todas as regras de operações de ingresso de mercadoria na região da Amazônia Ocidental e também é o que apresenta o maior índice de incidentes e consequentemente custos com manutenções corretivas. Por ser um sistema antigo que foi evoluído com base em um pré-existente na plataforma mainframe, o mesmo opera de forma crítica para a organização, a falta de conhecimento sobre o sistema por parte dos analistas da autarquia, até então, era um dos Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
25
principais problemas, pois o serviço sempre foi terceirizado e o conhecimento não ficou no âmbito do órgão. Por isso, tem se adotado soluções paliativas para resolver incidentes recorrentes, com isso surgiu a necessidade de implantar mesmo que de forma ad hoc uma BC cuja finalidade é colocar em pratica uma das quatro formas (socialização, combinação, externalização e internalização) do conhecimento proposto por (Nonaka & Takeuchi, 1997; Nonaka & Konno, apud SILVA, 2004). A implantação da GC objetiva capturar conhecimento para o órgão de modo que o mesmo não se dissipe com a saída de pessoas do setor. Todas as demandas solicitadas geram artefatos que ficam anexadas junto a ordem de serviço, esses artefatos contêm a descrição da solução utilizadas nas resolutividades dos problemas. Logo, a mesma solução pode ser reutilizada para dar tratativa a outros problemas similares que podem a ocorrer. 3.1 Sistema Sis A O Sis A é composto por módulos que comportam as regras de negócio do sistema, cujas características são: • Sistema pouco flexível, parametrizado, mas devido operar em plataformas diferentes requer manutenção direta na base; • Código escrito em Cobol, CSP e Java; • Não usa uma base de dados padrão o que dificulta a integração com os demais sistemas; • Os dados ficam em três bases (Oracle, SQLServer e Mainframe); • O espaço de armazenamento do Mainframe é reduzido, por isso há varias manutenções nas tabelas; • As regras do sistema em sua maioria são escritas na base de dados por meio de procedures que foram configurados como JOB’s; • O sistema não contempla todas as regras definidas pela área de negócio; • Alguns casos de uso só contemplam o caminho feliz; Por conta dos motivos elencados surgem diariamente vários incidentes pertinentes ao Sis A, para cada incidente é registrado uma Ordem de Serviço (OS). Logo, quando encaminhadas a fábrica de software geram ônus para a o órgão. O setor de coordenação de informática adotou a GC como possível solução para viabilizar a tratativa sem geração de ônus para o órgão. No âmbito organizacional de Tecnologia da Informação criou-se a BC, por isso, os problemas e soluções inerentes ao Sis A são armazenados em um repositório. Na organização, servidores e contribuintes utilizam os sistemas do órgão, sendo que, os primeiros atendem nas áreas de negócio e são os responsáveis por registrar os incidentes. Esses usuários geram solicitações de correções de bug, de criação ou de melhoria de software para a referida área de negócio, bem como requisições de suporte nos programas já existentes. Em função do grande número de OS, criou-se um workflow visando registrar, tratar e monitorar as solicitações. Ressalta-se que o fluxo de ocorrência tem vários detalhes específicos inerentes ao processo, abaixo será apresentada apenas a visão macro da entrada de requisições de serviços e o uso do Redmine. A Figura 1 mostra a visão do macroprocesso denominado ordem de serviço.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
26
Figura 1: Visão do macroprocesso do fluxo de ordem de serviço
Abaixo será descrito as atividades do fluxo do processo que contem 10 passos até o ciclo final: a) Cliente: São as áreas de negócios. 1- As áreas atendem os clientes internos e registram Ordem de serviço (OS ABERTA); 1- O solicitante da demanda avalia se o serviço foi atendido ou não. Caso tenha sido atendido (OS - SOLUCIONADO), caso contrário a mesma voltará para o passo 7 (OS – IMPLEMENTAÇÂO) e segue o fluxo normal. b) Analistas: Responsáveis pela fiscalização 2- Os analistas fazem a análise da OS, caso tenha registro de incidentes parecidos, a demanda é tratada internamente; O status vai para REVISÃO E IMPLEMENTAÇÃO e Vai para o Passo 10 (OS – FEEDBACK); 3- Caso não consigam resolver, a OS vai para o status (OS – APROVAÇÃO); 9- Vai para (OS - REVISÃO E IMPLEMENTAÇÃO); 4 - OS - FEEDBACK; c) Gestor: Gestor do contrato 10 Gestor Aprova a OS 6- Gestor AUTORIZA a execução do serviço d) Fábrica de SW: Empresa que atende as solicitações. 5 - Os Gerentes de Projeto da FSW colocam em (OS - PLANEJAMENTO e Volta para o Gestor, ver passo 6; 6 - O GP põe em (OS - IMPLEMENTAÇÃO); 8 – Quando o serviço é executado a OS é colocada como (OS IMPLEMENTADO) e volta para os Analistas. Com o processo de implementação da GC reduziu-se o fluxo de algumas demandas, isso se deu devido a consulta que é realizada na BC. Com a criação da BC pode se utilizar formatos e conversões (externalização) citados em Silva (2004), cuja descrição de parte do conhecimento tácito são descritos e armazenados no repositório, a Figura 2 ilustra o fluxo de melhoria do processo.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
27
Figura 2: Processo após a implantação da GC
4 Métodos Esse trabalho contempla três fases: a primeira, criou-se um ambiente para registro das atividades, a segunda, desenvolveu-se o workflow de serviço e a terceira, coletou-se os dados. A criação da BC partiu da premissa em que se fez necessário reter o conhecimento no órgão. Para isso, criou-se de forma ad hoc um ambiente onde todas as problemáticas referentes aos sistemas pudessem ficar registradas. A primeira fase, o redmine foi instanciado para atender os registros de ocorrência de bug nos software da organização, os mesmos foram classificados por sistemas. A ferramenta utilizada possui suporte a múltiplas funcionalidades conforme elencados no item 2.3. A segunda fase, criou-se o mapeamento do processo de aberturas de OS, após a homologação do mapeamento do processo, o redmine foi instanciado de acordo com o workflow de serviço proposto no mapeamento, Figura 1, a ideia para organizar os registros de OS’s por sistemas, objetivou um melhor controle sobre as demandas, a Figura 3 ilustra os papeis que fazem parte do cenário.
Figura 3: Papeis que compõe o cenário da abertura de OS
Conforme a Figura 3, os papeis definidos são: 1. Área: são as áreas fins do órgão que são as donas do sistema, quando detectam um incidente, registram o problema no redmine.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
28
2. Analistas: são os responsáveis por receber a demanda que fora aberta pela área fim, analisa-las, trata-las e/ou repassar a demanda para a fábrica de software. 3. Fábrica de Software: empresa terceirizada que presta serviço para o órgão. 4. Repositório: redmine que fora instanciado de acordo com mapeamento do processo. Ao detectar erro em um dos módulos que compõe o Sis A, a área fim registra uma OS no redmine com a descrição do problema, justificativa e evidência que comprove o bug. O analista da área de informática efetua a análise, caso a demanda já tenha sido tratada e/ou exista solicitação similar à que fora registrada, o analista tem autonomia para efetuar a correção, visto que existem fundamentos para efetuar a tratativa do incidente. Entretanto, quando a demanda é nova e/ou não existem registros, a mesma é encaminhada para a fábrica de software. A terceira fase, realizou-se a coleta de dados referente ao Sis A, fez-se um levantamento das solicitações que foram registradas no período de 24 meses, as demandas foram coletadas de acordo com o status que se encontram registrados na Tabela 1. Para esse estudo utilizou-se um universo de 476 OS’s que foram registradas no redmine. A metodologia aplicada é a descritiva, pois é baseada em estudo de caso e análise documental (Gerhardt e Silveira, 2009). No estágio atual do trabalho estão sendo levantados os métodos determinantes para a implantação de GC. Com base na revisão de literatura foi definida a utilização de: (a) Ambiente Organizacional (Schlesinger et al., 2008); (b) Estrutura Organizacional (Batista,2012); (c) Conhecimento Organizacional (TCU, 2014). Além disso, o Redmine está sendo otimizado para que as atividades sejam melhores gerenciadas.
5 Resultados A Tabela 1 mostra o total de solicitação que foi registrada, cada status representa um ponto no fluxo da OS, conforme fora descrito na Figura 1. Cabe ressaltar que o valor real do total demandado fica registrado no redmine e que todas as manipulações feitas em cada demanda foram guardadas como evidências. Para a realização deste trabalho tomou-se como base a análise de 476 incidentes que foram registrados no Redmine referente aos anos 2015 e 2016, o total dos incidentes corresponde aos módulos que compõe o Sis A. Tabela 1: Quantitativo de Ordens de Serviço Status OS fechada pela Fábrica de Software OS Fechada pelo Setor OS solucionada Feedback Contagem realizada Análise Autorizada Implementada Implementação Planejamento Aguardando outra OS Total
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Quantidade 189 168 23 15 2 7 6 7 9 14 36 476
29
A Tabela 2 apresenta o quantitativo de OS’s que foram encaminhadas para a fábrica de software, do total de 272 exceto as que se encontram em análise não foram encaminhadas. Tabela 2: Quantitativo de OS’s encaminhadas para Fábrica de Software Status OS fechada pela Fábrica de Software OS solucionada Feedback Contagem realizada Análise Autorizada Implementada Implementação Planejamento Total
Quantidade 189 23 15 2 7 6 7 9 14 272
A Tabela 3 apresenta o quantitativo de OS’s fechadas em definitivo pela fábrica de software e pelo setor que utiliza a base de conhecimento para efetuar as manutenções corretivas. Um dos benefícios alcançados com a implantação da GC foi a redução dos custos com manutenção nos software, para tal conclusão levou-se em consideração o total de pontos de função (PF) que seriam pagos pelas demandas, caso não houvesse uma base de conhecimento. Do total de 189 OS’s fechadas pela fábrica de software, equivalem a 1269 pontos de função gastos. Tabela 3: Quantitativo de OS’s fechada pela Fábrica e pelo Setor Status OS fechada pela fábrica de software OS fechada pelo setor
Quantidade 189 168
Quanto ao quantitativo de PF economizados, não tem valores estimados, no que tange a mensuração dos custos pretende-se efetuar uma contagem acurada de quanto foi economizado em termos financeiros. Isso se dará por meio da comparação de PF’s faturados pela fábrica de software e os PF’s estimados que deixaram de ser pagos tendo em vista as OS’s que foram solucionadas tomando como base as respostas existentes no repositório.
6 Discussão Os resultados da GC assim como a criação da BC apontam para uma melhoria no ciclo do processo de OS, conforme apresentado na Figura 2, visto que o quantitativo de OS’s abertas em sua grande maioria reportam incidentes que já tem solução. Outro fator importante é o conhecimento que fica registrado nos artefatos gerados nas demandas, conforme fora abordado no item 3 desse artigo. Incialmente, devido à falta de conhecimento referente aos incidentes que ocorriam nos módulos do sistema, todas as demandas eram encaminhadas para a fábrica de software. De acordo Tabela 3, 168 demandas foram resolvidas pelos analistas internos após os mesmos consultarem a BC, isso reflete que o conhecimento armazenado está sendo utilizado. O processo de GC está em fase de melhoria, mas algumas metas foram Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
30
alcançadas, a principal delas foi parte da documentação de alguns módulos que compõe o sistema Sis A, com os artefatos que são entregues como resposta para cada solução de incidente. A finalidade da GC é construir uma base de conhecimento sólida que permita o aprendizado organizacional, regras de negócios e a estrutura interna dos módulos que compõe os sistemas. Os resultados apontam uma redução de independência de conhecimento do órgão com a fábrica de software, outro fator relevante foi a celeridade na resolutividade dos problemas como representado no diagrama da Figura 2. Uma das metas a serem alcançadas gradativamente com a BC é o desacoplamento forte que a organização mantém com a prestadora de serviço no que tange ao conhecimento sobre a estrutura do sistema, ressalta-se que tal independência ainda demandará algum tempo, que não pode ser estimado no momento. Inicialmente, uma das limitações para implantar a GC em sua totalidade é a falta de representatividade do conhecimento no âmbito operacional, pois o mesmo é tácito e poucas pessoas o detêm, são fatores contribuem para que a implementação caminhe a passos lentos. Cabe ressaltar que os resultados seriam mais efetivos se houvesse na organização uma cultura organizacional definida, também se chegou à conclusão de que a GC quando iniciada em organizações da administração pública, torna-se um dos fatores estratégicos de sucesso.
7 Conclusão Este artigo relata a experiência na manutenção corretiva de software com base em casos solucionados, para essa atividade foi necessário criar um repositório onde fossem armazenados artefatos com informações referentes aos módulos do sistema Sis A. Com a criação da base de conhecimento propiciou o aprendizado sobre como analisar, avaliar e corrigir erros no Sis A. O objetivo da BC é transformar conhecimento tácito em ativo organizacional. O processo CG está em fase de iniciação, apesar de estar em curso há dois anos, pois em órgãos públicos a implantação torna-se lenta. Até o presente momento, a GC está implantada em sua totalidade, mas a falta de cultura organizacional impacta no ciclo de vida das OS’s. No escopo deste trabalho, abordou-se a GC como forma de melhorar o conhecimento com enfoque na correção de incidentes nos módulos do sistema Sis A por meio de base legal existente. Este trabalho mostrou que a GC é uma forma eficaz de disseminação de conhecimento no âmbito organizacional. Espera-se que os resultados deste trabalho a longo prazo, propicie melhorias em implementações futuras. Os próximos passos desse trabalho são: definir um catalogo de serviço e otimização do processo de GC.
5. Referências BATISTA, F. F., Modelo de Gestão do Conhecimento para a Administração Pública Brasileira: Como implementar a gestão do conhecimento para produzir resultados em benefícios do cidadão. Brasília: IPEA, 2012. GERHARDT, E., SILVEIRA, D. T. Métodos de Pesquisa. Porto Alegre: Editora da UFRGS, 2009. MILEV, E. C., ZAMPIROLLI, F. A., KOBAYASHI, G. Estudo de Caso em Manutenção de Software. Revista Interdisciplinar Aplicada. V.5, n,3. p. 27-39, TRI III. ISSN 1980-7031 Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
31
OECD. MISTÉRIO DA INDÚSTRIA DO CANADÁ. Measuring Knowledge management in the business sector. First steps. Paris, OECD, 2003. Portal do Ruby on Rails. <http://rubyonrails.org>. Acessado em 25 de março de 2016. PRESSMAN, R.S., Engenharia de Software, Rio de Janeiro, McGraw-Hill, 2006.
REBELO, J., CONTE, T., “Framework de Gerência do Conhecimento e Aprendizagem Organizacional com Fatores de Influência para Organizações de Software”. WTDQS 2015. REDMINE (2009). Redmine. http://www.redmine.org. Acessado em 25 de março de 2017> SHELESINGER, C.C.B., REIS, D.R., SILVIA, H., CARVALHO, H., SUS, J., FERRARI, J., SKROBOT, L., XAVIER, S. Gestão do Conhecimento na Administração Pública. 1º Ed. IMAP – 2008. SOMMERVILLE, I. Engenharia de Software. São Paulo: Ed. Pearson, 2007. TCU. <http: //www.jusbrasil.com.br/diarios/80388051/dou-secao-1-19-11-2014-pg117> Acessado em 25 de março de 2016.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
32
Anais do Encontro Regional de Computação e Sistemas de Informação
Aplicação de Dojo como Mecanismo para Medir o Ensino e Aprendizagem para Alunos de Programação Maryane L. Brandão Pinheiro1, Carlos Augusto de Araújo Mar2, Sergio Roberto Costa Vieira1 1 Instituto de Ensino Superior FUCAPI (Faculdade FUCAPI) Avenida Danilo Areosa, 381 – Distrito Industrial – Caixa Postal 69075-351 – Manaus – AM – Brasil. 2 Fundação Desembargador Paulo Feitoza (FPF Tech) Avenida Danilo Areosa, 1170 – Distrito Industrial – Caixa Postal 69075-351 – Manaus – AM – Brasil. maryanelbrandao@gmail.com , carlos.augusto.mar@gmail.com , sergio.rcvieira@gmail.com
Abstract. The application of agile methodologies in the academic environment has been increasingly used as a mechanism for teaching assistants in programming courses in computer courses. This mechanism of use of practices, developing a great innovation in teaching methods, becoming the main motivator for this approach. The objective of this work is to present a collaboration between the students, which became efficient without learning with a use of Dojos, where the teacher is only an auxiliary in the classes as a facilitator and the students will have initiative to look for the learning through the collaboration between them. Resumo. A aplicação de metodologias ágeis no meio acadêmico tem sido cada vez mais utilizada, como um mecanismo para auxiliar docentes em disciplinas de programação nos cursos de computação. Esse mecanismo de utilizar práticas ágeis, vem se tornando uma grande inovação nos métodos tradicionais de ensino, tornando-se o principal motivador para essa abordagem. O objetivo deste trabalho é apresentar a colaboração entre os alunos, que passaram a serem eficientes no aprendizado com a utilização de Dojos, onde o professor foi apenas auxiliar nas aulas como um facilitador e os alunos tiveram iniciativa de buscar o aprendizado por meio da colaboração entre eles.
1. Introdução Em meio a tantas tecnologias, inovações e busca incessante pelo aprendizado, pesquisadores de educação tem estudado bastante sobre a questão do ensino tradicional ter o auxílio de algumas ferramentas, que possam contribuir no aprendizado dos alunos de forma dinâmica. Acredita-se que o Dojo de programação é uma atividade dinâmica e que ajuda no aprendizado, incentivando os alunos a aprender de forma colaborativa [Bossavit e Gaillot, 2005]. [Sato, 2008].
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Levando em consideração os artigos encontrados durante a revisão teórica, foi possível perceber que a problemática de grande parte dos autores é o ensino e aprendizagem dos alunos em algumas disciplinas base. Como os alunos não assimilavam os conteúdos de disciplinas base, tinham dificuldades nos próximos períodos. Com isso, buscavam alternativas para dinamizar o ensino para tentar facilitar o aprendizado. Como é o caso citado no artigo Utilização da técnica “Coding Dojo“ no auxílio ao ensino da disciplina de Fundamentos. Neste artigo, os autores relatam as dificuldades que os alunos encontram em disciplinas de programação e consequentemente, o índice de reprovações, que resulta na desistência do aluno nos cursos que envolvem programação [Svaigen, 2014]. [Carmo e Braganholo, 2011]. [Luz, 2013]. [Rosa, 2014]. Relacionado a estes e outros casos, observou-se a mesma problemática no Instituto de Ensino Superior Fucapi, onde muitos alunos dos cursos de computação, enfrentam as mesmas dificuldades nas disciplinas introdutórias de programação, o que acarreta um índice considerável de reprovações e desistências. Com um índice significativo em reprovações dos alunos não só nos casos citados, mas também em outras faculdades que possuem a disciplina de Introdução a Programação, discutiu-se a necessidade de aplicar um estudo por meio de um experimento utilizando práticas de métodos ágeis, mais precisamente o Dojo. O Dojo é uma técnica em que dado um problema, para resolvê-lo é necessária à colaboração de um grupo para se alcançar um resultado. O objetivo desta prática é justamente despertar a troca de ideias e a evolução do raciocínio lógico por meio de uma metodologia pragmática e colaborativa. O experimento que foi aplicado como objetivo deste trabalho, foi um indício de que a colaboração entre os alunos pode resultar realmente na contribuição do aprendizado, deixando o professor apenas com o papel de facilitador, somente para auxiliá-los quando necessário. A técnica utilizada foi o Dojo, mas não foi aplicado em sua forma original, foram feitas algumas adaptações para que houvesse adequação ao ambiente de sala de aula e as necessidades dos alunos. Este artigo é composto de 6 seções. A seção 2 é a revisão da literatura, seção 3 será uma explanação sobre o Dojo, seção 4 é composta de Planejamento e Execução do que foi feito no experimento, seção 5 são os resultados e por fim a seção 6 com as referências.
2. Revisão da Literatura A Revista Brasileira de Informática na Educação, publicou em 2015 uma matéria que reuniu as principais pesquisas sobre ensino-aprendizagem na educação, sendo esta de qualquer nível. Segundo [da Silva et al., 2015] muitas pesquisas já foram feitas para facilitar o aprendizado em sala de aula e os artigos encontrados, buscam dinamizar as aulas por meio de jogos ou ferramentas que apoiem a disciplina em estudo. Com base na revisão feita pelos autores, foi descoberto que existem pesquisas relevantes para várias disciplinas (Programação ou até mesmo Matemática, Geografia, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
34
Química e Português) e níveis de educação. Também, verificou-se que é possível dinamizar e talvez mudar a abordagem de ensino. Os alunos foram bem receptivos as mudanças. Com o passar dos anos, observa-se que de 2009 a 2012 as pesquisas nesta área têm se mostrado cada vez mais consistentes. Em 2013, foram publicados em revistas e congressos o dobro dos anos anteriores. As dificuldades em manter a atenção dos alunos nas aulas e motivá-los a aprender, tem despertado o interesse de muitos pesquisadores em contribuir para facilitar esse aprendizado. [Carmo e Braganholo, 2011] relatam a experiência que tiveram com um grupo de alunos da disciplina de programação ao submeterem as aulas a tipos diferentes de Dojos, sendo estes, adaptações. Os três experimentos tiveram boa aceitação dos alunos, mas não como esperado. Eles observaram que a obrigação em participar de um Dojo não deixou os alunos a vontade e também a exposição dos códigos e timidez, foram um dos motivos que alguns alunos alegaram para não participar do experimento [Carmo, Braganholo, 2011]. Pensando nas dificuldades em que os professores encontram para prender a atenção dos alunos nas aulas, [Delgado, Toledo e Braganholo, 2012] pensaram em adaptações de Dojos em que podem ser aplicados a qualquer disciplina de graduação. Os autores aplicaram essas adaptações nas disciplinas de Estruturas de Dados, Inteligência artificial e Computação Gráfica. Para as disciplinas aplicadas, foi definido um problema e linguagem de programação, que nesse ponto dependendo da disciplina, conseguiram codificar em mais de uma linguagem, permitindo que os alunos visualizassem diferentes formas de resolver um determinado problema. Durante a codificação, os autores deixaram claro a importância dos testes, mas em alguns casos, para não perder o foco do Dojo, é importante que os testes estivessem prontos. Também, foi definido pequenos objetivos a fim de alcançarem resultados maiores. Os autores tiveram a preocupação de equalizar os conhecimentos de todos os alunos, com intenção de nivelá-los. Os alunos não foram pressionados a participar, mas os autores relataram as abordagens utilizadas, para despertar o interesse espontaneamente. Por último, relataram que é fundamental que a plateia entenda tudo que está sendo feito pelo piloto e também das dificuldades que os alunos enfrentam para explicar em voz alta. De acordo com os autores, dependendo da complexidade do problema e da quantidade de pessoas, o tempo do Dojo deve ser alterado para mais ou para menos. Nos trabalhos relacionados citados neste tópico, foi possível observar que os autores usaram abordagens diferentes, mas todas com o mesmo propósito de dinamizar o ensino e aprendizagem dos alunos.
3. Dojo No contexto tecnológico, Dojo é uma reunião entre desenvolvedores em que eles se encontram para codificar sem que tenha qualquer pressão ou prazo para serem cumpridos, simplesmente codificar por prazer. Essas reuniões ajudam a perder a timidez, e também a
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
35
compartilhar experiências e dicas, por exemplo, de boas práticas de programação, já que a ideia do Dojo é a troca de conhecimento entre os participantes.[Bache, 2013]. Para que a reunião do Dojo aconteça, é necessário ter entre 5 a 15 pessoas. Segundo [Bache, 2013], ter um número muito grande, dificulta a retrospectiva e um número muito pequeno, não terá tantas opiniões para serem coletadas. Logo, ter a quantidade certa de pessoas contribui para que o Dojo funcione bem. As regras são explicadas e duas pessoas da plateia assumem os papéis de piloto e copiloto, o piloto irá codificar e fazer os testes necessários para execução do código, enquanto o copiloto assiste a sessão para apoiar o piloto. Isso é feito em um computador conectado a um projetor, onde os outros participantes poderão acompanhar toda a codificação enquanto o piloto explica o que está sendo feito. Entre 5 e 7 minutos, os papéis são alterados para que todos possam participar. O piloto volta para a plateia, enquanto o copiloto assume o papel de piloto, dando espaço para alguém da plateia assumir o papel de copiloto. Ao término do Dojo, é feita uma retrospectiva com todos os participantes para coletar os feedbacks do que foi positivo ou o que precisa ser melhorado para a próxima reunião[Luz, 2013][Bache, 2013]. As reuniões podem ser adaptadas de acordo com as necessidades do grupo, pois existem vários estilos de como conduzir o Dojo[Luz, 2013]. Esses estilos são utilizados de acordo com a necessidade do grupo, pois cada estilo tem suas características.
4. O Experimento O experimento foi realizado com uma turma de Introdução a Programação da Faculdade Fucapi com alunos dos cursos de Computação, no período de 20 a 27 de Novembro de 2015. Nestes dias, foram realizados dois encontros em que aconteceram os Dojos e a Avaliação. Os dois encontros foram divididos em Fase 1 e Fase 2, onde o segundo encontro aconteceu com base nos feedbacks coletados. 4.1. Planejamento No planejamento na Fase 1 e na Fase 2, foi discutido o local, como seria a abordagem utilizada, qual seria a turma e disciplina, o conteúdo e até mesmo o perfil dos alunos. 4.1.1 Perfil dos Alunos A turma era composta por 18 alunos, mas devido a ausência de alguns, somente 13 alunos participaram do laboratório. De acordo com o professor da disciplina, todos os alunos estavam inteirados sobre o conteúdo a ser abordado no Dojo (Estruturas de Repetição), já que todos participaram das aulas do professor seguidas de exercícios. 4.1.2 Abordagem Utilizada na Fase 1 Nesta etapa, foram definidas a regras do Dojo e como poderia ser adaptada a realidade do experimento.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
36
A Fase 1 do experimento, foi planejada contemplando a explicação introdutória do Dojo e das regras que seriam seguidas no Dojo aplicado em sala. O Quadro 1 apresenta o cronograma do laboratório Fase 1. Quadro 1: Cronograma do Laboratório Fase 1.
Atividades Apresentação sobre a definição do Dojo Apresentar Regras do Dojo Adaptado Apresentar os Monitores Separar os Grupos Distribuir os problemas para cada grupo Dojo Retrospectiva
Carga Horária 10 minutos 5 minutos 3 minutos 1 minuto 1 minuto 1 Hora 20 minutos
Os conceitos de Dojo de programação foram explicados para os alunos antes que as regras do Dojo adaptado fossem explicadas, justamente para que os alunos ficassem inteirados sobre a definição do Dojo original. Durante 1h de Dojo, os alunos foram submetidos a desafios relacionados ao conteúdo abordado em sala com o professor, onde cada grupo teve 20 minutos para resolver cada problema. 4.1.3 Infraestrutura Fase 1 O Dojo foi planejado para acontecer em sala de aula e ter duração de 1 hora e 40 minutos. Para cumprir os requisitos que o Dojo estabelece, foram convidados a participar, 3 programadores experientes que fizeram os papéis de monitores. Os alunos não utilizaram computador, pois foi planejado que codificariam no papel devido a timidez e resistência que alguns alunos têm em se expor a frente da turma[Delgado, 2012]. Como pedido do professor da disciplina, para dinamizar o laboratório, os alunos tiveram auxílio de dicas que eram solicitadas após cada troca do piloto e copiloto. 4.1.4 Avaliação Fase 1 Na Fase 1 deste laboratório, foi planejado apenas um questionário impresso contendo 5 perguntas discursivas para que os alunos avaliassem a abordagem utilizada e sugerissem melhorias para o próximo encontro. Segue abaixo um quadro com as perguntas aplicadas aos alunos no questionário. Quadro 2: Questionário do Laboratório Fase 1.
Perguntas O que você achou da abordagem utilizada? Você acha que conseguiu assimilar melhor o conteúdo? Você sugeriria a utilização dessa abordagem em sala de aula para outro professor? Justifique sua resposta. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
37
Quais os pontos positivos? Quais os pontos negativos? 4.2 Execução na Fase 1 Em sala de aula, os alunos tiveram uma breve apresentação do que seria feito e as regras que deveriam ser seguidas. Feita as apresentações dos monitores, os alunos foram divididos em subgrupos de 4 pessoas, sendo que a seleção dos integrantes, foi feita pelo professor da disciplina de acordo com a facilidade de cada um com o conteúdo. Com os grupos formados, os monitores foram distribuídos em cada grupo com o objetivo de se certificarem que as regras seriam cumpridas e entregar o problema para seu respectivo grupo. Os alunos foram orientados que teriam 20 minutos para resolver cada problema. Foram escolhidos dois participantes que seriam no início o piloto e copiloto nos grupos e explicado sobre o "timebox", que a cada 5 minutos, havia a troca de papéis, onde o piloto retorna para plateia, no caso ele passa o papel que estava codificando para o copiloto que agora assume o papel de piloto e uma outra pessoa passa a ser o novo copiloto. Quando acontecia essa troca, o novo piloto teve direito a estourar um balão para ter acesso a dicas úteis ou inúteis sobre o problema. Passado o tempo da primeira sessão, nenhum grupo conseguiu resolver o problema e foi feito um acordo com os alunos para estender o tempo da sessão e também, o professor da disciplina sugeriu, que houvesse um rodízio entre os grupos. O professor escolheu um aluno de cada grupo e as trocas foram feitas com intuito do novo integrante conseguir colaborar com a nova equipe. Conforme cada grupo concluía os desafios, novos problemas foram entregues e ao total, cada grupo conseguiu concluir 3 questões dos desafios. Após a codificação, os alunos participaram de uma retrospectiva e como pareciam intimidados para opinar a frente de todos, foram colocados no quadro palavras-chaves para que eles escrevessem no post-it e avaliassem cada um dos itens. As figuras abaixo mostram o momento da retrospectiva.
Figura 1: Retrospectiva da Fase 1 - Fonte: Produção do próprio autor.
Ao final da retrospectiva, os alunos receberam um questionário com 5 perguntas (Quadro 2) para ser respondido em casa e trazer na próxima aula. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
38
4.3 Abordagem Utilizada na Fase 2 Nesta etapa, as regras do Dojo já estavam definidas mas sofreram algumas alterações com base nos feedbacks dos alunos na Fase 1. A Fase 2 do experimento, foi planejada contemplando a explicação das novas regras, exercício de fixação contendo o assunto a ser explorado no Dojo. O Quadro 3 apresenta o cronograma do laboratório Fase 2. Quadro 3: Cronograma do Laboratório Fase 2.
Atividades Apresentar as Novas Regras do Dojo Apresentar os Monitores Aplicar Exercício de Fixação Formação dos Grupos Distribuir os problemas para cada grupo Dojo Reaplicar Exercício Fixação Retrospectiva
Carga Horária 5 minutos 1 minuto 15 minutos 1 minuto 1 minuto 56 minutos 15 minutos 10 minutos
As novas regras foram explicadas aos alunos e conforme haviam pedido no feedback do laboratório Fase 1, foi definida a linguagem C como padrão. O tempo do Dojo também foi alterado, seguindo o feedback dos alunos que relataram terem pouco tempo em cada sessão. A sessão passou a ter 28 minutos. 4.3.1 Infraestrutura na Fase 2 Na Fase 2, o Dojo seguiu o mesmo planejamento da Fase 1 e aconteceu em sala de aula e teve duração de 1 hora e 40 minutos. Foram convidados a participar, 3 programadores experientes que fizeram os papéis de monitores e os alunos continuaram a codificar no papel. As dicas que foram solicitadas pelo professor, foram alteradas de acordo com os feedbacks e ao invés de partes do código, os alunos pediram dicas explicativas. 4.3.2 Avaliação Fase 2 Com base no que funcionou bem na Fase 1, na Fase 2 o questionário continuou a ser utilizado, mas dessa vez as perguntas foram referentes ao aprendizado durante a abordagem. No quadro 4, segue as perguntas utilizadas no questionário. Quadro 4: Questionário do Laboratório Fase 2.
Perguntas Você acha que conseguiu contribuir na resolução dos exercícios? Como foi essa contribuição? Você acha que conseguiu aprender algo novo ou esclareceu uma dúvida com algum dos colegas do time? Qual(is)? Você conseguiu ensinar ou esclarecer dúvidas de algum dos colegas de time? Qual(is)?
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
39
Você acredita que seu conhecimento referente ao conteúdo proposto foi melhorado? Explique como se deu essa melhoria. Você acredita que com essa abordagem, todos os colegas de time contribuíram de alguma forma para a resolução dos problemas e conseguiram melhorar seu aprendizado? Justifique sua resposta. Para avaliar o desempenho dos alunos, foi elaborado um exercício de fixação contendo 2 questões que foram escolhidas pelo professor da disciplina. Para cada questão correta, foi atribuído 1 ponto, ou seja, cada aluno teria no máximo 2 pontos por exercício. A retrospectiva dos alunos também foi reformulada com o uso de quadros individuais, em que os alunos puderam opinar sobre os tópicos. 4.4 Execução na Fase 2 Em filas, os alunos receberam um exercício de fixação, com duas questões sobre o conteúdo a ser abordado no Dojo e tiveram 15 minutos para resolver. Ao recolher os exercícios, os grupos foram formados com a ajuda do professor da disciplina e este, formou os grupos com base na facilidade de cada aluno com o conteúdo. Seguindo o feedback dos alunos, o tempo da sessão passou a ter 28 minutos e a transição de papéis ocorreu a cada 7 minutos. Conforme haviam pedido, os problemas foram resolvidos em C para padronizar uma linguagem. O Dojo teve duração de 56 minutos, tendo duas sessões e mesmo aumentando o tempo das sessões, alguns grupos não conseguiram concluir todos os desafios. Ao final do Dojo, os alunos foram organizados em filas e submetidos novamente ao mesmo exercício de fixação aplicado antes do Dojo e mais uma vez tiveram 15 minutos para resolvê-lo. Terminado os exercícios, deu início a retrospectiva, mas dessa vez os alunos receberam quadros impressos em uma folha de oficio para que pudessem opinar sobre os tópicos sem que houvesse qualquer interferência. A figura abaixo ilustra o quadro utilizado.
Figura 2: Retrospectiva - Fonte: Produção do próprio autor.
5. Resultados
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
40
Como explicado nas seções anteriores, foi aplicado um exercício de fixação para mensurar o aprendizado dos alunos antes da aplicação do Dojo de programação e após o Dojo. Com base nas pontuações estipuladas, foi possível calcular uma média do desempenho dos alunos, 13 alunos realizaram as provas antes e depois do Dojo. O Quadro 5, apresenta os valores encontrados e suas respectivas médias. Quadro 5: Métricas Exercício Fixação
Métricas Total de Alunos Questões em Branco Somatório das Notas Média das Notas
Antes do Dojo 13 5 7 0,53
Depois do Dojo 13 1 16 1,23
Os dados acima foram obtidos por meio da correção dos exercícios, onde cada questão tem o valor 1 e cada erro ou questões em branco foram atribuídos o valor 0. O total de 13 alunos fizeram as provas antes e depois do Dojo ser aplicado. Antes do Dojo acontecer, o exercício foi aplicado e 5 questões foram deixadas em branco e o somatório das notas foi igual a 7, resultando em uma média de 0,53. Já após ter acontecido a sessões do Dojo, somente 1 questão foi deixada em branco e o somatório das notas foi igual a 16, resultando em uma média de 1,23. Como critério de avaliação, os alunos participaram da retrospectiva e avaliaram os seguintes tópicos: Abordagem, Tempo, Infraestrutura, Monitores e Problema. Essa avaliação foi mensurada a partir de respostas discursivas. A figura 2 exibida na seção 4.4 Execução da Fase 2 mostra como foi feita essa avaliação. Ainda como critério de avaliação, foi elaborado um questionário com perguntas discursivas. Essas perguntas são mostradas no Quadro 2, na seção 4.1.4 Avaliação Fase 1 e no Quadro 4, na seção 4.3.2 Avaliação Fase 2.
5. 1 Discussão de Resultados Com os resultados obtidos nos laboratórios, é possível observar que os dados são positivos e significativos quanto ao ensino-aprendizagem de programação por meio do Dojo. É interessante destacar que os feedbacks do professor da disciplina e dos alunos com relação a abordagem e aprendizado durante o laboratório, foram positivos. Os alunos se mostraram motivados com a abordagem utilizada e conseguiram aprender e trocar conhecimento com os outros alunos e aqueles que tinham dificuldades com o conteúdo proposto no Dojo, relatam que conseguiram tirar dúvidas e também contribuir com os outros colegas. Os alunos sugeriram que essa prática seja mais frequente em sala, pois acreditam que conseguiram contribuir uns com os outros. Baseado nos resultados desse experimento, pensamos em trabalhos futuros aplicar em outras disciplinas e obter uma quantidade maior de amostras em diferentes turmas de graduação. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
41
6. Referências BACHE, Emily. The Coding Dojo Handbook. A pratical guide to creating a space where good programmers can become great programmers. 2013. BOSSAVIT, L.; GAILLOT, E. (2005). The coder’s dojo – a different way to teach and learn programming. In Baumeister, H., Marchesi, M., and Holcombe, M., editors, Extreme Programming and Agile Processes in Software Engineering, volume 3556 of Lecture Notes in Computer Science, pages 1156–1158. Springer Berlin / Heidelberg. CARMO, Daniel H., BRAGANHOLO, Vanessa. Um estudo sobre o uso didático de DOJOs de programação. Instituto de Computação – Universidade Federal Fluminense (UFF) , Niterói ,RJ. DELGADO, C., TOLEDO, R.; BRAGANHOLO, V. (2012). Uso de Dojos no ensino superior de computação. Departamento da Computação - Universidade Federal do Rio de Janeiro (UFRJ). Instituto de Computação - Universidade Federal Fluminense (UFF). FILHO, João F. De Santanna., COUTO, Walmir., SAMPAIO, Isadora C. B., CHASE, Otavio A., ALMEIDA, José Felipe D., SOUSA, Decíola. (2010) Utilização de Práticas de Metodologias Ágeis No Ensino de Programação. Fortaleza: COBENGE. LUZ, R. (2013). A influência do Dojo de Programação no Ensino de Práticas Agéis. 67 f. Dissertação – Programa de Pós-graduação em Computação Aplicada, Universidade Tecnológica Federal do Paraná. Curitiba, 2013. ROSA, Daniel F. (2014). Desempenho dos Dojos de Programação no Aprendizado de Programação Orientada a Objetos. Departamento de Engenharia de Software – Universidade do Estado de Santa Catarina. SATO, D., CORBUCCI, H.; BRAVO, M. (2008). Coding dojo: An environment for learning and sharing agile practices. In Agile, 2008. AGILE ’08. Conference, pages 459 –464. SILVA, Thiago R.; LOPES, Ranyer; MEDEIROS, Taina J.; ARANHA, Eduardo; MEDEIROS, Handerson. (2015) Ensino-aprendizagem de programação: uma revisão sistemática da literatura. Revista Brasileira de Informática na Educação, Volume 23, Número1, 2015. SVAIGEN, Alisson R.; FEIJÓ, Ana L. M.; DROZINO, Beatriz; DIAS, Carolina H.A.; GENU, Felipe G.; PORTOLESE, Giuseppe; OKURO, Ivan; ALMEIDA, João L.R.; BINE, Lailla M. S.; DAVANTEL, Luiz H. C.; BRAGA, Marco A. K.; PAULINO, Marco A. D.; PAULA, Thaís R.; RITTER, Viviane T.; MARTIMIANO, Luciana A.F. Utilização da técnica “Coding Dojo” no auxílio ao ensino da disciplina de Fundamentos de Algoritmos. Departamento de Informática – Universidade Estadual de Maringá(UEM). Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
42
Anais do Encontro Regional de Computação e Sistemas de Informação
SISREMO – Sistema de elicitação de requisitos com base na técnica REMO Carlos Ricardo Bandeira de Souza1, Sérgio Roberto Costa Vieira1 1
Fundação Centro de Análise, Pesquisa e Inovação Tecnológica (FUCAPI). Av. Danilo Areosa, 381 – Distrito Industrial Manaus-AM, Brasil. ricardocarlos905@gmail.com, sergio.vieira@fucapi.br
Abstract. This paper presents a requirements elicitation system oriented by business process modeling. The system is called SISREMO and is based on the REMO technique (v3). The purpose of the system is to record requirements appropriate to the BPMN business process modeling context by reading the XPDL standard. An experimental study was done comparing the application of the REMO technique with and without SISREMO. The analysis of the responses of the post-study questionnaire, based on the TAM model, points the system as a useful technology for the elicitation of requirements based on business process modeling. Resumo. Este artigo apresenta um sistema de elicitação de requisitos orientado pela modelagem de processo de negócio. O sistema é denominado SISREMO e segue como base a técnica REMO (v3). O propósito do sistema é de registrar os requisitos adequados ao contexto da modelagem de processo de negócio BPMN através da leitura do padrão XPDL. Foi feito um estudo experimental comparando a aplicação da técnica REMO com e sem o SISREMO. A análise das respostas do questionário pós-estudo, baseado no Modelo TAM, aponta o sistema como uma tecnologia útil para a elicitação de requisitos baseados em modelagem de processo de negócio.
1. Introdução A elicitação de requisitos busca entender as necessidades do negócio do cliente e corresponde ao processo de levantamento de requisitos. Segundo Pfleeger (2004), um requisito é uma característica do sistema ou a descrição de algo que o sistema é capaz de realizar, para atingir os seus objetivos. Por meio das técnicas de modelagem de processos de negócio, é possível compreender melhor o ambiente no qual o sistema que vai ser construído funcionará, o que possibilita identificar requisitos correspondentes às reais necessidades do negócio (POHL e CHRIS, 2012). Nesse contexto a técnica de elicitação de requisitos denominada REMO (Requirements Elicitation Oriented by business processos Modeling) tem como objetivo a elicitação de requisitos a partir da modelagem de processos de negócios, utilizando a notação BPMN (Business Process Modeling Notation) (VIEIRA, 2012). Portanto, o SISREMO foi desenvolvido para apoiar a elicitação de requisitos baseada em modelos de processos BPMN usando como base a técnica REMO visando automatizar a extração dos requisitos a partir de modelos de processos de negócios, através da importação do modelo XPDL (XML Process Definition Language) no sistema para relacionar as heurísticas da técnica REMO (v3). Com o SISREMO o analista tem os requisitos em mãos e apenas realiza um processo de validação, confirmando se os requisitos estão adequados ao contexto de negócios ou Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
não. O SISREMO visa auxiliar o analista neste processo de análise de requisitos com base na técnica REMO (v3), sem precisar aplicar a técnica de forma manual. Através de pesquisa das ferramentas livres que trabalham com BPMN foi possível definir as ferramentas BPMS (Business Process Management Suite) que exportam os modelos BPMN para o modelo XPDL, como o BIZAGI 1, dessa maneira padronizando uma ferramenta auxiliar para o SISREMO. Para o desenvolvimento do SISREMO foi criada uma base de regras de leitura do arquivo XPDL em PL/PGSQL (Procedural Language for the POSTGRESQL). Após o desenvolvimento do SISREMO, foi realizado um estudo comparativo do sistema, onde se avaliou a extração dos requisitos sem a utilização do sistema e com utilização do sistema, permitindo realizar uma comparação de sua contribuição. Essa mesma avaliação verifica a aceitação do sistema em termos de facilidade de uso e utilidade através do Modelo de Aceitação de Tecnologia (TAM). O resultado da análise dos dados mostra indícios de que o sistema é fácil de usar e útil para minimizar o problema de pesquisa. O artigo está organizado da seguinte forma: a Seção 2 apresenta a relação do padrão BPMN com o padrão XPDL e apresenta a técnica REMO na sua última versão. A Seção 3 apresenta o SISREMO. A Seção 4 apresenta o resultado do estudo comparativo na utilização do SISREMO. Por fim, a Seção 5 descreve a conclusão e as considerações sobre o trabalho desenvolvido.
2. BPMN x XPDL Segundo Valle e Oliveira (2013), o BPMN oferece uma notação padrão para a modelagem de processos de negócios. A notação possui diversos elementos, sendo que os básicos são apenas quatro: atividades, eventos, gateways (símbolos de decisões) e conectores. Para Campos (2014), uma atividade pode ser uma tarefa ou um processo, um evento é algo que ocorre durante um processo de negócio, e os gateways são elementos de modelagem utilizados para controlar como a sequência do fluxo que interage dentro de um processo ao convergir e divergir, e a sequência de fluxo mostra a ordem em que as atividades serão executadas no processo. De acordo com Campos (2014), o BPMN possui a vantagem de evoluir para o padrão XPD 2.0, que é explicitamente uma linguagem de descrição de workflow, possibilitando a construção de um modelo em uma ferramenta do fornecedor A, exportar no padrão XPDL e importar em outra ferramenta, desde que as ferramentas tenham sido construídas conforme os padrões publicados. O XPDL é uma linguagem gerenciada pela WFMC (Workflow Management Coalition) que atualmente está na versão 2.2 podendo ser utilizado no formato de arquivo BPMN 2.0. Os modelos BPMN são representados em arquivos que utilizam uma sintaxe baseada na XML para especificar a declaração de um processo de negócio. Os principais elementos são: Package, Application, Workflow-Process, Activity, Transition, Participant, Datafield e Datatype (WFMC, 2012). A Tabela 1 apresenta a relação de um elemento de um modelo BPMN e a sua representação no padrão XPDL.
1
BIZAGI ferramenta de modelagem de processo de negócio
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
44
Elemento BPMN
Tabela 1 Relação do BPMN e XPDL
Mapeamento para o XPDL
Atividade
Na subseção 2.1 será apresentada uma técnica que utiliza os elementos BPMN para elicitação de requisitos de sistemas. Este trabalho tem como base as definições das heurísticas desta técnica.
2.1.
Técnica REMO
De acordo com Vieira (2012) a técnica REMO utiliza um conjunto de elementos da própria notação BPMN, permitindo a integração da modelagem de processos de negócios no desenvolvimento de software, especificamente durante a elicitação de requisitos possibilitando a extração dos requisitos a partir dos diagramas de processos de negócios. A técnica é apoiada por um conjunto de heurísticas que no decorrer dos experimentos foi evoluindo conforme os resultados da pesquisa até a sua versão final REMO (v3) e possui duas etapas para sua aplicação, onde a primeira etapa é a compreensão dos processos de negócios e a segunda etapa é a elicitação dos requisitos. A Figura 1 apresenta o modelo de aplicação da técnica REMO (VIEIRA, 2012).
Figura 1 Modelo de aplicação da técnica REMO
As heurísticas da técnica REMO são baseadas em ações encontradas nos diagramas de processos de negócios, que utilizam instruções para guiar o analista de sistemas durante a extração. A técnica REMO (v3) contempla o conjunto dos elementos básicos da notação BPMN, conforme são apresentadas na Tabela 1. Os requisitos são apresentados como: RF – Requisito Funcional, RNF– Requisitos Não Funcionais e RN – Regras de Negócios. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
45
Tabela 2 Destaque das heurísticas H1, H2 e H6.
BPMN
Heurística
Tipo Requisito
H1 – Atividades/Tarefas do Processo
RF e RNF
H2 – Condições de Decisão
RF e RN
H6 – Eventos Intermediários
RF e RN
Na seção 3 será apresentado o SISREMO um sistema que controla os requisitos elicitados aplicando a técnica REMO (v3).
3. SISREMO O Sistema de Elicitação de Requisitos Orientado pelo Modelo de Processo de Negócio (SISREMO) tem como finalidade de automatizar os processos de elicitação de requisitos aplicando a técnica REMO (v3). Com base no trabalho de VIEIRA (2012) e da exportação do modelo BPMN para o modelo XPDL 2.2, foi possível desenvolver um sistema que gerasse um documento de requisitos a partir da leitura do arquivo XPDL, viabilizando a relação das heurísticas da técnica REMO (v3) e registros de sugestões de requisitos de acordo com a modelagem de processo de negócio. O sistema foi implementado na linguagem PHP 5, utilizando um framework Java Script JGRID e JSON. A arquitetura baseou-se no padrão MVC (Model-View-Controller) que divide o sistema em camadas de lógicas, de negócios e de apresentação. Como servidor de aplicação foi utilizado o XAMP, o SGBD (Sistema Gerenciador de Bandco de Dados) POSTGRES SQL 9.2 e HTML na camada de apresentação.
Figura 2 Processos fundamentais do SISREMO
Na Figura 2 representa os processos fundamentais realizados com o SISREMO. Utilizando uma ferramenta BPMS os modelos BPMN são exportados para o modelo XPDL e este modelo é importado no SISREMO que o converte para o formato XML para armazenamento no banco de dados. Após o armazenamento do XML o sistema extrai os dados do XML através de funções PL/PGSQL que relaciona as tags com as Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
46
heurísticas da técnica REMO registrando sugestões de requisitos. E por fim o SISREMO possibilita gerar um relatório desses requis requisitos. A partir desses processos fundamentais o SISREMO foi desenvolvido para atender um cenário de uma fábrica de software onde os usuários deste sistema são os o gerentes de projetos que podem cadastrar os analistas de sistema e acompanhar os projetos relacionados ionados a esses analistas de sistema. Os analistas de sistema mantêm os modelos dos projetos, além dos requisitos extraídos através da importação do modelo BPMN no padrão XPDL e da aplicação das heurísticas heurí do REMO. O sistema possui três perfis de acesso. O primeiro é o perfil de administrador. Nesse perfil o usuário poderá cadastrar usuários, login e senha, e definir o perfil do usuário. O sistema disponibiliza dois perfis o de gerente e o de analista analista.. Para cada perfil é habilitado funcionalidades distintas. No cenário proposto o gerente de projetos mantêm os analistas e mantêm os projetos. O gerente acessa o sistema que disponibiliza os módulos de CADASTRAR ANALISTA e GERENCIAR PROJETOS. Para manter os analistas é necessário que os o mesmos possuam um login e senha no sistema com perfil de analista, o gerente informa nome e o usuário suário do analista para cadastrá-lo. cadastrá Na tela de LISTAGEM DE PROJETO o gerente mantém os projetos informando nome, descrição, e a data de inicio e fim do projeto. O gerente pode adicionar ou remover um analista do projeto conforme a Figura 3
Figura 3 Tela de cadastro do analista no projeto
O SISREMO provê a gerentes um rápido acesso às informações de cada projeto, seus analistas envolvidos e a documentação de requisitos do projeto em PDF conforme a Figura 4.
Figura 4 Documento de requisitos do Projeto em PDF
O analista recebe os modelos BPMN e os exporta para o modelo XPDL utilizando ut uma ferramenta BPMS como o BIZAGI. Para que o analista tenha acesso aos projetos destinado a ele, além de possuir um login com perfil analista, deve estar cadastro. Assim que acessa o sistema o analista pode acessar o módulo GERENCIAR REQUISITOS. REQUISITOS Neste módulo são apresentados às telas de LISTAGENS DE PROJETOS do analista e de MODELOS DO PROJETO. PROJETO Na tela de LISTAGEM DE PROJETOS são Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
47
apresentados os registros de projetos do analista que pode imprimir o documento de orientação às heurísticas da técnica REMO e também visualizar os modelos de outros analistas que estão no mesmo projeto. Na tela de LISTAGEM DOS MODELOS o analista poderá cadastrar os modelos e manter os requisitos. Na tela de CADASTRO DO MODELO DO PROJETO o analista deve informar o arquivo XPDL para importá importálo no sistema. Clicando em salvar o sistema gera os requisitos para manutenção conforme a Figura 5.
Figura 5 Tela de cadastro do modelo do projeto
Em seguida o analista deve deve manter os requisitos gerados no sistema. Na tela de MANTER REQUISITOS o analista pode editar duplicar, gerar documento de requisitos do modelo em PDF ou XLS, e adicionar as regras de negócio para cada requisito funcional ou não funcional. Clicando no requisito req e no botão EDITAR o analista poderá alterar o tipo do requisito, a heurística da técnica REMO, a descrição e a situação (VÁLIDO ou FALSO) na tela de MANTER REQUISITO conforme a Figura 6. 6
Figura 6 Tela de manter requisitos
Clicando no requisito funcional ou não funcional e no botão "REGRA REGRA DE NEGOCIO" NEGOCIO o analista poderá adicionar regras de negócios ao requisito selecionado. Na tela de regras de negócios são listados os requisitos do tipo RN (Regra de Negócio) e estes registros devem estar previamente viamente cadastrados no sistema conforme a Figura 7. 7
Figura 7 Tela de cadastro de regras de negócio
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
48
O analista tem a possibilidade de gerar um documento em PDF de requisitos dos modelos do projeto que está envolvido conforme a Figura 8.
Figura 8 Documento de Requisitos do Modelo em PDF
Na seção 4 será apresentada a avaliação do SISREMO comparando a aplicação da técnica REMO (v3) de forma manual e de forma automatizada utilizando o sistema.
4. Avaliação do SISREMO A avaliação foi realizada numa instituição de ensino superior, tendo como participantes 20 alunos de graduação na área de sistema de informação. Foram divididos dois grupos de 10 participantes, cada grupo recebeu um modelo de processo de negócio BPMN. Os modelos P1-Registrar Projeto Final e o modelo P2-Realizar Monitoria de Disciplina. Para as duas etapas da avaliação foram quantificadas o número de requisitos registrados pelos participantes, o número de requisitos excluídos, o número de requisitos válidos e o número de requisitos adequados à técnica REMO. Os requisitos foram excluídos pelo pesquisador de acordo com os critérios de exclusão adotados para esta avaliação. Os critérios são: requisitos duplicados com descrições duplicados e/ou requisitos com mesmo sentido; requisitos com a mesma descrição dos elementos do modelo; e requisitos inadequados ao modelo de processo de negócio. Com objetivo de alcançar um número de requisitos válidos de acordo com a técnica REMO para cada modelo BPMN e não para cada participante. Na primeira etapa os participantes tiveram que aplicar a técnica REMO sem a utilização do SISREMO. Para o estudo da avaliação foram utilizados os seguintes arquivos digitais: os modelos BPMN; o documento de orientação da técnica REMO (v3); e uma planilha eletrônica para registrar os requisitos elicitados. Na Tabela 3 apresenta o resultado quantitativo da primeira etapa de cada grupo de modelo. Tabela 3 Quantidade de requisitos da primeira etapa
A segunda etapa do estudo aplicou a técnica REMO (v3) utilizando o SISREMO. Nessa etapa os participantes tiveram que realizar tarefas no SISREMO. A princípio exportaram os modelos BPMN utilizando a ferramenta BIZAGI para o formato XPDL e em seguida acessaram o SISREMO. Seguindo o documento de passo a passo os participantes foram interagindo com o SISREMO, como: cadastrar o modelo, importar o arquivo XPDL, manter os requisitos e gerar o documento de requisito em PDF. Na Tabela 4 apresenta o resultado quantitativo da segunda etapa de cada grupo de modelo. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
49
Tabela 4 Quantidade de requisitos da segunda etapa
E durante a segunda etapa os participantes preencheram o formulário TAM (DAVIS, 1989) para capturar o nível de aceitação, verificando a percepção deles quanto à funcionalidade e quanto à facilidade de uso do SISREMO. A seguir na subseção 4.1 serão apresentados os resultados obtidos desta avaliação.
4.1.Resultados Os resultados do estudo de avaliação foram divididos da seguinte maneira: a verificação quantitativa de requisitos adequados da primeira etapa do estudo com a segunda etapa para viabilizar a contribuição de registro de requisitos com o SISREMO, e a apuração das respostas do formulário TAM para verificar o nível de aceitação do SISREMO.
Figura 9 Comparativo entre o manual e o SISREMO
Na Figura 9 apresenta o gráfico comparativo entre os requisitos adequados de cada etapa. Nela é possível perceber um aumento excepcional de requisitos adequados pelo SISREMO, indicando que o SISREMO contribuiu para registros de requisitos adequados de acordo com a técnica REMO. No formulário TAM os participantes tinham que responder quatro questões relacionadas à opinião sobre a percepção obtida com o uso do sistema. As respostas dos participantes tinham que estar dentro de uma escala de quatro opções: “sim em todas às vezes”; “sim em boa parte das vezes”; “não em boa parte das vezes” e “não em nenhuma das vezes”. A segunda amostra apresenta os dados quantitativos de repostas do formulário para identificar se o SISREMO é considerado uma tecnologia aceitável. As repostas marcadas foram contabilizadas por perguntas e depois levando em consideração os três grupos: utilidade percebida, facilidade de uso e a intenção de uso. Para o grupo de resposta em relação à percepção sobre utilidade percebida em que grau de concordância em que o SISREMO melhora o desempenho das tarefas, é possível verificar na Figura 10 que a maioria das respostas das quatro questões é “SIM EM BOA PARTE DAS VEZES” indicando que a utilização do SISREMO aumenta a desempenho em elicitar requisitos aplicando a técnica REMO (V3).
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
50
Figura 10 Contagem de resposta do grupo utilidade percebida
Para o grupo de resposta em relação à percepção sobre facilidade de uso em que grau apresenta a percepção quanto ao SISREMO em termos de facilidade de aprendizado e de operação, é possível verificar na Figura 11 que a maioria das respostas das quatro questões é “SIM EM BOA PARTE DAS VEZES” indicando que é fácil operar e manter os requisitos com o SISREMO possibilitando compreensão da aplicação da técnica REMO (V3).
Figura 11 Contagem de resposta do grupo facilidade de uso
Para o grupo de resposta em relação à percepção sobre a intenção de uso é possível verificar na Figura 12 que a maioria das respostas das quatro questões é “SIM EM BOA PARTE DAS VEZES” indicando que os recursos de navegação estão claros e que possui uma interface agradável.
Figura 12 Contagem de resposta do grupo intenção de uso
A seguir apresenta os resultados obtidos com este trabalho, sua relação com os objetivos propostos e as oportunidades que foram deixadas para os trabalhos futuros.
5. Conclusão O presente artigo apresentou o desenvolvimento de um sistema de informação para apoiar a aplicação da técnica REMO (v3). Importando arquivos no formato XML do padrão XPDL de modelagem de processo de negócios BPMN para o sistema gerando registros de sugestões de requisitos de acordo com o modelo de negócio. O resultado do estudo comparativo da aplicação da técnica REMO (v3) com a utilização do sistema e sem a utilização, mostrou que o sistema contribuiu para registros de requisitos adequados ao contexto do modelo de processos de negócio. Mas com o resultado das respostas preenchidas pelos participantes, mostra que o sistema tem Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
51
problemas de usabilidade, mas nada que se afaste ou prejudique o usuário a interagir com o sistema aplicando a técnica REMO (v3). O SISREMO pode contribuir com o processo de elicitação de requisitos permitindo que os analistas de sistemas e engenheiros de requisitos, documentem os modelos e seus requisitos gerados pelo padrão XPDL. Embora os requisitos sejam registrados automaticamente o SISREMO possibilita a edição desses requisitos para que estejam mais adequados ao contexto em que o sistema do cliente será desenvolvido. Portanto, o trabalho alcançou o objetivo principal, apoiando a técnica REMO (v3) com o sistema desenvolvido, aumentando o número de registro de requisitos adequados ao contexto do modelo de processo de negócio. Como trabalhos futuros, será utilizada uma nova base de regras para registrar requisitos mais adequados. Um estudo de usabilidade para identificar os problemas de interação do sistema para proporcionar a melhor experiência com o usuário. Um estudo de um padrão que possibilite a integração entre o SISREMO com os sistemas de gerenciamento de requisitos existentes no mercado. E importação de outros modelos, como o modelo de atividades do UML, no SISREMO oportunizando a evolução da técnica REMO (v3).
Referências CAMPOS, André L. N. Modelagem de processos com BPMN. 2. ed. Rio de Janeiro: Brasport, 2014. FRANCISCO, Rosemary et al. Traduzindo a Definição de Processo em XPDL para modelos em Redes de Petri. XXIX ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO, Salvador, BA, 2009. Disponível em: <
http://www.abepro.org.br/biblioteca/enegep2009_TN_STO_109_723_12948.pdf> Acessado em: 10 abr. 2016. PFLEEGER, S. L. (2004). Engenharia de software: teoria e prática. Identificando Requisitos. 2. Ed. São Paulo: Prentice Hall. Cap.4 p.111-138. POHL, Klaus; CHRIS, Rupp. Fundamentos da Engenharia de Requisitos – Um guia de estudo para o exame CPRE-FL Certified Professional for Requirements Engineering – Foundation Level, em conformidade com o padrão IREB. São Paulo: T&M, 2012. SOMMERVILLE, Ian. Engenharia de Software. 9 ed. São Paulo: Person Addison Wesley, - 2011. VIEIRA, Sérgio Roberto Costa. “REMO – Uma Técnica de Elicitação de Requisitos orientada pela Modelagem de Processos de Negócios”. 2012. .129 f. Dissertação (Mestrado em Informática) - Universidade Federal do Amazonas (UFAM), Programa de Pós-graduação em Informática (PPGI) – Manaus/Amazonas, 2012. VALLE, Rogério; OLIVEIRA, Saulo. Análise e modelagem de processo de negócio: foco na notação BPMN (Business Process Modeling Notation). 1. Ed. - 7. Reimpressão – São Paulo: Atlas, 2013. WFMC, Process Definition Interface - XML Process Definition Language, 2012. Disponível em:< http://www.xpdl.org/standards/xpdl-2.2/XPDL%202.2%20(201208-30).pdf>. Acessado em 13 mai. 2016.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
52
Anais do Encontro Regional de Computação e Sistemas de Informação
Sistema de Reconhecimento de Gestos Utilizando Smartwatches ´ Douglas Lima Dantas1,2 , Carlos Maur´ıcio Serodio Figueiredo1,2 1
Escola Superior de Tecnologia – Universidade do Estado do Amazonas (UEA) Manaus – AM – Brasil 2
Samsung Ocean Center (OCEAN) Manaus – AM – Brasil
{dld.eng,cfigueiredo}@uea.edu.br
Abstract. With the increase of the Internet of Things (IoT), a universe of possibilities for projects creation has emerged and promises to improve the life’s quality of the people. Wearable and pervasive computing comes providing the means for the development of new interaction forms. Within this field, the smartwatch market is growing, making wearable computing increasingly accessible to the general public. Gesticulation is a highly important form of non-verbal communication, being an indispensable part of human language along with speech. The contribution of this work is to present an interaction model using a smartwatch to recognize 7 gestures generated by the left upper arms. A data collection of volunteer was developed for training the classifier and after the tests it was concluded that the system can hit the f1-score of up to 85%. Resumo. Com o crescimento da Internet of Things (IoT), surgiu um universo de possibilidades de criac¸ao ˜ e projetos que promete melhorar a qualidade de vida das pessoas. A computac¸ao ˜ vestıvel ´ e pervasiva entra em cena provendo meios para o desenvolvimento de novas formas de interac¸ao. ˜ Dentro desse ramo, o mercado de smartwatches esta´ crescendo, tornando cada vez mais acess´ıvel a computac¸ao ao publico em geral. A gesticulac¸ao ˜ vestıvel ´ ´ ˜ e´ uma forma altamente importante de comunicac¸ao sendo parte indispensavel da ˜ nao-verbal, ˜ ´ linguagem humana, juntamente com a fala. A contribuic¸ao ˜ deste trabalho e´ apresentar um modelo de interac¸ao ˜ utilizando um smartwatch para reconhecer 7 gestos gerados pelo brac¸o. Coletou-se dados de voluntarios para treinamento ´ do classificador e apos ´ os testes concluiu-se que o sistema pode atingir o f1score de ate´ 85%.
˜ 1. Introduc¸ao A Internet of Things (IoT) [Xia et al. 2012] esta´ mudando o paradigma de como o ho˜ em mem relaciona-se com o mundo ao seu redor. Basicamente, IoT trata da interconexao ˜ muitas vezes equipados com microcontroladores, rede de objetos do quotidiano, que sao ˜ pervasiva, sens´ıvel ao contexto. Isto traz uma vasta gama de posprovendo computac¸ao sibilidades de desenvolvimento de novos projetos que prometem melhorar a qualidade de vida das pessoas. ´ disso, cresce largamente a necessidade de criac¸ao ˜ de novas ou melhoria Alem ˜ humano-computador, visto que a maioria dos paradas ja´ existentes formas de interac¸ao ˜ no que tange o avanc¸o dessa a´ rea [Hoy 2015]. digmas existentes apresentam limitac¸oes Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
´ costuma interagir utiliDesde que o mercado de smartphones se estabeleceu, o usuario ˜ zando a tela do celular e seus sensores, mas ainda ha´ uma maior necessidade de adaptac¸ao ˆ ´ do fato de o proposito ´ ˜ e esforc¸o de consciencia por parte das pessoas, alem original nao ser interagir com o ambiente. ´ de pulso com poder computacional e capaz de Um smartwatch e´ um relogio conectar-se sem fio a outros dispositivos, dispondo de sensores que podem coletar da´ [Cecchinato et al. 2015] e ha´ uma demanda de mercado significativa para dos do usuario ˜ pode tornar-se mais natural. eles [Wu et al. 2016]. Com uso de smartwatches, a interac¸ao ˜ uma forma altamente comum de comunicac¸ao ˜ nao-verbal, ˜ Gestos sao sendo parte ˜ essenciais para nossa vida intr´ınseca da linguagem humana, juntamente com a fala e sao social [McNeill 2000]. Sendo assim, um sistema que traduza gestos em comandos para ˜ muito mais simples e pervasiva, alem ´ da possisistemas computacionais torna a interac¸ao ˜ bilidade de complementar sistemas de reconhecimento de voz, visto que existem situac¸oes ´ do fator limitante de muitas vezes haver onde o uso da fala torna-se inconveniente, alem ru´ıdo no ambiente, dificultando o reconhecimento por voz. Nesses casos, o uso de gestos ´ poderia ser uma alternativa viavel. ˜ cientıfica ´ A principal contribuic¸ao deste artigo e´ apresentar uma nova forma de ˜ que se ajuste melhor ao conceito de IoT e computac¸ao ˜ pervasiva utilizando interac¸ao ˆ ´ um smartwatch e seu acelerometro, aplicando a tecnica de Machine Learning (ML) cha´ mada de K-Nearest-Neighbors e avaliando sua eficacia. Conforme os trabalhos relacionados pesquisados, muitas propostas sugerem o uso de dispositivos auxiliares como ˆ cameras, luvas e outros controles para reconhecimento de gestos [Starner et al. 1998] [Pandit et al. 2009] [Zhu and Sheng 2011] [Pylv¨an¨ainen 2005]. Embora o uso de mais ˜ e as possibilidades de gestos, temos a dificuldade da desensores aumentem a precisao ˆ ˜ Este trabapendencia de dispositivos prototipados ou que aumentam o custo da soluc¸ao. ˜ por gestos usando smartwatlho, em contrapartida, mostra a possibilidade de interac¸ao ches comercialmente dispon´ıveis, agregando funcionalidade a um dispositivo cada vez mais popular e de uso natural. ˜ ˜ 2 descreve o desenvolvimento, Este trabalho esta´ dividido em sec¸oes. A sec¸ao ´ ˜ aprearquitetura, funcionamento e testes realizados. Os resultados com suas analises sao ˜ 3. Posteriormente, na sec¸ao ˜ 4 mostra-se alguns trabalhos relacionados sentados na sec¸ao ˜ e considerac¸oes ˜ finais. e, por fim, ha´ os agradecimentos, conclusoes
2. Tecnologias Aplicadas Um conjunto de tecnologias nas a´ reas de Redes, Machine Learning (ML) e Sensores fo´ ˜ de dados conhecida ram utilizados, tais como o protocolo MQTT, a tecnica de classicac¸ao ˆ como K Nearest Neighbors e um smartwatch munido de acelerometro. 2.1. K-Nearest Neighbors (KNN) ´ ˜ e regressao ˜ [Altman 1992]. Ele O KNN e´ um metodo supervisionado de classificac¸ao classifica uma amostra como pertencente a um conjunto baseando-se em uma lista com uma quantidade de vetores n-dimensionais, cada um sendo uma amostra. Cada vetor tem ´ ˆ seu rotulo, que e´ a classe a` qual pertence. O algoritmo utiliza a distancia entre vetores para ´ ˜ a classe de encontrar os K vizinhos mais proximos do vetor de entrada, verificando entao cada um dos K vetores, sendo a classe mais encontrada considerada como a classe do ve˜ e dela depende tor de entrada. A constante K deve ser escolhida de acordo com a situac¸ao, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
54
˜ revocac¸ao ˜ e performance do classificador. E´ prefer´ıvel que K seja ´ımpar, pois a precisao, ˜ [Keller et al. 1985]. Foi utilipode diminuir as chances de empate em algumas situac¸oes ˜ em vista de sua eficacia. ´ zado neste artigo devido a sua simplicidade de implementac¸ao Neste artigo, usou-se o scikit-learn [Pedregosa et al. 2011], uma biblioteca de ML ´ um modulo ´ ˜ KNN. A metrica ´ ˆ em Python3 que contem de classificac¸ao de distancia utili´ zada no construtor ao instanciar a classe do modulo, chamada KNeighborsClassifier, foi a euclidiana. 2.2. MQ Telemetry Transport (MQTT) ˆ MQTT e´ um protocolo que segue a abordagem publish/subscribe de transferencia de ´ ˜ caracter´ısticas que o tormensagens. Ele e´ leve, aberto e de facil implementac¸ao, ˜ com altas restric¸oes ˜ de alimentac¸ao, ˜ estabilidade de conexao ˜ nam ideal para situac¸oes ˜ de IoT [Banks and Gupta 2015]. Ele pode funcionar utilizando e banda, como aplicac¸oes TCP ou Websockets [Fette and Melnikov 2011] [Banks and Gupta 2015]. Pode trabalhar ˆ n´ıveis de servic¸o [Banks and Gupta 2015], sendo que escolheu-se neste artigo em tres ´ ˜ ha´ confirmac¸ao ˜ de recebimento, o mais basico, onde a mensagem e´ publicada e nao assemelhando-se ao UDP. Isso se deve ao fato de a probabilidade de perda de pacotes ˜ com o classificador foram coser muito baixa, uma vez que o smartwatch e a aplicac¸ao nectados, nesse teste, a` mesma rede WiFi, dispensando o uso de Internet. Por essas funcionalidades, o MQTT foi escolhido para ser utilizado neste projeto. ˜ do smartwatch foi utilizado o framework Paho [ECLIPSE Foundation 2014] Na aplicac¸ao ´ de utilizar. para Javascript, por ser leve, com apenas 29,9kB, e facil ˆ 2.3. Acelerometro ˆ ˜ nao-gravitacional. ˜ Um acelerometro e´ um dispositivo que mede acelerac¸ao Se um objeto estiver em repouso ou em uma certa velocidade, e ele sair do repouso ou sua velocidade ˜ A acelerac¸ao ˜ e´ uma grandeza vetorial, isto e´ , tem variar, o sensor mede essa variac¸ao. ´ ˜ tendo no maximo ´ ˆ componentes, um em cada eixo (x, y, z) sentido, modulo e direc¸ao, tres ˜ gravitacional influencia no acelerometro, ˆ [Hidayat et al. 2016]. O vetor da acelerac¸ao por ˜ com filtro de gravidade padrao ˜ do smartwatch, que deconsidera isso utilizou-se a opc¸ao ˆ ˜ a gravidade. O acelerometro utilizado neste artigo e´ de 3 eixos, e com as acelerac¸oes ˜ e diferentes gestos, para capturadas por ele foi poss´ıvel capturar valores de acelerac¸ao ˜ fossem encontrados na classificac¸ao. ˜ que padroes
˜ 3. Metodologia e Implementac¸ao ˜ da eficacia ´ do KNN como classiToda uma arquitetura foi desenvolvida para a avaliac¸ao ´ disso, uma estrategia ´ ficador de gestos. Alem de testes foi trac¸ada para que se obtivesse ´ ´ gestos dados relevantes e confiaveis relacionados ao objeto de estudo. O sistema obtem gerados pelo brac¸o e classifica-os. A Figura 1 apresenta imagens ilustrativas dos 7 gestos reconhec´ıveis, a` saber: “esquerda”, “direita”, “para cima”, “para baixo”, “para frente”, ˜ e “sim”. “nao” ˜ geral 3.1. Visao ˜ geral da arquitetura do sistema, composto de um broker A Figura 2 apresenta uma visao ˜ e um proMQTT, um smartwatch com um aplicativo para envio dos dados de acelerac¸ao ´ grama de apoio no computador que pode tanto treinar o classificador quanto executa-lo, ˜ dependendo do modo de operac¸ao. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
55
(a) Esquerda
(e) Para frente
(b) Direita
(c) Para cima
(f) Nao ˜
(d) Para baixo
(g) Sim
ˆ Figura 1. Sequencia de figuras ilustrando os 7 gestos reconhec´ıveis pelo classificador desenvolvido. ˜ Websockets, num Primeiramente, utilizou-se o broker MQTT Mosca 2.2.0, padrao notebook utilizando o processador Intel i7, com 16 GB de RAM DDR3. O seu papel ˜ de mensagens entre os dois clientes MQTT, a` e´ gerenciar as assinaturas e transmissoes ´ ´ esta´ no mesmo saber, o relogio e o programa de reconhecimento de gestos, que tambem computador. Logo depois, desenvolveu-se um aplicativo para o smartwatch em HTML5. O dis˜ de um acelerometro, ˆ positivo utilizado fora o Samsung Gear S2, que dispoe essencial para os experimentos deste artigo. E´ importante ressaltar que aplicou-se um filtro para eliminar ´ ˆ ´ ao maximo a interferencia da gravidade. Utilizando-se testes pessoais, onde um voluntario ´ ˜ dos gesutilizando relogio simulou uma palestra, verificou-se que a norma da acelerac¸ao ˜ relativas ao discurso) dificilmente passam tos triviais de um ser humano (gesticulac¸oes 2 de 9m/s . Assim, definiu-se que o in´ıcio da captura de um gesto seria quando a norma ˜ e´ capturado numa frequencia ˆ ultrapassasse esse limiar. O gesto entao de 26Hz e durante ´ o per´ıodo de 1s, isto e´ , 26 capturas por gesto, e e´ publicado em formato JSON num topico MQTT. Posteriormente, desenvolveu-se um programa em Python3 com a finalidade de re´ ˆ ´ ceber os gestos do relogio e escreve-lo em arquivo com valores separados por vırgulas ˜ (CSV), para posterior uso em treinamentos e testes. Ele recebe os vetores de acelerac¸ao e, ao receber 26 unidades, adiciona uma linha no fim do artigo. A estrutura do arquivo gerado e´ apresentada na Figura 3. Cada linha representa uma amostra de gesto, onde tem-se Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
56
Figura 2. Visao ˜ geral do sistema de gerac¸ao ˜ e coleta de dados para treinamento, teste e ˜ classificac¸ao. ˜ mais o numero ´ todas as coordenadas x, y e z dos 26 vetores de acelerac¸ao correspondente ao gesto.
Figura 3. Estrutura do arquivo CSV. ´ em Python3, para receber os gestos, Feito isso, criou-se um programa, tambem ´ ´ ´ processa-los, classifica-los e executa-los, fazendo uso dos dados dispon´ıveis no arquivo ´ o classificador que e´ objeto de CSV gerado pelo programa anterior. E´ ele que contem estudo neste artigo. Ambos os programas feitos em Python3 ficaram no mesmo notebook ´ onde fora instalado o broker. Seu funcionamento basico esta´ descrito na Figura 4. Existem ˜ A principal fica sempre verificando se recebeu mensagens duas threads de execuc¸ao. ˜ e o enfileira. Ja´ a com gestos e, ao receber, alimenta o vetor ate´ completar 26 posic¸oes ´ um lac¸o infinito que verifica se existem vetores de gestos na fila, segunda thread contem ˜ associadas a eles. processando-os, classificando-os e executando ac¸oes ˜ da eficacia ´ 3.2. Treinamento, Avaliac¸ao e tuning do classificador ´ ´ Selecionou-se 15 voluntarios com o perfil apresentado no grafico da Figura 5, para obter amostras de gestos para treinamento e teste. Para cada um dos 7 gestos que deseja-se ´ detectar, cada um dos voluntarios realizou 5 movimentos correspondentes ao mesmo, ´ gerando um total de 35 amostras por voluntario, e 525 amostras ao todo. Pediu-se a ˆ conjuntos eles que fizessem os gestos na velocidade que fosse-lhes mais natural. Tres de testes foram realizados tanto para avaliar a qualidade do classificador em reconhecer ˆ gestos quanto para ajuste dos parametros mais o´ timos de tuning para o classificador. ˜ de dados poderia No primeiro teste, verificou-se o impacto que a normalizac¸ao ´ ˜ fornecido pelo scicausar na eficacia do classificador. Assim, adotando o valor padrao kit learn de 5 para K, executou-se 10 vezes o programa utilizando as 525 amostras sem ˜ e outras 10 com normalizac¸ao ˜ aplicada, com o fim de obter f1-scores. Essa normalizac¸ao ´ ´ metrica foi escolhida por ser um indicador u´ nico da eficacia de um classificador, sendo Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
57
Figura 4. Fluxograma descrevendo o algoritmo do programa de reconhecimento de gestos.
´ e sexo dos voluntarios. ´ Figura 5. Perfil de faixa etaria
´ ˆ ˜ que e´ a frac¸ao ˜ de elementos recuperados que sao ˜ a media harmonica entre a precisao, ˜ que e´ a frac¸ao ˜ de elementos relevantes que sao ˜ recuperados. As relevantes, e a revocac¸ao, ˜ e a janela de teste foi de 30%, amostras foram distribu´ıdas aleatoriamente a cada execuc¸ao, isto e´ , das 525 amostras, 70% foram para treino e 30% delas para teste do classificador. ˜ de 10 execuc¸oes ˜ cada, obteve-se as medias ´ ´ Para ambas as sec¸oes aritmeticas e os desvios˜ populacionais. padroes ˜ aplicada, verificou-se o comportamento do Em seguida, com a normalizac¸ao ˜ da variac¸ao ˜ da constante K. Variou-se de 1 ate´ 13, somente utif1-score em func¸ao ´ lizando numeros ´ımpares, para diminuir riscos de empates na contagem dos vizinhos ´ ˜ do valor da constante, executou-se o programa 10 mais proximos. Para cada variac¸ao vezes, sempre tomando como matriz de treinamento 70% das amostras escolhidas alea´ ´ ˜ para cada valor de toriamente, obtendo a media aritmetica do f1-score e o desvio padrao constante. ˜ da variac¸ao ˜ do Por fim, avaliou-se o comportamento do f1-score em func¸ao ´ numero de amostras. A constante K utilizada foi a que demonstrou melhor desempe˜ foi aplicada. Os numeros ´ nho no teste anterior, e a normalizac¸ao de amostras consideManaus, 25 a 27 de maio de 2017 ISSN 2238-5096
58
˜ variou se 105 a 525, com intervalos de 105 unidades. Para cada ras em cada variac¸ao ˜ executou-se 10 vezes, obteve-se a media ´ ˜ A janela de treino variac¸ao, e desvio padrao. ´ foi 70%-30%, isto e´ , para cada variac¸ao ˜ amostral 70% das amostras sao ˜ e teste tambem ˜ divididas entre para treinamento e 30% para testes, sendo que sempre as amostras sao estes dois conjuntos aleatoriamente.
´ 4. Resultados e Analise ˜ traria ao classificador. Uma Primeiramente, verificou-se o impacto que a normalizac¸ao ˆ com velocidades diferentes, vez que pessoas podem, ao executar o mesmo gesto, faze-lo isso pode fazer com que gestos semelhantes estejam distantes no espac¸o em virtude de ´ ˆ ˜ a magnitude. seus modulos, num sistema como o KNN onde a distancia e´ vital, e nao ˜ pode ser aplicada como forma de aumentar o f1-score do sistema. Assim, a normalizac¸ao ´ aplicar-se a tecnica, ´ Apos o f1-score do classificador para K=5 foi de aproximadamente 81,40%, enquanto antes era de 71,20%. Logo depois, ao variar-se o valor de K notou-se que o f1-score diminuiu significativamente ja´ a partir do valor 5. O valor de K que apresentou melhores resultados foi 3, ´ como se pode ver no grafico da Figura 6(a). ´ ´ De acordo com o grafico da Figura 6(b) e´ poss´ıvel notar que variando o numero de amostras ate´ 315 o f1-score aumenta, fazendo com que o classificador fique mais eficiente. ´ isso, o sistema se estabiliza e ja´ nao ˜ ha´ um aumento de eficacia. ´ Apos ´ A Tabela 1 apresenta testes separados por gestos para K=3 e com a tecnica da ˜ aplicada, que foram as condic¸oes ˜ onde verificou-se a maior precisao, ˜ com normalizac¸ao ˜ da explicado nos resultados anteriores. Percebe-se, juntamente com a matriz de confusao Figura 7, onde quanto mais elementos houver na diagonal maior e´ o acerto, que os gestos ˜ “esquerda” e “direita” foram os mais bem detectados, tendo o primeiro uma leve confusao com “para cima”, enquanto o segundo confundiu-se levemente com “esquerda”. Ja´ outros ˜ como e´ o caso de “para frente”, que algumas vezes apresentaram maior grau de confusao, detectou-se como sendo “para baixo”, “para cima” e “sim”. Esse efeito parece estar relacionado com o grau de semelhanc¸a entre os gestos, fator que pode aumentar ou diminuir ˜ dos conjuntos de pontos no espac¸o vetorial dos gestos. a sobreposic¸ao
(a) Variac¸ao ˜ da constante K
(b) Variac¸ao ˜ do numero ´ de amostras para K=3
Figura 6. Graficos ´ que apresentam o F1-score em func¸ao ˜ do numero ´ de amostras consi˜ da constante K, respectivamente. deradas no teste e da variac¸ao Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
59
No do gesto 0 1 2 3 4 5 6 Media/Total ´
Gesto Esquerda Direita Para Cima Para Baixo Para Frente Nao ˜ Sim
˜ Precisao 73% 73% 62% 54% 62% 100% 76% 72%
˜ Revocac¸ao 96% 89% 65% 64% 52% 67% 65% 70%
F1-score 83% 80% 64% 58% 57% 80% 70% 70%
No de amos. esp. 23 18 23 22 25 27 20 158
Tabela 1. Relatorio ´ detalhado por gestos para K=3 e com normalizac¸ao. ˜
˜ gerada para K=3 com normalizac¸ao ˜ classificada, utilizando Figura 7. Matriz de confusao ˜ que gerou os dados da Tabela 1. 525 amostras, resultado da mesma execuc¸ao
5. Trabalhos Relacionados Considerou-se como projetos relacionados aqueles que tem como objetivo interpretar ´ ou traduzi-lo em algum comando computacional, sendo um gesto manual e classifica-lo ´ ou nao. ˜ [Porzi et al. 2013] propoe ˜ um trabalho que reconhec¸a gestos utilizando vestıvel um smartwatch para captura de gestos e um smartphone para processamento, utilizando Global Alignment Kernel (GAK), com o fim de auxiliar deficientes visuais. No entanto, ˜ na tela do smartwatch para iniciar a capesse sistema exige que se pressione um botao ´ precise tura de gestos, enquanto este trabalho detecta o in´ıcio do gesto sem que o usuario deixar isso expl´ıcito. ˜ um par de luvas para reconhecimento de gestos manu[Pandit et al. 2009] propoe ˆ ˜ sem fio, usando um equipamento e´ vestıvel. ´ ais equipado com acelerometros e conexao ˜ e´ interessante para uso No entanto, o uso de luvas pode apresentar desconfortos e nao ´ ´ do fato de o equipamento ser relativamente grande para uma cotidiano e contınuo, alem luva. ˜ um sistema que reconhec¸a atividades O modelo de [Zhu and Sheng 2011] propoe ˆ ˆ do quotidiano e gestos utilizando um robo-assistente com uma camera e 3 sensores: um ´ no dedo, na cintura e proximo ao calcanhar. O projeto e´ voltado para pessoas idosas. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
60
˜ consistem na necessidade da camera ˆ No entanto, suas limitac¸oes e no uso dos sensores, ˜ sao ˜ comuns. Algo interessante ao ser notado e´ o fato de o relogio ´ que nao de pulso ser ˜ teriam resistencia ˆ algo aceito por pessoas de qualquer idade, e os idosos nao em utilizar ´ de menor possibilidade de um smartwatch, visto que culturalmente e´ -lhe natural, alem esquecer de usar o objeto por estar no seu pulso. ˆ Por fim, [Pylv¨an¨ainen 2005] utiliza um celular com acelerometro para reconhecer ´ HMM. Utilizar smartphones como forma de interac¸ao ˜ e´ algo gestos, aplicando tambem ´ ´ considera estrategico, visto a quantidade de pessoas que os tem. No entanto, o usuario ˜ e voz, mas ao utilizar como reconhecedor natural interagir por meio de sua tela, botoes ˜ de o usuario ´ ter que segura-lo, ´ de gestos, ha´ a limitac¸ao enquanto que um smartwatch o ˜ livre, algo que e´ claramente vantajoso. deixa com a mao ˜ entre as principais caracter´ısticas dos trabaA Tabela 5 apresenta uma comparac¸ao ˜ foi encontrado um projeto que utilize um smartwatch lhos relacionados. Observe que nao para o fim de reconhecimento de gestos. Trabalho
Classificador
Dispositivo
Vestıvel ´
[Porzi et al. 2013]
GAK
Smartwatch
Sim
[Pandit et al. 2009]
Nao ˜ tem
[Zhu and Sheng 2011] [Pylv¨an¨ainen 2005]
HMM HMM
Luva com sensor iMEMS 4 sensores Smartphone
Sim Sim Nao ˜
Precisao ˜ Entre 88% e 98% Nao ˜ se aplica 98,3% 90%
Tabela 2. Comparativo entre os principais trabalhos relacionados.
˜ 6. Conclusao ˜ com o ambiente utilizando-se A arquitetura apresentada neste trabalho permite a interac¸ao ˆ um smartwatch com acelerometro e a abordagem de ML conhecida como KNN. O projeto ˜ dos gestos definidos conforme sua base de treinamento se mostrou eficaz na detecc¸ao ´ ˜ e escolha da constante k aumentou ate´ 315 amostras e tecnicas como a normalizac¸ao foram aplicadas, atingindo um f1-score de ate´ 85%. ˆ Algumas deficiencias surgiram devido a` semelhanc¸a entre alguns gestos e a natuˆ ˜ de velocidade. reza do acelerometro, que fornece apenas dados relacionados a` s variac¸oes ˜ ficaram evidentes na matriz de confusao ˜ apresentada na Figura 7. AdiEssas limitac¸oes ˜ e´ capaz de capturar detalhes cionalmente, sabe-se que o uso apenas de smartwatches nao ´ ˜ basicas ´ de gestos que envolvem movimentos dos dedos. No entanto, varias interac¸oes mostraram-se poss´ıveis. ´ Como trabalho futuro pretende-se testar outras tecnicas de ML como alternativas ˆ ao KNN, utilizar o acelerometro sem filtro de gravidade para verificar qual o impacto que ´ ´ de associa-lo ´ ´ isso causaria na eficacia, alem com outros sensores, tais como altımetro, ´ ´ ˆ giroscopio e compasso, bem avaliar como a escolha da metrica de distancia afeta o desempenho. Espera-se que com isso o universo de gestos diferentes reconhec´ıveis e a ˜ aumentem, tornando a soluc¸ao ˜ mais eficiente e com menor consumo de recursos precisao computacionais. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
61
Agradecimentos Os autores agradecem a Universidade do Estado do Amazonas pelo apoio. Os resultados ˜ foram obtidos por meio de atividades de Pesquisa e Deapresentados nessa publicac¸ao ˆ senvolvimento do projeto SAMSUNG OCEAN, patrocinado pela Samsung Eletronica da o ˆ Amazonia LTDA., apoiado pela SUFRAMA sob os termos da Lei Federal N 8.248/91.
ˆ Referencias Altman, N. S. (1992). An introduction to kernel and nearest-neighbor nonparametric regression. The American Statistician, 46(3):175–185. Banks, A. and Gupta, R. (2015). Mqtt version 3.1.1 plus errata 01. http://docs.oasis-open.org/ mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html. (Acessado em 03/24/2017). Cecchinato, M. E., Cox, A. L., and Bird, J. (2015). Smartwatches: the good, the bad and the ugly? In Proceedings of the 33rd Annual ACM Conference extended abstracts on human factors in computing systems, pages 2133–2138. ACM. ECLIPSE Foundation (2014). Paho - open source messaging for m2m. https://www.eclipse.org/ paho/. (Acessado em 03/24/2017). Fette, I. and Melnikov, A. (2011). The websocket protocol. RFC 6455, RFC Editor. http://www. rfc-editor.org/rfc/rfc6455.txt. Hidayat, A. A., Wasista, S., and Pratiwi, Y. P. (2016). Development of fighting genre game(boxing)using an accelerometer sensor. In 2016 International Conference on Knowledge Creation and Intelligent Computing (KCIC), pages 201–206. Hoy, M. B. (2015). The “internet of things”: What it is and what it means for libraries. Medical reference services quarterly, 34(3):353–358. Keller, J. M., Gray, M. R., and Givens, J. A. (1985). A fuzzy k-nearest neighbor algorithm. IEEE transactions on systems, man, and cybernetics, (4):580–585. McNeill, D. (2000). Language and Gesture. Language Culture and Cognition. Cambridge University Press. Pandit, A., Dand, D., Mehta, S., Sabesan, S., and Daftery, A. (2009). A simple wearable hand gesture recognition device using imems. In Soft Computing and Pattern Recognition, 2009. SOCPAR’09. International Conference of, pages 592–597. IEEE. Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., et al. (2011). Scikit-learn: Machine learning in python. Journal of Machine Learning Research, 12(Oct):2825–2830. Porzi, L., Messelodi, S., Modena, C. M., and Ricci, E. (2013). A smart watch-based gesture recognition system for assisting people with visual impairments. In Proceedings of the 3rd ACM International Workshop on Interactive Multimedia on Mobile &#38; Portable Devices, IMMPD ’13, pages 19–24, New York, NY, USA. ACM. Pylv¨an¨ainen, T. (2005). Accelerometer based gesture recognition using continuous hmms. In Iberian Conference on Pattern Recognition and Image Analysis, pages 639–646. Springer. Starner, T., Weaver, J., and Pentland, A. (1998). Real-time american sign language recognition using desk and wearable computer based video. IEEE Transactions on Pattern Analysis and Machine Intelligence, 20(12):1371–1375. Wu, L.-H., Wu, L.-C., and Chang, S.-C. (2016). Exploring consumers’ intention to accept smartwatch. Computers in Human Behavior, 64:383–392. Xia, F., Yang, L. T., Wang, L., and Vinel, A. (2012). Internet of things. International Journal of Communication Systems, 25(9):1101. Zhu, C. and Sheng, W. (2011). Wearable sensor-based hand gesture and daily activity recognition for robotassisted living. IEEE Transactions on Systems, Man, and Cybernetics-Part A: Systems and Humans, 41(3):569–573.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
62
Anais do Encontro Regional de Computação e Sistemas de Informação
Sistema de Navegac¸ao ˜ para Pedestres baseado em Sensores Inerciais e GPS de Smartphones Yasmin A. Enr´ıquez1 , Leonardo S. Mendes2 1
Laboratorio ´ de Redes de Comunicac¸oes ˜ – Universidade Estadual de Campinas (Unicamp) Caixa Postal 13083-852 – Campinas, SP – Brasil 2
Laboratorio ´ de Redes de Comunicac¸oes ˜ Universidade Estadual de Campinas (Unicamp) – Campinas, SP – Brasil y162621@dac.unicamp.br, lmendes@decom.fee.unicamp.br
Abstract. In this work one uses acceleration, terrestrial magnetic field measurements and global geographical localization present in modern cellular phones to construct a local coordinated geographical referencing system that offer more precise measures than those found in the GPS system of the cellular phones. This model uses the measurement and correction techniques offered by smart phones in order to, through and agile local processing, obtain a more refined positioning on the local level. The performance of the proposed algorithm was evaluated in the tracking of pedestrian trajectories in outdoor areas. Resumo. Neste trabalho usa-se recursos de medic¸oes ˜ de acelerometros, ˆ de campo magn´etico terrestre e de geoposicionamento global, presentes em celulares modernos para construir-se um sistema de georeferenciamento de coordenadas locais que apresente precisao ˜ de medidas melhor do que aquelas oferecidas atrav´es do GPS dos celulares. Este modelo utiliza-se das t´ecnicas de medida e ajustes oferecidas pelos celulares para, atrav´es de um processamento agil ´ local, obter um posicionamento mais refinado com relac¸ao ˜ ao posicionamento coordenado local. O desempenho do algoritmo proposto foi avaliado no seguimento de trajetorias ´ de pedestres em a´ reas exteriores.
1. Introduc¸ao ˜ Hoje em dia, a navegac¸ao ˜ e´ uma importante aplicac¸ao ˜ em telefones celulares. Em tese o sistema de posicionamento global permite determinar a posic¸ao ˜ do observador em qualquer lugar sobre a superf´ıcie da terra vinte e quatro horas por dia. Por´em, seu desempenho depende em grande parte da qualidade do sinal de telefonia em cada regi˜ao. Como o celular usa a energia das ondas de r´adio para obter os parˆametros de navegac¸ao, ˜ o sinal e´ altamente propenso a interferˆencia. Al´em disso, o sinal tamb´em pode ficar obstru´ıdo devido a obst´aculos naturais ou articificais, como montanhas e edif´ıcios altos. A precis˜ao oficial para receptores GPS de alta qualidade e´ de 3m, contudo a precis˜ao real atingida pelos usu´arios pode variar de 1m a 20 m, o que limita seu uso em aplicac¸oes ˜ cr´ıticas, tais como rastreamento de pedestres [Wu et al. 2015]. Por causa da baixa precis˜ao do GPS, alguns autores tˆem considerado soluc¸oes ˜ de navegac¸ao ˜ inercial baseadas em smartphones para fornecer rastreamento de pedestres [Qian et al. 2013, Kang and Han 2015, Park et al. 2015]. A navegac¸ao ˜ inercial possui uma s´erie de vantagens: opera continuamente, fornece sa´ıda de alta largura de banda Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
em pelo menos 50 Hz e exibe baixo ru´ıdo em curtas distˆancias. Esta t´ecnica fornece medic¸oes ˜ eficazes de orientac¸ao, ˜ taxa angular e acelerac¸ao, ˜ bem como de posic¸ao ˜ e velocidade [Groves 2007]. Por´em, a precis˜ao da soluc¸ao ˜ de navegac¸ao ˜ inercial degrada-se com a distˆancia do ponto de referˆencia inicial. Desta forma, a integrac¸ao ˜ de GPS com sistemas inerciais pode fornecer uma soluc¸ao ˜ interessante para gerar um mapa de rastreamento de caminho com maior precis˜ao que a obtida com esses sistemas separados. Este trabalho avalia o rastreamento de celulares em a´ reas exteriores atrav´es de um sistema que integra o receptor GPS e os sensores inerciais de dispositivos moveis. ´ Para tal, primeiro propoe-se ˜ um algoritmo de gerac¸ao ˜ de coordenadas locais que emprega o acelerometro ˆ e o magnetometro ˆ para retratar a trajetoria ´ do usu´ario. Na sequˆencia, detalha-se a gerac¸ao ˜ de coordenadas globais usando-se o receptor GPS para descrever a mesma trajetoria ´ do usu´ario. Finalmente, um algoritmo ajusta as coordenadas locais a` s globais, com o objetivo de obter coordenadas melhoradas do posicionamento do pedestre.
2. Gerac¸ao ˜ de Coordenadas Locais Inicialmente, os dados de sensores inerciais incorporados em smartphones s˜ao usados para fazer o rastreamento de pedestres. S˜ao abordadas as partes principais do Pedestrian Dead Reckoning (c´alculo da posic¸ao ˜ atual do pedestre baseado em sua posic¸ao ˜ em algum tempo passado), atrav´es do c´alculo de distˆancia e da estimativa de orientac¸ao. ˜ Para evitar a acumulac¸ao ˜ de erros de c´alculo e´ necess´aria a contagem dos passos individuais como m´etrica de curta distˆancia [Rai et al. 2012]. No c´alculo da distˆancia total em movimento para frente de uma pessoa e´ necess´ario estimar-se o comprimento de cada passo [Zhuang et al. 2013]. Dos diferentes modelos existentes para determinar o comprimento do passo individual utilizamos aqui o m´etodo de [Scarlett 2007]. Para a estimativa de orientac¸ao, ˜ magnetometros ˆ e giroscopios ´ podem ser utilizados [Tian et al. 2015]. Giroscopios ´ fornecem orientac¸ao ˜ relativa e magnetometros ˆ provˆeem orientac¸ao ˜ absoluta precisa. Esta abordagem tira proveito do magnetometro ˆ do smartphone para deduzir a orientac¸ao ˜ do pedestre. Em resumo, o algoritmo de gerac¸ao ˜ de coordenadas locais determina a posic¸ao ˜ do pedestre usando o acelerometro ˆ e o magnetometro ˆ do celular e repetindo quatro etapas de forma c´ıclica; detecc¸ao ˜ de passo, c´alculo de comprimento de passo, estimativa de orientac¸ao ˜ e atualizac¸ao ˜ de localizac¸ao. ˜ 2.1. Detecc¸ao ˜ de Passo Enquanto as pessoas caminham, a acelerac¸ao ˜ vertical varia periodicamente devido ao movimento [Yang et al. 2014]. Este sinal periodico ´ pode ser utilizado para detectar os passos dos pedestres. Tamb´em, e´ poss´ıvel identificar passos baseados nas medic¸oes ˜ de velocidade angular de giroscopios, ´ dado que quando o p´e est´a na terra (fase de apoio) as velocidades linear e angular devem ser zero [Feliz Alonso et al. 2009]. Alguns autores consideram sensores de campo magn´etico para classificar passos, por´em os resultados obtidos n˜ao superam a precis˜ao da detecc¸ao ˜ de passo baseada em acelerometros ˆ ou giroscopios. ´ Quando um usu´ario caminha com um smartphone sustentado em suas m˜aos, os sinais dos trˆes eixos do acelerometro ˆ utilizam o modo de oscilac¸ao ˜ aproximadamente bimodal com interferˆencias que surgem a partir de perturbac¸oes ˜ da m˜ao[Groves 2007]. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
64
Ao contr´ario das abordagens que utilizam acelerac¸ao ˜ vertical para detetar os passos, este trabalho usa a magnitude da acelerac¸ao ˜ total de forma que o algoritmo seja adapt´avel a diferentes padroes ˜ de caminhada. A magnitude da acelerac¸ao ˜ pode ser expressa como (1), onde axi , ayi , azi s˜ao as acelerac¸oes ˜ nos eixos x, y e z no tempo i [Jimenez et al. 2009, Qian et al. 2013, Zhuang et al. 2013]. ai =
q
a2xi + a2yi + a2zi
(1)
Inicialmente, picos e vales na magnitude da acelerac¸ao ˜ devem ser identificados (ver Figura 1a). Na observac¸ao ˜ de uma amostra ai , considera-se pico se e´ maior que as amostras anterior e seguinte, ou seja, ai−1 < ai > ai+1 . De forma semelhante, um vale e´ detectado se ai−1 > ai < ai+1 . Para reduzir a influˆencia dos erros de sensores duas restric¸oes ˜ s˜ao implementadas, a primeira e´ uma filtragem de magnitude e a segunda e´ uma filtragem temporal [Yang et al. 2014]. Diferente de trabalhos como [Pratama et al. 2012], que computam os limites superior e inferior de magnitude adicionando uma constante ao u´ ltimo vale e subtraindo essa constante do u´ ltimo pico, respectivamente, nesta abordagem calculam-se os limites de magnitude dinamicamente, baseado em estat´ısticas da acelerac¸ao ˜ total [Lee et al. 2015]. O primeira parte da filtragem de magnitude consiste em calcular a m´edia a¯i e o desvio padr˜ao σai da magnitude da acelerac¸ao ˜ em uma janela w. Conforme [Jimenez et al. 2009], uma boa escolha de largura de janela e´ w = 15. Como segunda medida, s˜ao computados os limites superior e inferior para cada amostra de acelerac¸ao. ˜ O limite superior consiste na m´edia somada com o desvio padr˜ao da magnitude da acelerac¸ao ˜ na janela w. O limite inferior e´ determinado subtraindo o desvio padr˜ao da m´edia da magnitude da acelerac¸ao ˜ na janela w [Lee et al. 2015]. Por u´ ltimo, a validac¸ao ˜ de magnitude de picos e vales e´ efetuada. Um pico previamente identificado deve ser maior do que seu respectivo limite superior para que seja contado como pico real, e um vale deve ser menor do limite inferior para seja considerado como vale real (ver Figura 1a). Depois do filtro de magnitude, identifica-se ainda que alguns picos ou vales se reunem ´ em intervalos de tempo menores que o tempo m´edio do passo. Isto deve-se a movimentos de agitac¸ao ˜ e vibrac¸ao ˜ na caminhada, o que exige a aplicac¸ao ˜ de uma filtragem temporal. Trabalhos na literatura definiram limites fixos de intervalo de tempo [Pratama et al. 2012]. Por´em, o intervalo do passo varia n˜ao apenas de um indiv´ıduo para outro, mas tamb´em com a inclinac¸ao ˜ do terreno, com a presenc¸a de obst´aculos, etc. [Groves 2007]. Assim, pseudo-picos existentes entre picos reais nem sempre podem ser suprimidos com um intervalo de tempo fixo. Portanto, este estudo estima dinamicamente um intervalo de tempo minimo entre picos Tp com o objetivo de extrair-se apenas um pico de um grupo de candidatos de pico reunidos num intervalo de tempo muito curto. Da mesma forma, um limite de tempo minimo entre vales Tv e´ computado com o objetivo de extrair-se so´ um vale de um grupo reunido em um intervalo de tempo curto. Calcula-se o intervalo de tempo m´ınimo entre picos substra´ındo-se o desvio padr˜ao da m´edia do tempo entre picos Tp = T¯p − σp . Da mesma forma, computa-se o intervalo m´ınimo entre vales Tv = T¯v − σv . Os picos e vales que sobreviveram a` filtragem de magnitude so´ s˜ao contados se eles superam o per´ıodo m´ınimo entre picos e vales, respectivamente. Desta forma, um pico Pi a uma distˆancia Tpi do pico pr´evio deve ser Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
65
maior do que Tp , e um vale Vi a uma distˆancia Tvi do vale anterior tem que superar Tv . Na Figura 1b pode-se observar os picos e vales definitivos que sobreviveram ao processo de filtragem temporal. Finalmente, pode-se detectar um passo por cada pico com seu vale adjacente.
(a) Filtragem de magnitude
(b) Filtragem de tempo
Figura 1. Detecc¸ao ˜ de passo
2.2. Estimativa de Comprimento de Passo O comprimento de um passo e´ definido como a distˆancia entre dois impactos do calcanhar no ch˜ao. E´ necess´ario estimar o comprimento de cada passo para calcular a distˆancia total percorrida por uma pessoa. Esta distˆancia e´ obtida multiplicando o numero ´ de passos pelo comprimento do passo individual [Zhuang et al. 2013]. Na literatura, existem muitos modelos para determinac¸ao ˜ de comprimento do passo. Os modelos est´aticos assumem que os passos tˆem o mesmo comprimento e que podem ser determinados pelo conhecimento do peso e da altura do usu´ario [Constandache et al. 2010, Wang et al. 2012]. Por´em, os comprimentos de passo variam n˜ao so´ entre diferentes pessoas, eles tamb´em mudam para a mesma pessoa enquanto em diferentes ambientes. Isto faz com que a estimativa de comprimento fique imprecisa ou mesmo inutiliz´avel se n˜ao forem consideradas estas variac¸oes ˜ nos passos. Os m´etodos dinˆamicos assumem que os passos podem ter comprimentos diferentes. Estes m´etodos abrangem as abordagens lineares de Weinberg, de Kim, de Scarlett e de redes neurais, entre outras. [Ayub et al. 2012] e [Pratama et al. 2012] testaram as abordagens de Weinberg, Kim e Scarlett, encontrando que uma estimativa mais precisa de comprimento de passo e´ fornecida pelo m´etodo de Scarlett. Este u´ ltimo, tamb´em, supera o desempenho do m´etodo est´atico segundo [Pratama et al. 2012]. Levando isto em considerac¸ao, ˜ este trabalho implementa o m´etodo Scarlett. A aproximac¸ao ˜ de Scarlett baseia-se no princ´ıpio de que o salto vertical no passo de um indiv´ıduo est´a diretamente correlacionado com o comprimento do passo. [Scarlett 2007] encontrou uma correlac¸ao ˜ entre os valores de acelerac¸ao ˜ m´axima, m´ınima e m´edia do comprimento do passo, conforme (2) em seguida, onde amax e amin denotam acelerac¸ao ˜ m´axima e m´ınima no intervalo de passo, N e´ o tamanho m´edio da janela e i e´ o i-´esimo valor da magnitude da acelerac¸ao. ˜ Em algumas implementac¸oes ˜ anteriores, a constante K foi definida como 0.81 [Park et al. 2015, Pratama et al. 2012]. PN
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
|at |
− amin amax − amin i=1
ComprimentoP asso = K ×
N
(2)
66
2.3. Reconhecimento da Orientac¸ao ˜ A orientac¸ao ˜ ajuda a acumular passos na direc¸ao ˜ correta. Uma vez que um passo e´ detectado e´ importante saber em qual direc¸ao ˜ o passo foi dado, pois a principal fonte de erro de localizac¸ao ˜ e´ a orientac¸ao ˜ [Kang and Han 2015]. O presente trabalho tira proveito do sensor de campo magn´etico do smartphone para estimar a orientac¸ao ˜ do pedestre. Usando as medic¸oes ˜ magn´eticas dos eixos X e Y do magnetometro ˆ (ver Figura 2) calcula-se a orientac¸ao ˜ para cada amostra i conforme (3). Sucessivamente, aplica-se o filtro de mediana movel ´ com o alvo de diminuir o ru´ıdo dos dados brutos e obter uma melhor precis˜ao (ver Figura 2). Para executar a filtragem de mediana movel ´ escolhe-se uma janela wo , que desliza, amostra por amostra, sobre o sinal inteiro. Em cada janela computa-se a mediana que substitui o valor da amostra HMi correspondente. De acordo com [Du et al. 2015], um per´ıodo de durac¸ao ˜ de 1s equilibra precis˜ao e tempo gasto em computac¸ao. ˜ Neste trabalho, um dado de orientac¸ao ˜ e´ obtido a cada 50ms, pelo qual uma janela contendo 20 dados de orientac¸ao ˜ e´ definida. A Figura 2 expoe ˜ em preto o sinal de orientac¸ao ˜ do pedestre depois da filtragem da mediana. Por u´ ltimo, converte-se a orientac¸ao ˜ obtida em radianos para facilitar a atualizac¸ao ˜ da posic¸ao ˜ do usu´ario.
HMi = arctan(−
My i ) Mx i
(3)
Figura 2. Calculo ´ da orientac¸ao ˜ do pedestre
2.4. Atualizac¸ao ˜ de Posic¸ao ˜ Conhecendo a distˆancia e a direc¸ao ˜ de cada passo do usu´ario, e´ poss´ıvel construir um sistema de coordenadas cartesianas para retratar a trajetoria ´ do pedestre. Cada passo e´ tratado como um ponto, e considera-se o in´ıcio do primeiro passo como sendo a origem com coordenadas (0, 0) [Wu et al. 2015]. A posic¸ao ˜ do pedestre e´ apresentada usando um vetor bidimensional (E, N ), que e´ atualizado iterativamente conforme (4) [Zhuang et al. 2013, Tian et al. 2015, Chen et al. 2010]. Neste caso Ek e Nk s˜ao as coordenadas atuais ao Leste e ao Norte, Ek−1 e Nk−1 s˜ao as coordenadas da posic¸ao ˜ anterior, ˜ Lk−1 e´ o comprimento de passo estimado do passo k − 1 at´e k e Hk−1 e´ a orientac¸ao estimada no paso k − 1. Ek = Ek−1 + Lk−1 ∗ sin(Hk−1 ) Nk = Nk−1 + Lk−1 ∗ cos(Hk−1 ) Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
(4)
67
3. Gerac¸ao ˜ de coordenadas globais Hoje em dia, o receptor GPS de um telefone celular reporta localizac¸ao ˜ geografica baseado no sistema WGS-84, no qual as coordenadas geogr´aficas s˜ao apresentadas na forma (φ, λ), onde φ denota latitude e λ longitude. Para obter as coordenadas globais da trajetoria ´ do pedestre, este trabalho usa as coordenadas WGS-84, obtidas do receptor GPS do smartphone, e as transforma para o formato universal transverso de mercator (UTM) conforme [Snyder 1987]. Este e´ um sistema de coordenadas planim´etricas na forma de (E, N ), onde E e N indicam os valores em metros ao Leste e ao Norte, respectivamente. Os sistemas de coordenadas global e local s˜ao considerados coplanares [Karney 2011].
4. Transformac¸ao ˜ de coordenadas locais em globais E´ poss´ıvel melhorar a precis˜ao de posicionamento global tirando proveito das posic¸oes ˜ locais atrav´es do ajuste das coordenadas globais pelas locais [Wu et al. 2015]. Para isso e´ preciso trazer os dois conjuntos de coordenadas para o mesmo plano atrav´es da realizac¸ao ˜ de uma transformac¸ao ˜ o´ tima, que segundo [Horn 1987] inclui operac¸oes ˜ de translac¸ao, ˜ dimensionamento e rotac¸ao. ˜ Tal transformac¸ao ˜ minimiza a soma dos quadrados dos erros residuais e consegue converter as coordenadas locais exatamente para as globais. Geralmente a trajetoria ´ local tem mais pontos do que a trajetoria ´ global, pelo que e´ imprescind´ıvel alinhar as coordenadas locais com as globais definindo o mesmo numero ´ de pontos, que e´ estabelecido pelo sistema de coordenadas global. As estampas de tempo das coordenadas locais s˜ao filtradas, e para cada ponto global associa-se o ponto local com a mesma estampa de tempo. Finalmente, obtem-se dois sistemas de coordenadas com a mesma quantidade n de pontos. A partir deste momento, o sistema de coordenadas local ser´a denotado como L = {lj , j = 1, ..., n} e o global como G = {gj , j = 1, ..., n}. Cada ponto destes sistemas ser´a representado como um numero ´ complexo [Wu et al. 2015]. Como j´a foi dito, a transformac¸ao o´ tima de [Horn 1987] comprende trˆes operac¸oes, ˜ conforme (5), onde t0 traduz a operac¸ao ˜ de translac¸ao, ˜ R(L) constitui a operac¸ao ˜ de rotac¸ao ˜ da coordenada local, t0 reflete o escalamento e Lg e´ a vers˜ao transformada da coordenada local. Lg = sR(L) + t0
(5)
Para comec¸ar com a translac¸ao, ˜P torna-se u´ til referir ˜ do sistema local Pn as medic¸oes n 1 1 ¯ e global para os centroides, l = n j=1 lj e g¯ = n j=1 gj , respectivamente. Desta maneira, a nova forma das coordenadas locais e´ descrita por lj0 = lj − ¯lj , e a nova forma das coordenadas globais por gj0 = gj − g¯j . Isto permite definir o termo de erro residual ¯ + sR(L). ¯ A soma dos quadrados do como e0j = gj0 − sR(lj0 ) − t00 , onde t00 = t0 − G erro residual pode ser escrita como (6), onde o erro residual ser´a minimizado quando o termo de translac¸ao ˜ for zero t00 = 0, e pode ser expressa como (7). Este termo pode ser computado uma vez que os fatores de escala e de rotac¸ao ˜ s˜ao calculados. n X j=1
2
kej k =
n X
kgj0
−
sR(lj0 )k2
j=1
¯ − sR(L) ¯ t0 = G Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
− 2t0 ·
n X
[gj0 − sR(lj0 )] + nkt00 k
(6)
j=1
(7)
68
Considerando que, a translac¸ao ˜ o´ tima e´ dada quando t00 = 0 e que a rotac¸ao ˜ de 0 2 0 2 um vetor preserva sua norma kR(lj )k = klj k , o erro pode ser redefinido como (8). Para minimizar (8) em relac¸ao ˜ a` escala s, o primeiro termo deve ser zero e a escala torna-se (9).
n X
2
kej k =
j=1
s=
n X
kgj0 k2
− 2s
n X
j=1 j=1 Pn 0 0 j=1 gj · R(lj ) P n 0 2 j=1 klj k
gj0
·
R(lj0 )
+s
2
n X
klj0 k2
(8)
j=1
(9)
A operac¸ao ˜ de rotac¸ao ˜ busca minimizar a soma dos quadradosP das distˆancias n entre os pontos correspondentes no sistema global e local, conforme j=1 kej k2 = Pn 0 0 2 j=1 kgj − R(lj )k . Uma vez que os sistemas de coordenadas encontram-se no mesmo plano, entre as medic¸oes ˜ gj0 e lj0 existe um aˆ ngulo αj , e o produto ponto entre elas e´ 0 0 0 0 gj · lj = kgj kklj k cos(αj ). Por outro lado, tem-se que as coordenadas locais s˜ao rodadas no plano por um aˆ ngulo θ, de modo que o aˆ ngulo αj e´ reduzido por θ e o erro pode ser computado como (10), o qual ser´a minimizado quando seuPsegundo termo for zen rado. Para simplificar o tratamento alg´ebrico denomina-se C = j=1 kgj0 k2 klj0 k2 cos(αj ) Pn e D = j=1 kgj0 k2 klj0 k2 sin(αj ). Assim o aˆ ngulo θ ser´a dado por (11). n X j=1
2
kej k =
n X
kgj0 k2
−2
j=1
n X
kgj0 k2 klj0 k2 cos(αj − θ) + kR(lj0 )k2
(10)
j=1
θ = arcsin
C √ C 2 + D2
(11)
5. Implementac¸ao ˜ e Resultados Para avaliar o desempenho de navegac¸ao ˜ do algoritmo proposto, s˜ao definidas trˆes trajetorias ´ de teste em ambientes exteriores do campus da Universidade Estadual de Campinas com comprimentos iguais a 10m, 50m e 100m, respectivamente. Os percursos retos de 10m e 50m s˜ao usados para testar o desempenho do algoritmo de detecc¸ao ˜ e estimativa de comprimento de passo. O percurso de 100m, com quatro rotac¸oes, ˜ e´ usado para testar as trˆes fases do algoritmo de navegac¸ao ˜ integrado. Trˆes usu´arios com um Samsung Galaxy S5 fixo nas maos ˜ percorrem seis vezes cada trajetoria ´ reta, e quatro usu´arios repetem seis vezes a trajetoria ´ de 100m. Cada pedestre conta os passos reais efetuados durante um percurso. O smartphone coleta os dados a cada 50ms, e as informac¸oes ˜ de tempo, acelerac¸ao ˜ triaxial, campo magn´etico triaxial, latitude e longitude s˜ao registradas. O algoritmo consegue determinar os passos efetuados pelos usu´arios com erro m´edio de 2.11, 4.88 e 10.29, nas trajetorias ´ de 10m, 50m e 100m, respectivamente. Enquanto, a distˆancia e´ estimada com erro m´edio de 0.80m, 3.28m e 4.42m, respectivamente. Considerando todas as experiˆencias efetuadas o erro m´edio de passo atingido pelo algoritmo e´ de 5.76, e o erro m´edio de distˆancia e´ de 2.83m. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
69
Para testar a gerac¸ao ˜ de coordenadas locais, globais e a transformac¸ao ˜ respectiva, foi considerada a trajetoria ´ de 100m. O algoritmo de coordenadas local consegue detetar as quatro rotac¸oes ˜ do percurso, mas nem sempre reflete um aˆ ngulo de giro de 90◦ , o qual afeta significativamente a estimativa de posic¸ao ˜ do pedestre. A Figura 3a apresenta as coordenadas locais de um usu´ario durante o percurso de 100m. As coordenadas globais obtidas para o mesmo usu´ario s˜ao apresentadas na Figura 3b. A transformac¸ao ˜ de coordenadas locais em globais de um usu´ario no percurso de 100m e´ apresentada na Figura 3c em cor azul. Desenhando estas coordenadas transformadas no mapa real, pode ser visto que, geralmente, elas refletem melhor o percurso do usu´ario. A diferenc¸a m´edia de posicionamento entre as coordenadas obtidas diretamente do GPS e as coordenadas transformadas obtidas e´ de 1.5467m ao Leste e 2.1748m ao Norte como apresenta a Figura 4.
(a) Coordenadas locais
(b) Coordenadas globais
(c) Coordenadas transformadas
Figura 3. Coordenadas de um usuario ´ em trajetoria ´ de 100m
6. Conclusoes ˜ A taxa de amostragem da acelerac¸ao ˜ constitui um fator importante na detecc¸ao ˜ de passo. Neste trabalho foram coletados dados a 10Hz, 20Hz e 50Hz, obtendo uma contagem de passo mais precisa em 20Hz. Tamb´em, o tamanho da janela escolhido para a filtragem de magnitude e´ um fator de impacto na rejeic¸ao ˜ de falsos picos derivados de movimentos de agitac¸ao ˜ ou vibrac¸ao. ˜ Uma janela de 1.55s (31amostras) mostrou um bom desempenho para uma frequˆencia de 20Hz. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
70
Figura 4. Diferenc¸a de posic¸ao ˜ entre coordenadas globais e transformadas
O erro de estimac¸ao ˜ de distˆancia e´ menor em trechos curtos sem rotac¸oes. ˜ Este resultado poderia ser melhorado reiniciando a estimac¸ao ˜ cada vez que uma rotac¸ao ˜ e´ detectada. O valor da constante no m´etodo de Scarlett e´ crucial na estimativa de comprimento de passo. Neste trabalho usou-se um valor de 1.5. O reconhecimento da orientac¸ao ˜ e´ uma das tarefas mais exigentes na navegac¸ao ˜ de pedestres, pois pequenas mudanc¸as de orientac¸ao ˜ produzem grandes efeitos na estimativa de posic¸ao. ˜ A filtragem de mediana movel ´ diminui o ru´ıdo dos dados em bruto do sensor de campo magn´etico, quando uma janela adequada e´ definida. Foi observado que uma boa escolha de janela e´ 1s. O erro na gerac¸ao ˜ de coordenadas locais deve-se em grande parte a` computac¸ao ˜ da orientac¸ao, ˜ pois a posic¸ao ˜ do usu´ario pode ser calculada de forma mais precisa quando n˜ao h´a rotac¸oes ˜ durante o percurso. Uma vez que as coordenadas locais tem sido rodadas, transladadas e escaladas, elas constituem uma boa descripc¸ao ˜ do percurso do usu´ario no plano global real. Este trabalho apresenta uma aproximac¸ao ˜ de posicionamento integrado que poderia tornar-se util ´ e vi´avel em aplicac¸oes ˜ de geolocalizac¸ao, ˜ tais como navegac¸ao ˜ de deficientes visuais, devido ao aumento do uso de smartphones com GPS e sensores inerciais.
Referˆencias Ayub, S., Zhou, X., Honary, S., Bahraminasab, A., and Honary, B. (2012). Sensor Placement Modes for Smartphone Based Pedestrian Dead Reckoning, pages 123–132. Springer Netherlands, Dordrecht. Chen, W., Chen, R., Chen, Y., Kuusniemi, H., and Wang, J. (2010). An effective pedestrian dead reckoning algorithm using a unified heading error model. In Position Location and Navigation Symposium (PLANS), 2010 IEEE/ION, pages 340–347. IEEE. Constandache, I., Choudhury, R. R., and Rhee, I. (2010). Towards mobile phone localization without war-driving. In Infocom, 2010 proceedings ieee, pages 1–9. IEEE. Du, J., He, W., Shen, J., and Liu, H. (2015). Pipdr: A placement-independent pedestrian dead reckoning system in mobile phones. Ad Hoc & Sensor Wireless Networks, 26:73– 96. Feliz Alonso, R., Zalama Casanova, E., and Gomez ´ Garc´ıa-Bermejo, J. (2009). Pedestrian tracking using inertial sensors. Groves, P. D. (2007). Principles of GNSS, Inertial, and Multi-Sensor Integrated Navigation Systems (GNSS Technology and Applications). Artech Print on Demand. Horn, B. K. P. (1987). Closed-form solution of absolute orientation using unit quaternions. J. Opt. Soc. Am. A, 4(4):629–642. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
71
Jimenez, A. R., Seco, F., Prieto, C., and Guevara, J. (2009). A comparison of pedestrian dead-reckoning algorithms using a low-cost mems imu. In Intelligent Signal Processing, 2009. WISP 2009. IEEE International Symposium on, pages 37–42. Kang, W. and Han, Y. (2015). Smartpdr: Smartphone-based pedestrian dead reckoning for indoor localization. IEEE Sensors journal, 15(5):2906–2916. Karney, C. F. F. (2011). Transverse Mercator with an accuracy of a few nanometers. Journal of Geodesy, 85:475–485. Lee, H.-h., Choi, S., and Lee, M.-j. (2015). Step detection robust against the dynamics of smartphones. Sensors, 15(10):27230. Park, M. C., Chirakkal, V. V., and Han, D. S. (2015). Robust pedestrian dead reckoning for indoor positioning using smartphone. In 2015 IEEE International Conference on Consumer Electronics (ICCE), pages 80–81. Pratama, A. R., Widyawan, and Hidayat, R. (2012). Smartphone-based pedestrian dead reckoning as an indoor positioning system. In System Engineering and Technology (ICSET), 2012 International Conference on, pages 1–6. Qian, J., Ma, J., Ying, R., Liu, P., and Pei, L. (2013). An improved indoor localization method using smartphone inertial sensors. In Indoor Positioning and Indoor Navigation (IPIN), 2013 International Conference on, pages 1–7. Rai, A., Chintalapudi, K. K., Padmanabhan, V. N., and Sen, R. (2012). Zee: zero-effort crowdsourcing for indoor localization. In Proceedings of the 18th annual international conference on Mobile computing and networking, pages 293–304. ACM. Scarlett, J. (2007). Enhancing the performance of pedometers using a single accelerometer. Application Note, Analog Devices. Snyder, J. P. (1987). Map Projections - A Working Manual (U.S. Geological Survey Professional Paper 1395). US Government Printing Office. Tian, Q., Salcic, Z., Wang, K. I.-K., and Pan, Y. (2015). A hybrid indoor localization and navigation system with map matching for pedestrians using smartphones. Sensors, 15(12):30759–30783. Wang, H., Sen, S., Elgohary, A., Farid, M., Youssef, M., and Choudhury, R. R. (2012). No need to war-drive: unsupervised indoor localization. In Proceedings of the 10th international conference on Mobile systems, applications, and services, pages 197– 210. ACM. Wu, C., Yang, Z., Xu, Y., Zhao, Y., and Liu, Y. (2015). Human mobility enhances global positioning accuracy for mobile phone localization. IEEE Transactions on Parallel and Distributed Systems, 26(1):131–141. Yang, L., Li, Y., and Rizos, C. (2014). Walking status detection for pedestrian navigation. In China Satellite Navigation Conference (CSNC) 2014 Proceedings: Volume III, pages 485–497. Springer. Zhuang, Y., Chang, H. W., and El-Sheimy, N. (2013). A MEMS Multi-Sensors System for Pedestrian Navigation, pages 651–660. Springer Berlin Heidelberg, Berlin, Heidelberg. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
72
Anais do Encontro Regional de Computação e Sistemas de Informação
Arquitetura de IoT para Cidades Inteligentes Douglas Lima Dantas1,2 , Carlos Maurício Seródio Figueiredo1,2 1
Escola Superior de Tecnologia – Universidade do Estado do Amazonas (UEA) Manaus – AM – Brasil 2
Samsung Ocean Center (OCEAN) Manaus – AM – Brasil
{dld.eng,cfigueiredo}@uea.edu.br
Abstract. Faced with urban growth, there is a concern for a quality of life in cities. Parallel to this, the technology has advanced and generated features that can fill some of these gaps. This work brings a proposal of Internet of Things based architecture to monitor data in urban environments and make them available with a friendly view. All this using accessible technologies that together help solve some problems. Resumo. Diante do crescimento urbano, surge a preocupação com a qualidade de vida nas cidades. Paralelo a isso, a tecnologia tem avançado e gerado recursos que podem preencher algumas dessas lacunas. Este trabalho traz uma proposta de arquitetura baseada em Internet of Things para monitorar dados em ambientes urbanos e disponibilizá-los com uma visualização amigável. Tudo isso utilizando tecnologias acessíveis que, em conjunto, ajudam a solucionar alguns desses problemas.
1. Introdução A globalização, urbanização e industrialização têm sido as principais mudanças da humanidade no século XXI [Lee et al. 2014]. Além disso, a população mundial aumentará de 7 bilhões para 9 bilhões até 2050, e 70% das pessoas viverão nas áreas urbanas [Marchal et al. 2012]. Há muitos problemas que afetam a qualidade de vida dos urbanos, sendo alguns deles a poluição em suas várias vertentes (por exemplo, atmosférica, sonora e visual), mudanças climáticas e ilhas de calor. Sendo assim, torna-se imprescindível trazer soluções para mitigá-los. Uma forma de combater esse problema é tornar as cidades mais inteligentes, obtendo dados do ambiente constantemente com o fim de tomar decisões e ter um maior controle. Faz-se necessário desenvolver soluções de monitoramento que informem com precisão suficiente e dentro de uma taxa aceitável de tempo. No entanto, tal desafio é cercado de várias restrições, como instável acesso à Internet e providência de fontes energéticas. Nesse contexto é que entra o ramo da Internet of Things (IoT) [Xia et al. 2012]. IoT trata da interconexão em rede de objetos do quotidiano, que são muitas vezes equipados com microcontroladores, provendo computação pervasiva, sensível ao contexto. Isto traz uma vasta gama de possibilidades de desenvolvimento de novos projetos que prometem melhorar a qualidade de vida das pessoas. Além disso, no ramo da IoT considera-se muitas vezes restrições tais como as que existem nesse problema. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
A solução proposta neste trabalho traz os princípios de IoT para contornar essas restrições. A vantagem é utilizar uma nova abordagem que mais se adequa ao problema, com maior facilidade de projeto, gerenciamento e baixo custo. Esta rede de sensores pode ser utilizada, feitas as devidas adaptações, nos mais diversos tipos de ambiente tais como indústrias, ruas, parques e laboratórios., monitorando dados como temperatura, concentração de gases, umidade e luminosidade, fazendo uso do protocolo Message Queue Telemetry Transport (MQTT), bastante leve e ideal para ambientes críticos [Hunkeler et al. 2008]. Além disso, conterá uma API disponível em formato JSON e um dashboard como boa usabilidade para análise dos dados.
2. Tecnologias Utilizadas O advento da IoT, com seu paradigma que geralmente utiliza sistemas embarcados conectados em rede, trouxe uma série de necessidades: tecnologias com baixo consumo de energia e capazes de trabalhar com uma baixa disponibilidade de banda, com conexões muitas vezes instáveis. Na área de redes, isso ocasionou o desenvolvimento de vários protocolos, desde as camadas mais baixas até as mais altas na pilha de protocolos. Dentre os principais protocolos na camada de aplicação são utilizados em aplicações de IoT, podemos citar o CoAP [Shelby et al. 2014] e o MQTT [ISO/IEC20922 2016], sendo o segundo utilizado neste trabalho. Além disso, o bom funcionamento de um projeto de IoT depende da escolha da plataforma de hardware utilizada. Com a diminuição dos custos de produção e melhorias nas tecnologias de fabricação de semicondutores, surgiram várias plataformas baratas e simples de programar, democratizando a fabricação de dispositivos e criando toda uma comunidade em volta disso. Dentre as plataformas mais populares podemos citar o Arduino [Arduino 2005], utilizada neste projeto, o ESP8266 [Espressif 2014] e Raspberry Pi [RPF 2012]. 2.1. Message Queuing Telemetry Transport (MQTT) O MQTT [Banks and Gupta 2014] é um protocolo aberto extremamente leve para comunicação entre máquinas. Foi inicialmente criado pela IBM. Tem uma arquitetura clienteservidor, no qual cada nó é um cliente e comunica-se com um servidor chamado broker. Ele utiliza TCP e é baseado em mensagens, utilizando o padrão publish/subscriber, onde um nó pode publicar mensagens e/ou sobrescrever em um ou mais endereços chamados de tópicos. Uma funcionalidade interessante deste protocolo é o Quality of Service (QoS), onde pode-se configurar entre três níveis de garantia de entrega das mensagens. O nível QoS 0 é o mais básico, e funciona de forma semlhante ao UDP. Ele utiliza apenas um verbo responsável por publicar a mensagem, todavia sem confirmação de entrega e da ordem correta dos pacotes. Já o segundo nível, o QoS 1, utiliza dois verbos, um para publicar e outro para confirmar a entrega, mas ainda sem garantia de ordem de chegada. Por fim, o último nível (QoS 2) utiliza quatro verbos, publicando e garantindo a entrega dos pacotes e ordem correta de entrega. O MQTT foi o protocolo escolhido para ser utilizado no projeto descrito neste trabalho. As razões para isso são a sua arquitetura simples, com mensagens curtas e que são facilmente transmitidas mesmo em redes instáveis, juntamente com o modelo publish/subscriber, que facilita com o fato de vários nós-sensores poderem assinar um tópico automaticamente, tornando o mesmo mais adequado às necessidades. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
74
2.2. Arduino O Arduino [Arduino 2005] uma plataforma de prototipagem eletrônica com código-fonte e hardware aberto, projetada utilizando um microcontrolador da família Atmel AVR, com suporte a entrada, saída e conexão serial via USB, operando em 5V. Foi criado tendo um baixo custo e tendo usuários iniciantes como seu público-alvo, tais como designers e artistas. Contém saídas digitais, analógicas e é utilizado tanto em projetos simples, como pequenas artes, quanto projetos complexos, como impressoras 3D. Esta foi a placa utilizada no projeto proposto por esse trabalho, devido ao seu baixo custo, além de várias saídas digitais, analógicas e um grande número de módulos chamados de shields e bibliotecas compatíveis, integrando diferentes sensores.
3. Trabalhos e projetos relacionados Vários projetos de nós sensores e arquiteturas de IoT comerciais estão disponíveis no mercado. Há, também, inúmeros artigos na Internet que ensinam aos usuários como fazer seus próprios nós sensores. Além disso, há trabalhos acadêmicos que desenvolveram propostas de arquiteturas semelhantes a apresentada neste trabalho. Considerou-se trabalho ou projeto relacionado aqueles que têm como objetivo coletar dados de sensores ou disponibilizá-los na Internet através de um sistema de visualização. 3.1. Nós Sensores Um trabalho relacionado é o Forest Fire Sensor [dos Santos and Figueiredo 2016], uma Rede de Sensores Sem Fio (RSSF) que também utiliza a plataforma Arduino e alguns sensores idênticos aos utilizados neste trabalho, porém utiliza outros protocolos de comunicação além do WiFi, como o XBee, por exemplo. No entanto, o trabalho é voltado para monitoramento de ambientes como, por exemplo, florestas, indústrias e parques, enquanto a arquitetura proposta neste artigo tem como fim monitoramento em cidades para disponibilizar os dados em formato amigável para uma boa visualização, além de uma API para consumo em outros sistemas. Os mesmos citam em seu trabalho Tmote Sky [Advanticsys 2015] e o Waspmote [Liberium 2012], dois nós sensores disponíveis no mercado bastante utilizados. 3.2. Disponibilização de Dados de Sensores Há o projeto FIWARE Lab [Fiware 2016], que trata-se de uma iniciativa sem fins lucrativos para disponibilização de dados de sensores de vários locais do mundo, onde indivíduos e empresas podem tanto publicar quanto utilizar essas informações para pesquisas e desenvolvimento de aplicações. Várias cidades já tornaram seus dados públicos através desse projeto. Particularmente, o projeto aqui apresentado poderia integrar-se facilmente a esta iniciativa.
4. Arquitetura Projetada A Figura 1 mostra uma visão geral da arquitetura de acordo com os itens abaixo, juntamente com o fluxo de informação. • • • • •
Um ou mais nós sensores; Broker MQTT; Servidor com NodeRED instalado; Freeboard; Aplicativo móvel.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
75
Figura 1. Visão geral da arquitetura proposta pelo trabalho
4.1. O Nó Sensor O nó sensor é composto por quatro módulos distintos. Primeiramente, tem-se a CPU, onde todo o processamento, gerenciamento de memória e execução de programas acontece. Logo depois, vem o módulo de alimentação, responsável por fornecer energia ao equipamento. Existe também o módulo de comunicação que permite ao nó conectar-se a um roteador WiFi. Por fim, há o módulo de sensoriamento, que contém os sensores de concentração de gás, luminosidade, umidade e temperatura. O único custo econômico neste projeto foi gerado com as peças do nó sensor e são discriminados na Tabela 4.1. O módulo CPU consiste numa placa Arduino UNO R3, que utiliza o microcontrolador ATMega 328p. Ele é responsável pela execução do programa, controlando as entradas e saídas digitais e analógicas. A Figura 2 mostra o diagrama que representa o software embarcado no microcontrolador. Basicamente, o sistema faz a inicialização do módulo WiFi e se conecta ao broker. Após isso, entra em laço onde dados são lidos dos sensores e enviados ao broker. Em caso de queda de conexão ou travamentos o software reinicia. A Figura 3 mostra uma foto do Arduino utilizado.
Figura 2. Máquina de estado finito do software embarcado na CPU.
Já o módulo de alimentação é composto por duas entradas: uma JACK, de até 12V, e uma entrada USB de 5V. O sistema pode ser alimentado por uma delas. Neste Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
76
Figura 3. Fotos mostrando o modelo de Arduino e shield WiFi utilizados no projeto.
trabalho, utilizou-se uma fonte de alimentação externa que reduz a tensão de 127V para 5V e contém uma entrada USB que serve, além da alimentação, para conexão serial. Para comunicação utilizou-se um shield WiFi CC3000 da Sparkfun para fazer a conexão com a Internet. Ele tem velocidade de 4Mb/s, segue o padrão IEEE 802.11 b/g e tem uma entrada para antena externa, que é opcional. A Figura 3 mostra uma foto do componente utilizado. O mesmo pode ser facilmente substituido por um shield 3G ou GSM para operação em campo. O módulo de sensoriamento é composto por vários sensores. O primeiro deles é o MQ-2, sensor de concentração de gases com precisão para medir entre 300ppm e 10.000ppm vários tipos de gases tais como GLP, metano, propano, butano, hidrogênio, vapor de álcool e gás natural [HANWEI ELETRONICS CO.,LTD 2012]. O segundo é o sensor DHT11, que mede umidade relativa do ar e temperatura [D-ROBOTICS 2010]. O último é um fotoresistor, para medir luminosidade. Abaixo, as fórmulas utilizadas para obtenção das medidas de luminosidade e concentração de gases. A Figura 4 mostra imagens dos sensores utilizados, contendo o MQ-2 (1), DHT11 (2) e fotoresistor (3), respectivamente.
Figura 4. Imagens dos sensores usados no trabalho.
U (i) =
Lux (U ) =
5i 1023
2500 U
− 500 R
G(U ) = 20U Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
(1)
(2)
(3)
77
Itens Arduino UNO Rev3 MQ-2 DHT11 LDR CC3000 Total
Valor R$29,00 R$9,50 R$7,50 R$1,00 R$285,00 R$332,00
Tabela 1. Discriminação dos custos com o nó sensor.
A Equação 1 se refere a medição de tensão na porta analógica. O Arduino obtém um valor i ∈ [0, 1023] diretamente proporcional à tensão aplicada na entrada analógica, de acordo com a fórmula descrita na Equação 1. Já a Equação 2 é a fórmula para medir a luminosidade em Lux a partir da tensão aplicada no fotoresistor, onde R é o resistor do divisor de tensão utilizado [EMANT 2004]. Por fim, a Equação 3, onde diz que o MQ-2 tem sua tensão entre 0V e 5V de acordo com a concentração de gases, logo pode-se medir em porcentagem [HANWEI ELETRONICS CO.,LTD 2012]. Primeiramente a montagem foi realizada utilizando uma placa de prototipagem. Então, após verificar-se a corretude dos circuitos e o bom funcionamento do protótipo, confeccionou-se um gabinete utilizando uma impressora 3D, no qual instalou-se o projeto já sem a placa de prototipação. A Figura 5 apresenta o esquema de montagem utilizado para o circuito. A Figura 6(a) mostra o gabinete impresso com os componentes eletrônicos arranjados e, por fim, a Figura 6(b) exibe o nó sensor finalizado.
Figura 5. Diagrama esquemático do circuito. Foram utilizados dois resistores de 1kΩ no projeto.
(a) Arranjo dos componentes.
(b) Nó sensor finalizado.
Figura 6. Gabinete confeccionado com auxílio de impressora 3D.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
78
4.2. MQTT broker O MQTT broker utilizado no projeto foi o Mosquitto 1.4.9 [Eclipse 2006]. Foram disponibilizados seis tópicos para cada nó sensor, um para status do aparelho e quatro para recebimento dos dados de cada sensor, separadamente, e um quinto para uma string em formato JSON com todos os dados juntos, onde nome_sensor representa o identificador único do nó. São eles: • • • • • •
/ocean/sensores/debug; /ocean/sensores/<nome_nó_sensor>/temperatura; /ocean/sensores/<nome_nó_sensor>/umidade; /ocean/sensores/<nome_nó_sensor>/luminosidade; /ocean/sensores/<nome_nó_sensor>/gas /ocean/sensores/<nome_nó_sensor>/dados
4.3. NodeRED O NodeRED é uma ferramenta visual para programar rapidamente a comunicação entre APIs, dispositivos e disponibilização de dados. [Corbin 2016]. Ele foi utilizado no projeto para centralizar o recebimento de dados e publicá-los em um formato amigável JSON, para ser utilizado por qualquer outro projeto, como um dashboard ou um alarme, por exemplo. A Figura 7 mostra o programa criado com NodeRED, onde os dados dos sensores são recebidos nos blocos da Recepção MQTT, são convertidos para JSON em Tratamento dos Dados e disponibilizados para serem acessados via GET em Tratamento de Requisições, tornando-se um serviço WEB.
Figura 7. Programa gerenciador de dados feitos usando NodeRED.
4.4. Freeboard É uma plataforma de dashboards online, onde o usuário pode cadastar-se, montar seus painéis com dados e disponibilizá-los, tudo de maneira simples e amigável [Freeboard 2014]. A Figura 8(a) mostra uma imagem dos painéis criados para o projeto, onde o usuário tem uma visão geral amigável em tempo real dos dados. Tal ferramenta permite que qualquer usuário possa fazer uso dos dados disponibilizados pelo NodeRED para sua aplicação específica. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
79
4.5. Aplicativo móvel Foi desenvolvido um aplicativo para Android que tem a funcão de painel de visualização de dados, semelhante ao Freeboard, onde o usuário pode analisar os dados amigavelmente. A vantagem dessa alternativa é que mostra que a arquitetura, ao usar tecnologias populares, torna fácil a integração de novas aplicações. A Figura 8(b) mostra tela do aplicativo desenvolvido utilizando a plataforma Android Studio, com adição da biblioteca Paho [Eclipse 2012], que assina os tópicos MQTT utilizados pelo nó sensor publica, recebendo os dados assincronamente e disparando-os na tela.
(a) Freeboard
(b) Aplicativo
Figura 8. Interfaces WEB e móvel desenvolvidas para visualização amigável e em tempo real dos dados.
5. Estudo de caso Para testar a arquitetura, uma unidade de nó sensor foi implantada no Samsung Ocean Center, local onde o mesmo foi projetado, e foram analisados dados por 24 horas. O mesmo foi exposto na sala principal, sujeito a variações de temperatura, em virtude dos condicionadores de ar, luminosidade indicando atividades no local. A Figura 5 apresenta os gráficos gerados durante este período de observação, onde se pode verificar que não houve mudança de umidade e os gases detectados foram concentrações baixíssimas. Durante o período testado, o nó sensor transmitiu 16733 mensagens no tópico /ocean/sensores/<nome_nó_sensor>/dados, apresentando um delay médio de 5,16s entre cada envio. O aplicativo fez seus recebimentos assincronamente, apresentando os dados conforme o proposto. O JSON disponível pelo NodeRED estava constantemente atualizado.
6. Conclusão Este artigo apresentou uma solução de arquitetura de IoT para monitoramento de ambientes urbanos, de baixo custo, com tecnologias abertas e simples, tendo um ou mais nós sensores, um dashboard para visualização e um sistema que disponibiliza os dados em JSON, permitindo que qualquer aplicação possa fazer requisições e utilizar os dados para criar novas funcionalidades, funcionando como extensões. Isto torna o sistema versátil. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
80
(a) Temperatura
(b) Umidade
(c) Concentração de Gases
(d) Luminosidade
Figura 9. Gráficos gerados a partir dos dados recebidos do nó sensor dentro de um período de 24 horas.
É uma arquitetura de baixo custo e de fácil implementação, podendo ser aplicado em infraestrutura pública e extendido a diversas aplicações de interesse. A arquitetura desenvolvida neste trabalho pode ser ampliada e resulta em diversos trabalhos possíveis. Uma possibilidade seria a de construir vários nós, instalá-los em uma localidade, tal como um campus, e utilizar atuadores que tivessem funcionamento condicionado aos dados obtidos, utilizando aprendizagem de máquina ao reconhecer padrões em variações de temperatura, por exemplo. Outro possível trabalho seria instalar vários nós em vias estratégicas e medir a poluição do ar em um período, permitindo que a Prefeitura soubesse onde ficam as áreas mais estratégicas para tomar medidas de conscientização e redução da poluição, diminuindo ilhas de calor.
Agradecimentos Os autores agradecem a Universidade do Estado do Amazonas pelo apoio. Os resultados apresentados nessa publicação foram obtidos por meio de atividades de Pesquisa e Desenvolvimento do projeto SAMSUNG OCEAN, patrocinado pela Samsung Eletrônica da Amazônia LTDA., apoiado pela SUFRAMA sob os termos da Lei Federal No 8.248/91. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
81
Referências Advanticsys (2015). 22/10/2016.
http://www.advanticsys.com/shop/mtmcm5000msp-p-14.html.
Arduino (2005). https://www.arduino.cc/. 22/10/2016. Banks, A. and Gupta, R. (2014). MQTT Version 3.1.1. http://docs.oasis-open.org/mqtt/ mqtt/v3.1.1/os/mqtt-v3.1.1-os.html. Corbin (2016). Node-RED: The fundamental, easy to use, open-source programming tool for IoT. https://developer.ibm.com/dwblog/2016/ node-red-programming-tool-open-source-iot/. 22/10/2016. D-ROBOTICS (2010). DHT11 Humidity & Temperature Sensor. http://www.micropik.com/PDF/ dht11.pdf. 22/10/2016. dos Santos, J. W. V. and Figueiredo, C. M. S. (2016). Rede de sensores sem fio para monitoramento de dados ambientais: Projeto de nó sensor de baixo custo. In Anais do Encontro Regional de Computação e Sistemas de Informação. Eclipse (2006). http://mosquitto.org/. 22/10/2016. Eclipse (2012). https://eclipse.org/paho/. 22/10/2016. EMANT (2004). Measure Light Intensity using Light Dependent Resistor (LDR). http://emant. com/316002.page. 22/10/2016. Espressif (2014). https://espressif.com/. 22/10/2016. Fiware (2016). https://www.fiware.org/lab/. 22/10/2016. Freeboard (2014). https://freeboard.io/. 22/10/2016. HANWEI ELETRONICS CO.,LTD (2012). Techinical Data MQ-2 Gas Sensor. sandboxelectronics.com/files/SEN-000004/MQ-2.pdf. 22/10/2016.
http://
Hunkeler, U., Truong, H. L., and Stanford-Clark, A. (2008). Mqtt-s—a publish/subscribe protocol for wireless sensor networks. In Communication systems software and middleware and workshops, 2008. comsware 2008. 3rd international conference on, pages 791–798. IEEE. ISO/IEC20922 (2016). Information technology – Message Queuing Telemetry Transport (MQTT) v3.1.1. Lee, J. H., Hancock, M. G., and Hu, M.-C. (2014). Towards an effective framework for building smart cities: Lessons from seoul and san francisco. Technological Forecasting and Social Change, 89:80–99. Liberium (2012). http://www.libelium.com/products/waspmote. 22/10/2016. Marchal, V., Dellink, R., van Vuuren, D., Clapp, C., Château, J., Lanzi, E., Magné, B., and van Vliet, J. (2012). Oecd environmental outlook to 2050: the consequences of inaction. RPF (2012). https://www.raspberrypi.org/. 22/10/2016. Shelby, Z., Hartke, K., and Bormann, C. (2014). The constrained application protocol (coap). RFC 7252, RFC Editor. http://www.rfc-editor.org/rfc/rfc7252.txt. Xia, F., Yang, L. T., Wang, L., and Vinel, A. (2012). Internet of things. International Journal of Communication Systems, 25(9):1101.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
82
Anais do Encontro Regional de Computação e Sistemas de Informação
Interface para Aquisic¸ao ˜ de Dados da Variac¸ao ˜ do N´ıvel ´ d’Agua do Igarap´e do Mindu´ Silas Farias F. Filho1 , Francisco de Assis P. Januario ´ 2 , Maria Betania ˆ L. Oliveira3 , 4 Andr´e Luiz Leturiondo Segundo 1,2
Fundac¸ao ˜ Centro de An´alise Pesquisa e Inovac¸ao ˜ Tecnologica ´ Faculdade Fucapi Caixa Postal 69075-351 – Manaus – AM – Brasil 1,3,4
Universidade do Estado do Amazonas – (UEA) Laboratorio ´ de Instrumentac¸ao ˜ Meteorologica ´ Caixa Postal 69065-020 – Manaus – AM – Brasil
{sfff.mtr, mloliveira, alls.mtr}@uea.edu.br, francisco.januario@fucapi.br
Abstract. This paper proposes the development of a system to measure the variation of the water level in the Igarap´e do Mindu. ´ For the prototype, hardware was developed that performs the collection and sending of information, and software, developed for the Web platform, which presents the data in the form of graphs and tables. This system helps to minimize the response time in case of eminent floods caused by meteorological events. The results were consistent, showing that it is possible to effectively follow the variation of the water body level, relating the variations in the height of the water column in the Mindu´ igarap´e with rain events, from the developed prototype. Resumo. Este artigo propoe ˜ o desenvolvimento de um sistema de medic¸ao ˜ da variac¸ao ˜ do n´ıvel de a´ gua no Igarap´e do Mindu. ´ Para o prototipo, ´ foi desenvolvido um hardware que realiza a coleta e envio das informac¸oes, ˜ e um software, desenvolvido para a plataforma Web, que apresenta os dados na forma de graficos ´ e tabelas. Este sistema contribui para minimizar o tempo de resposta em caso de enchentes eminentes causadas por eventos meteorologicos. ´ Os resultados foram consistentes, mostrando que e´ poss´ıvel acompanhar efetivamente a variac¸ao ˜ do n´ıvel do corpo d’agua, ´ relacionando as variac¸oes ˜ na altura da coluna da a´ gua no igarap´e do Mindu´ com os eventos de chuva, a partir do prototipo ´ desenvolvido.
1. Introduc¸ao ˜ As cheias urbanas s˜ao um dos maiores problemas que precisam ser enfrentados pelas cidades. Seus preju´ızos s˜ao inumeros, ´ afetando diversas facetas da vida urbana, interferindo com os setores de habitac¸ao, ˜ transporte, saneamento, saude ´ publica, ´ entre outros [Rezende et al. 2013]. O crescimento populacional das cidades amazonicas ˆ nos u´ ltimos anos proporcionou uma ocupac¸ao ˜ r´apida e perigosa de muitas a´ reas vulner´aveis a eventos hidrometeorologicos ´ extremos. Da´ı a importˆancia de monitoramento de pequenos rios, conhecidos Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
como igarap´es, que cruzam as cidades da regi˜ao. Tais corpos d’ a´ gua podem causar maiores impactos aos seres humanos do que grandes rios, que possuem uma resposta lenta e previs´ıvel a tais evento [Filizola and Oliveira 2012]. Segundo [Costa et al. 2008], dentre as bacias hidrogr´aficas existentes na cidade de Manaus, como os igarap´es do Quarenta, do Bind´a, do Passarinho, o de maior expressividade e´ a bacia do Mindu. ´ Em geral, a bacia e´ territorializada por classes sociais bastante diversificadas, que v˜ao do mais pobre ao mais abastado, desde condom´ınios de luxo at´e palafitas dentro dos cursos d’´agua [Cassiano and Costa 2012]. A bacia do Igarap´e do Mindu´ corta porc¸oes ˜ bastante impermeabilizadas da cidade. A plan´ıcie de inundac¸ao ˜ apresenta-se com trechos de floresta preservada e tamb´em trechos onde o canal natural fica recoberto por concreto, o que aumenta sensivelmente, o potencial de extravasamento do leito fluvial. Tais condic¸oes ˜ ambientais, podem gerar consequˆencias dr´asticas em caso de eventos extremos de precipitac¸ao ˜ [Filizola and Oliveira 2012]. As a´ reas no entorno da bacia do Mindu´ s˜ao em geral afetadas pelas inundac¸oes, ˜ devido as precipitac¸oes ˜ e pelos deslizamentos de terra. A an´alise da situac¸ao ˜ de risco nesse trecho pode subsidiar pol´ıticas publicas ´ para prevenc¸ao ˜ de futuros eventos, bem como contribuir para obras de infra-estrutura adequadas a` dinˆamica pr´e-existente [Cassiano and Costa 2012]. Al´em disso, a bacia hidrogr´afica, dentro de meio urbano, e´ um forte componente das paisagens, gerando qualidade de vida e agregando valor, justificando, por esses e outros benef´ıcios, seu monitoramento e manutenc¸ao ˜ [Lacoste 2005]. No per´ıodo de 2010 a` 2015, o projeto Geopictures nazianobetania, realizava as medic¸oes ˜ do n´ıvel d’´agua igarap´e do Mindu, ´ as medic¸oes ˜ eram realizadas de forma manual, que consistia no deslocamento de um operador at´e o local da medic¸ao, ˜ em dois momentos do dia, pela manh˜a a` s 07:00, e no fim da tarde a` s 17:00 horas. Esse m´etodo de coleta de dados so´ e´ eficaz quando utilizado para medir a m´edia di´aria do n´ıvel do igarap´e, n˜ao sendo poss´ıvel medir a variac¸ao ˜ instantˆanea, tal como um valor m´aximo e m´ınimo de cota ou at´e mesmo visualizar o comportamento das a´ guas em um determinado per´ıodo de tempo quando ocorrer um evento meteorologico ´ de moderada, com intensidade de 4, 2 mm a 8, 4 mm de chuva, at´e extrema proporc¸ao, ˜ com intensidade maior que 18, 3 mm de chuva [Espinoza 2014]. Al´em disso, ainda havia a dificuldade causada pela fragilidade do instrumento de medic¸ao, ˜ havendo situac¸oes ˜ onde, devido a danificac¸ao ˜ das r´eguas ocasionadas pela intensidade da corrente de a´ gua durante eventos de chuva, fosse imposs´ıvel coletar os dados. Este trabalho tem por finalidade propor um sistema que realiza a medic¸ao, ˜ em tempo real, da variac¸ao ˜ de n´ıvel da a´ gua. Um prototipo ´ foi desenvolvido, para o sistema, sendo constitu´ıdo de um hardware que realiza a coleta e envio dos dados para um banco de dados, e de um software que realiza o processamento e apresentac¸ao ˜ das informac¸oes ˜ na forma de gr´aficos e tabelas. Este artigo est´a organizado como segue: na Sec¸ao ˜ 2 e´ apresentada a metodologia utilizada no desenvolvimento do prototipo ´ do sistema. Na Sec¸ao ˜ 3, s˜ao apresentados os testes realizados e discuss˜ao dos resultados obtidos. Por fim, a conclus˜ao e trabalhos futuros s˜ao apresentados na Sec¸ao ˜ 4.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
84
2. Metodologia O prototipo, ´ desenvolvido neste trabalho, utiliza o sensor ultrassonico ˆ LV-MaxSonarEZ, para capturar as leituras das medic¸oes ˜ realizadas [LV MaxSonarEZ Series 2015]. Para o controle do sistema foi usado o microcontrolador de alto desempenho e baixo R AVR , R o consumo de energia, da fam´ılia de microcontroladores de 8-Bit ATMEL ATmega328P [Atmel 2015]. Para realizar o envio dos dados, foi utilizado o controlador de Ethernet ENC28J60, com uma interface perif´erica serial (SPI, do inglˆes Serial Peripheral Interface) [Microchip 2001]. Para o armazenamento das informac¸oes ˜ enviadas pelo hardware foi utilizado o sistema gerenciador de banco de dados (SGBD) MySQL [MySQL 2000]. O software, no padr˜ao Web, foi desenvolvido utilizando a linguagem Java [Oracle 2010] O diagrama do modelo funcional proposto e´ visualizado na Figura 1.
Figura 1. Arquitetura de integrac¸ao ˜ dos principais componentes.
Fonte: Proprio ´ autor 2.1. Sensor-Ultrassonico ˆ
Figura 2. Ilustrac¸ao ˜ da aplicac¸ao. ˜
Fonte: Proprio ´ autor Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
85
Sensores ultrassonicos ˆ utilizam frequˆencias acima de 100 kHz para detectar objetos em uma variedade de ambientes. Sensores ultrassonicos ˆ medem o intervalo de tempo que o som leva para ser transmitido e refletido de volta a partir de objetos proximos, ´ como mostrado na Figura 2. O LV-MaxSonar-EZ, detecta objetos a` distˆancia m´axima de 6, 45 m. Os formatos de sa´ıda de interface disponibilizados pelo sensor s˜ao: largura de pulso, tens˜ao analogica ´ e serial padr˜ao RS232. A distˆancia m´ınima relatada pelo sensor e´ de 15, 2 cm, n˜ao apresentando variac¸ao ˜ de valores para grandes alvos proximos ´ a esta distˆancia. A interface escolhida para o projeto foi a com sa´ıda de largura de pulso (PW). A partir do pino PW, o sensor envia a rajada de transmiss˜ao. Quando um alvo e´ detectado, o valor do pino PW vai para n´ıvel baixo, baseado no tempo em que o pino (PW) esteve em n´ıvel alto, e´ calculada a distˆancia entre o sensor e o alvo [LV MaxSonarEZ Series 2015]. 2.2. Microcontrolador ATmega328P O microcontrolador utilizado no desenvolvimento do prototipo, ´ foi o ATmega328P da Atmel. Possui encapsulamento PDIP (do inglˆes, Plastic Dual In Line Package), podendo ser montado em protoboard [Atmel 2015]. Possui alto desempenho baseado na arquitetura RISC, combinando com uma memoria ´ flash de 32 kB, interface SPI, com capacidade de leitura-enquanto-escreve. Possui 1 kB de memoria ´ do tipo EEPROM, 2 kB de memoria ´ do tipo SRAM, 23 pinos de entrada e sa´ıda I/O (do inglˆes, Input/Output) e tens˜ao de operac¸ao ˜ na faixa de 1, 8 V a` 5, 5 V. A Figura 3 mostra a pinagem do ATmega328p.
Figura 3. Pinagem do ATmega328p.
Fonte: Atmel 2015 A func¸ao ˜ do microcontrolador e´ controlar o funcionamento do sistema, determinando qual a distˆancia medida pelo sensor ultrassonico, ˆ enviando os dados, atrav´es do controlador Ethernet ENC28J60, para o banco de dados. 2.3. Controlador Ethernet ENC28J60 O controle Ethernet ENC28J60 incorpora um conjunto de esquemas de filtros para limitar a quantidade de pacotes que realmente necessitam ser processados. Possui um modulo ´ de Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
86
memoria ´ de acesso direto DMA (do inglˆes, Direct Memory Access) dedicado, que permite maior vaz˜ao de dados, e uma unidade de hardware para c´alculo do checksum para detecc¸ao ˜ de erro, utilizada em diversos protocolos de rede. A comunicac¸ao ˜ com um controlador host, como um microcontrolador, e´ implementada via pino de interrupc¸ao ˜ e interface SPI a uma velocidade superior a 20 MHz [Microchip 2001]. Al´em da conex˜ao do microcontrolador com ENC28J60. O ENC28J60 necessita de alguns componentes b´asicos para seu funcionamento, como um transformador e um conector RJ45. Um conector especial RJ45 que existe no mercado, que j´a vem com o circuito do transformador e LEDs embutidos, e´ o HanRun HR911105A [Hanrun 2009], este foi utilizado na confecc¸ao ˜ do circuito. 2.4. Prototipo ´ A Figura 4 mostra o esquema el´etrico do hardware do prototipo, ´ desenvolvido na ferramenta Proteus 8 Professional.
Figura 4. Esquema eletrico ´ montado no Proteus 8 Professional.
Fonte: Proprio ´ Autor Para regularizar a tens˜ao do microcontrolador Atmega328P o circuito escolhido foi 7805 e para o ENC28j60 foi escolhido o LM317T [Wendling 2009], todos os reguladores possuem o encapsulamento TO-220 e est˜ao devidamente polarizados conforme os fabricantes. Para compatibilizar a tens˜ao de sa´ıda do ENC28j60 com a entrada do ATmega328p foi utilizado o componente 74HC08 [nexperia 2015], que realiza o level shifting da tens˜ao 3.3 V para 5 V. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
87
A Figura 5 mostra o modelo 3D da placa com os componentes espacialmente distribu´ıdos.
Figura 5. Prototipo ´ funcional do hardware.
Fonte: Proprio ´ Autor Para a alimentac¸ao ˜ do circuito foi utilizado um painel solar policristalino de 18 V / 50 W [System 2012] , um controlador de carga PWM solar autom´atico de 10 A com 12 V /24 V [Solar 2014] e uma bateria de 12 V / 7 Ah [Moura 2015]. O circuito consome em m´edia 180 mA, gerando assim uma autonomia da bateria em carga m´axima de aproximadamente 38 horas. 2.5. Banco de Dados Para o armazenamento das informac¸oes ˜ recebidas pelo hardware foi utilizado o banco de dados MySQL, que e´ um servidor e gerenciador de banco de dados (SGBD) relacional, projetado para trabalhar com aplicac¸oes ˜ de pequeno a` grande porte [Milani 2007]. Foi criado o diagrama de entidade relacional (ER), que consiste de duas tabelas: leitores e leituras, como mostra a Figura 6
Figura 6. Modelo entidade e relacionamento
Fonte: Proprio ´ Autor A tabela leitores armazena o identificador (ID) do hardware que est´a coletando e enviando a informac¸ao, ˜ permitindo dessa forma que mais de um hardware possa ser Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
88
utilizado para coleta de informac¸oes. ˜ A tabela leituras armazena no campo leitura o valor do sensor, ou seja, a informac¸ao ˜ da variac¸ao ˜ do n´ıvel d´agua medida em determinado instante de tempo. A informac¸ao ˜ da hora de leitura do sensor e´ armazenada no campo data.
3. Testes e Resultados Foram realizados testes em laboratorio ´ para testar a funcionalidade de todo o sistema, observando o comportamento do sensor com pequenas variac¸oes ˜ do n´ıvel d’´agua. Como metodologia utilizada nos testes de laboratorio, ´ o hardware foi colocado a` uma altura acima do recipiente, como mostrado na Figura 7, e realizadas medic¸oes ˜ da distˆancia entre o sensor ultra-sonico ˆ e a a´ gua, com uma r´egua, e em seguida, essas medic¸oes ˜ foram comparadas com as leituras do sensor.
Figura 7. Teste em laboratorio ´
Fonte: Proprio ´ Autor A a´ gua foi sendo despejada no recipiente para simular as variac¸oes, ˜ observando-se uma margem de erro de 1,5 cm para mais ou para menos, dentro do limite especificado pelo fabricante. Para medida de variac¸ao ˜ de n´ıvel ou de cota de igarap´es esse erro e´ irrelevante, pois, o volume de a´ gua e´ menor do que o de rios. Por exemplo, no caso do rio Negro, cada cent´ımetro passa a ser relevante, pois o volume de a´ gua para fazer subir o n´ıvel a cada cent´ımetro e´ maior do que em igarap´es, e a resposta do rio para variac¸oes ˜ e´ muito lenta. Os testes em campo foram realizados entre os dias 12/04/2017 a` 14/04/2017 ininterruptamente. O equipamento foi instalado na parte da zona urbana da cidade de Manaus, em uma ponte que corta a Av Darcy Vargas, como mostrado na Figura 8. A ponte fica proximo ´ a Escola Superior de Tecnologia (EST) da Universidade Estadual do Amazonas (UEA). Em um primeiro momento foi realizado uma s´erie de medidas pelo sensor, sendo definido um n´ıvel zero a partir dessas medidas iniciais. Entre os dias 12/04/2017 e Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
89
Figura 8. Equipamento Instalado para medic¸oes ˜ no igarape´ do Mindu´
Fonte: Proprio ´ Autor 13/04/2017 n˜ao ocorreu nenhum evento meteorologico ´ que pudesse elevar o n´ıvel do igarap´e do Mindu, ´ mas entre 12:30 h e 13:00 h do dia 14/04/2017 choveu o acumulado de 13, 2 mm, segundo a estac¸ao ˜ meteorologica ´ da EST, como mostrado na Figura 9. Com essa precipitac¸ao ˜ pluviom´etrica, foi poss´ıvel observar a dinˆamica da variac¸ao ˜ do n´ıvel do igarap´e Mindu. ´
Figura 9. Grafico ´ de precipitac¸ao ˜ entre 10:00 e 15:00 horas do dia 14/04/2017.
Fonte: Estac¸ao ˜ meteorologica ´ da EST/UEA Como pode-se observar na Figura 9, houve ocorrˆencias de precipitacoes ˜ menores entre os hor´arios de 10h30 e 11h da manh˜a, havendo um pico com grande volume registrado entre os hor´arios de 12h30 e 13h da tarde. Sendo possivel observar o comportamento da variac¸ao ˜ do n´ıvel do Igarap´e em relac¸ao ˜ a precipitac¸ao ˜ ocorrida nesses hor´arios no gr´afico da Figura 10. A Figura 10, gerada pelo software do prototipo, ´ mostra a variac¸ao ˜ do igarap´e do Mindu, ´ entre as 13:00 h e 14:00 h do dia 14/04/2017. No mesmo dia, entre 14:00 h e 15:00 h, ocorrem variac¸oes ˜ no n´ıvel do igarap´e, como mostrado na Figura 11. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
90
. Figura 10. Grafico ´ da variac¸ao ˜ do n´ıvel do igarape´ do Mindu´ entre 13:00 e 14:00 horas do dia 14/04/2017.
Fonte: Proprio ´ autor
Figura 11. Grafico ´ da variac¸ao ˜ do n´ıvel do igarape´ do Mindu´ entre 14:00 e 15:00 horas do dia 14/04/2017
Fonte: Proprio ´ Autor
4. Conclusoes ˜ e trabalhos futuros O trabalho realizado alcanc¸ou o objetivo esperado, que consistia no desenvolvimento de um prototipo ´ que pudesse medir a variac¸ao ˜ do n´ıvel do igarap´e do Mindu, ´ permitindo observar a dinˆamica dos pequenos corpos d’´agua com relac¸ao ˜ a eventos meteorologicos. ´ Os resultados obtidos, nos testes experimentais do prototipo, ´ foram satisfatorios ´ em relac¸ao ˜ ao que foi proposto. Os gr´aficos mostraram claramente que logo apos ´ a chuva, o n´ıvel do igarap´e comec¸a a variar at´e chegar a um valor m´aximo, estabilizando em torno de 120 cm. Para trabalhos futuros o hardware pode ser melhorado com implementac¸ao ˜ de um sistema 3G, possibilitando o envio dos dados a um servidor na web, permitindo assim que sejam implementados sistemas de alerta para a´ reas de maiores riscos. Levando em considerac¸ao ˜ que eventos meteorologicos ´ extremos podem trazer muitos preju´ızos para as cidades e sua populac¸ao, ˜ este projeto contribui, atrav´es de tecnologia de baixo custo, para monitorar, de forma sistem´atica, outros pontos de alagamento da cidade de Manaus. Finalmente, deve-se ressaltar que al´em do interesse cient´ıfico e do servic¸o que esse tipo de plataforma de monitoramento pode oferecer a` populac¸ao, ˜ o melhor conhecimento da ocorrˆencia de eventos meteorologicos ´ extremos e seus impactos, e´ importante para adoc¸ao ˜ de pol´ıticas publicas ´ que atendam a` s novas demandas de metropoles ´ como a cidade de Manaus. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
91
Referˆencias Atmel, C. (2015). Datasheet atmega48a/pa/88a/pa/168a/pa/328p. Cassiano, K. R. M. and Costa, R. C. (2012). An´alise geogr´afica de a´ reas de risco em bacias hidrogr´aficas urbanizadas: a bacia do mindu em manaus (am). Territorium, (19):155–160. Costa, R. C., Cassiano, K. R. M., Silveira, A., Cruz, D. R., and Costa, F. L. d. (2008). Igarap´es de manaus: Ocupac¸ao, ˜ impactos e grau de risco. XV Encontro Nacional de Geografos, ´ (1). Espinoza, N. (2014). Caracterizac¸ao ˜ do eventos de precipitac¸ao ˜ resgistrados na estac¸ao ˜ meteorologica ´ da est/uea em manaus. Monografia (Bacharel em Meteorologia), UEA (Universidade da Estado do Amazonas), Manaus, Brasil. Filizola, N. and Oliveira, M. B. L. (2012). Variabilidade hidrologica ´ multiescala na amazonia. ˆ Ciˆencia e Ambiente, 44(1):59–70. Hanrun (2009). Dispon´ıvel em http://www.kosmodrom.com.ua/pdf/ HR911105A.pdf. Acessado em 22 Abril de 2017. Lacoste, Y. (2005). Dicionario ´ de Geografia: da geopol´ıtica a` s paisagens. Teorema. LV MaxSonarEZ Series, D. (2015). Maxbotix technology inc. Microchip, T. (2001). Datasheet enc28j60. Milani, A. (2007). MySQL-guia do programador. Novatec Editora. Moura, B. (2015). Dispon´ıvel em http://www.megadistributor.com.ar/ pdf/CATALOGO_VRLA_12JUL13.pdf. Acessado em 22 Abril de 2017. MySQL, A. (2000). Mysql documentation. Dispon´ıvel por WWW em www.mysql. com/doc. nexperia (2015). Dispon´ıvel em http://assets.nexperia.com/documents/ data-sheet/74HC_HCT08.pdf. Acessado em 22 Abril de 2017. Oracle, J. (2010). Dispon´ıvel em http://www.oracle.com/technetwork/ java/javase/downloads/index.html. Acessado em 22 Abril de 2017, 8. Rezende, O. M., Miguez, M. G., and Verol, ´ A. P. (2013). Manejo de a´ guas urbanas e sua relac¸ao ˜ com o desenvolvimento urbano em bases sustent´aveis integradas–estudo de caso dos rios pilar-calomb´e. Duque de Caxias/RJ. Revista Brasileira de Recursos H´ıdricos, 18(2):149–163. Solar, O. (2014). Dispon´ıvel em http://www.morningstarcorp.com/ wp-content/uploads/2014/02/ProStar-Manual-Portuguese.pdf. Acessado em 22 Abril de 2017. System, S. (2012). Dispon´ıvel em http:// solarsystemsphilippines.com/wp-content/uploads/2012/09/ Solar-Panel-50W-Poly-Data-Sheet.pdf. Acessado em 22 Abril de 2017. Wendling, M. (2009). Ci reguladores de tens˜ao. UNESP. Sao ˜ Paulo.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
92
Anais do Encontro Regional de Computação e Sistemas de Informação
Algoritmos de Agrupamento Aplicados ˜ de Precipitac¸oes ˜ a` Classificac¸ao ˆ Emanuel Oliveira da Silva, Elloa´ B. Guedes, Maria Betania Leal de Oliveira 1
Escola Superior de Tecnologia Universidade do Estado do Amazonas Av. Darcy Vargas, 1200 – Manaus – Amazonas {eos.eng, ebgcosta, mloliveira}@uea.edu.br
Abstract. This work aims at proposing a rainfall classification criterion for the city of Manaus based on the adoption of clustering algorithms. In order to achieve such result, it was considered data from 2010 to 2016, adoption of 5 different clusters of events and the use of k-means and k-medoids algorithms. The results obtained with k-means, in particular, were more effective in capturing the higher frequency of low intensity rainfall events as well as the lower frequency of extreme rainfall events. The results obtained can be adoted as rainfall classification criterion for Manaus. Resumo. Este trabalho tem por objetivo colaborar na proposic¸ao ˜ de um criterio de classificac¸ao ´ ˜ de precipitac¸oes ˜ para a cidade de Manaus baseado na utilizac¸ao ˜ de algoritmos de agrupamento. Para tanto, considerou-se dados de eventos de precipitac¸ao ˜ dentre os anos de 2010 e 2016, a utilizac¸ao ˜ de 5 categorias de eventos e a adoc¸ao ˜ dos algoritmos k-means e k-medoids. O algoritmo k-means, em particular, foi mais efetivo em capturar a maior frequencia ˆ de eventos de baixa intensidade e a esporadicidade de eventos extremos. Os resultados obtidos podem ser utilizados para classificac¸ao ˜ de precipitac¸oes ˜ na cidade em questao. ˜
˜ 1. Introduc¸ao ˜ ´ Uma das atribuic¸oes da Meteorologia e´ propor metodos para classificac¸ao ˜ de ˜ de acordo com o grau de precipitac¸oes, ˜ os quais visam criar categorias para a precipitac¸ao intensidade. Esta e´ uma tarefa extremamente importante, pois estas categorias podem au´ ˜ de alagamentos ate´ a administrac¸ao ˜ xiliar em diversas outras analises, desde a prevenc¸ao ´ ˆ ˜ e´ uma tarefa facil. ´ de recursos hıdricos. Apesar da sua importancia, esta nao Conceber ˜ de precipitac¸oes ˜ envolve aspectos meteorologicos, ´ uma classificac¸ao os quais possuem ˆ ´ topologia, localizac¸ao, ˜ etc. Levando diversos fatores de natureza dinamica, e tambem ˜ em conta estes diversos fatores, que compoem caracter´ısticas extremamente particula˜ se conhece uma metodologia geral para criac¸ao ˜ de sistemas de classificac¸ao ˜ de res, nao ˜ precipitac¸oes. ˜ possui um sistema de classificac¸ao ˜ de A cidade de Manaus, em particular, nao ˜ ˜ em Manaus sao ˜ abundantes, nao ˜ uniprecipitac¸oes. Sioli afirma que as precipitac¸oes formes e caracterizam um fator importante que molda o clima na cidade [Sioli 1991]. ˆ A maior parte das chuvas em Manaus e´ resultado da influencia de muitos sistemas de ˜ sendo importante ressaltar que a cidade possui um clima de caracter´ısticas precipitac¸oes, tipicamente equatorais, com muita umidade e calor [da Silva 2012]. Considerando este ˜ e proposic¸ao ˜ de um sistema de classificac¸ao ˜ de precipitac¸oes ˜ para contexto, a concepc¸ao ´ esta cidade e´ uma tarefa necessaria, embora desafiadora. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Dada a lacuna observada, o objetivo deste trabalho e´ apresentar resultados de algo˜ ˜ de ritmos de agrupamento, que seguem o paradigma nao-supervisionado, na proposic¸ao ´ ˜ de precipitac¸oes ˜ em Manaus. Foram utilizados dados de 2371 um metodo de classificac¸ao ˜ registrados na cidade entre os anos de 2010 e 2016 e, como resuleventos de precipitac¸ao ´ ˜ dos algoritmos tado, foram propostos dois criterios diferentes, considerando a utilizac¸ao ´ foi feita uma analise ´ k-means e k-medoids. Tambem comparativa entre os resultados ob˜ tidos a partir destas duas abordagens, onde foi poss´ıvel identificar uma melhor adequac¸ao ´ proposto pelo k-means. do criterio Para apresentar os resultados alcanc¸ados, este trabalho esta´ organizado como se˜ teorica ´ gue: uma fundamentac¸ao sobre agrupamento e sobre os algoritmos utilizados e´ ˜ 2; uma visao ˜ geral sobre o conjunto de dados e suas caracter´ısticas apresentada na Sec¸ao ˜ 3; os resultados das abordagens propostas e´ apresentado na Sec¸ao ˜ e´ descrita na Sec¸ao ´ inclui uma analise ´ ˜ finais sao ˜ 4, que tambem comparativa; e, por fim, as considerac¸oes ˜ 5. apresentadas na Sec¸ao
2. Agrupamento ˜ anal´ıtica, a Aprendizagem de Para problemas em que nao se conhece uma soluc¸ao ´ da Inteligencia ˆ ˜ de soluc¸oes ˜ Maquina (AM), subarea Computacional, permite a elaborac¸ao ´ ´ ˜ de modelos e metodos ´ empıricas com a utilizac¸ao computacionais que aprendem a par˜ de aumentar a tir de dados. Neste contexto, o termo “aprender” adquire uma conotac¸ao ˜ a` um momento anterior [Witten et al. 2011]. performance sobre uma tarefa em relac¸ao ˜ a meta e´ Na AM consideram-se as tarefas de previsao ˜ e de descric¸ao. ˜ Na previsao, encontrar um modelo, a partir dos dados de treinamento, que seja capaz de prever resulta˜ conhecidas. Ja´ nas tarefas de descric¸ao, ˜ por sua vez, dos para entradas anteriormente nao a meta e´ explorar ou descrever um conjunto de dados. Para tanto, segue-se o paradigma ˜ espontanea ˆ ˜ ou de aprendizado nao de padroes ˜ supervisionado, cuja premissa e´ a detecc¸ao ´ estruturas a partir dos proprios dados [Faceli et al. 2015]. ˜ segundo a qual O agrupamento, em particular, e´ um tipo de tarefa de descric¸ao, ˜ agrupados de acordo com sua similaridade. Em um dado grupo, chamado os dados sao de cluster, os dados ali contidos compartilham alguma caracter´ıstica ou propriedade re´ ˜ [Faceli et al. 2015]. Pode-se tambem ´ levante para o domınio do problema em questao ˜ do conjunto de dados em clusters de tal maneira ver o agrupamento como uma partic¸ao ˜ associadas a um que uma certa medida de similaridade entre qualquer par de observac¸oes ˜ de custo [Haykin 2009]. mesmo cluster minimiza uma certa func¸ao Formalmente, entende-se por cluster um conjunto Ck = {x1 , x2 , . . . , xnk } com ˜ de objetos proximos, ´ nk objetos, que pode ser visto como uma colec¸ao ou que satisfazem ˜ ou que minimizam uma certa func¸ao ˜ de custo. O centroide alguma relac¸ao, do cluster Ck , ´ ˜ contidas naquele denotado por x(k) , e´ o objeto representativo que resume as informac¸oes cluster, que e´ dado por: x(k) =
1 X xi . nk x ∈C i
(1)
k
˜ de um agrupamento contempla os passos a seguir: De maneira geral, a realizac¸ao ˜ e Selec¸ao ˜ de Caracter´ısticas. Extrair e selecionar as caracter´ısticas 1. Extrac¸ao mais representativas do conjunto de dados; Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
94
˜ 2. Algoritmo de Agrupamento. Projetar ou escolher o algoritmo de clusterizac¸ao ˆ de acordo com as caracter´ıstias do problema considerado. Medidas de distancia e ˜ as bases para a construc¸ao ˜ desses algoritmos. Para caracter´ısticas similaridade sao ˆ ˜ entre os dados. Ja´ quantitativas, a distancia e´ prefer´ıvel para reconhecer relac¸oes a similaridade e´ prefer´ıvel quando se lida com caracter´ıstica qualitativas; ˜ dos Resultados. Avaliar o resultado da clusterizac¸ao ˜ e julgar os resul3. Avaliac¸ao tados fornecidos pelo algoritmo; ˜ dos Resultados. Fornecer uma explicac¸ao ˜ pratica ´ 4. Explicac¸ao para os resultados ˜ [Xu and Tian 2015]. obtidos na clusterizac¸ao ˜ ao algoritmo de agrupamento, necessario ´ no Passo 2, a literatura dispoe ˜ Em relac¸ao ˜ ´ de diversas soluc¸oes. De maneira geral, cada algoritmo e´ baseado em um criterio de ´ agrupamento, usa uma medida de proximidade e um metodo de busca para encontrar ´ de agrupamento uma estrutura adequada que descreva os dados, de acordo com o criterio adotado [Faceli et al. 2015]. Para os fins deste trabalho, os algoritmos k-means e k˜ detalhados nas subsec¸oes ˜ a seguir. medoids foram considerados, os quais sao 2.1. Algoritmo k-means ´ Dado um numero inteiro k, o algoritmo k-means particiona um conjunto de dados fornecidos em k clusters. Este algoritmo segue a abordagem particional e visa minimizar ´ ´ ˜ o erro quadratico, metrica considerada. Os clusters produzidos por este algoritmo sao ´ compactos, de formato esferico e podem ser desbalanceados. Uma ideia geral do algoritmo k-means e´ dada como segue: seleciona-se aleatoria˜ os centroides ´ mente k objetos do conjunto de dados, que serao iniciais dos k clusters. Em ˜ iterativa, cada elemento do conjunto de dados e´ seguida, por um processo de realocac¸ao ´ ˜ os centroides ´ ˜ recalculados. Este processo associado ao cluster mais proximo. Entao, sao ˜ haja mais alterac¸ao ˜ nos centroides ´ continua ate´ que nao [Faceli et al. 2015]. 2.2. Algoritmo k-medoids ´ Assim como o k-means, o algoritmo k-medoids segue a abordagem particional e tambem ´ ˆ ´ neste algoritmo considera-se encontrar visa minimizar uma metrica de distancia. Porem, uma quantidade k de medoids, isto e´ , identificar k elementos do conjunto de dados cuja ´ ´ dissimilaridade media dos demais pontos e´ mınima. De maneira geral, o algoritmo k-medoids funciona como segue: seleciona-se aleatoriamente k pontos do conjunto de dados como sendo medoids. Em seguida, para cada medoid m e cada elemento do conjunto de dados d, computa-se o custo total desta ˜ isto e´ , a media ´ configurac¸ao, de dissimilaridade de d a todos os dados associados a m. ˜ o medoid o como o menor custo para esta configurac¸ao. ˜ Os passos em Seleciona-se entao ˜ sao ˜ repetidos ate´ que nao ˜ haja mais alterac¸oes ˜ nos medoids. questao
´ 3. Analise do Conjunto de Dados ´ ˜ MeteoO conjunto de dados considerado foi obtido do Laboratorio de Instrumentac¸ao ´ rologica (LabInstru) da Escola Superior de Tecnologia da Universidade do Estado do ´ todas as ocorrencias ˆ ˜ enAmazonas. Este conjunto contem de eventos de precipitac¸ao ´ de in´ıcio, horario ´ de tre os anos de 2010 e 2016, nos quais foi registrada a data, horario ´ ˜ maxima ´ ˜ total. termino, volume de precipitac¸ao em 10 minutos e volume de precipitac¸ao ˜ registrados. O conjunto de dados possui 2371 eventos de precipitac¸ao ´ ´ Uma analise mais detalhada dos dados se fez necessaria. Inicialmente, derivou˜ representado em minutos, que especifica o intervalo de tempo de se o atributo durac¸ao, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
95
ˆ ˆ ˜ Em seguida, considerando os demais dados disocorrencia do fenomeno de precipitac¸ao. ´ pon´ıveis no conjunto de dados, foi realizada a estatıstica descritiva, sintetizada na Tabela ´ ˜ ha´ uma homogeneidade 1. A partir da analise desta tabela, foi poss´ıvel evidenciar que nao ˜ das variaveis ´ ˜ e cauda longa. Esna distribuic¸ao consideradas, possuindo grande dispersao ˜ tas considerac¸oes podem ser mais facilmente visualizadas na Figura 1, na qual e´ poss´ıvel ´ ˜ e durac¸ao. ˜ visualizar os histogramas das variaveis precipitac¸ao Tabela 1: Estat´ıstica descritiva do conjunto de dados.
Mediana
Media ´
Desvio Padrao ˜
Mınimo ´
Maximo ´
0.8 0.4
5.60 2.22
11.79 3.62
0.2 0.2
125.6 26.2
10
40.77
63.46
10
660
Precipitac¸ao ˜ (mm) Precipitac¸ao ˜ Maxima ´ em 10 min (mm) Durac¸ao ˜ (min)
Figura 1: Histogramas dos dados. O eixo x denota o volume em mil´ımetros e o eixo y ˆ denota as ocorrencias. ˜ maxima ´ (a) Precipitac¸ao em 10 min.
(b) Durac¸ao. ˜
˜ a` precipitac¸ao ˜ maxima ´ Em relac¸ao em 10 minutos, os dados mostram uma grande ´ e´ poss´ıvel quantidade de eventos de pouco volume. Vale ressaltar que nos dados tambem ˆ identificar a existencia de uma pequena quantidade de eventos de grande volume de ˜ em 10 minutos. A mesma analogia pode ser feita com os dados de durac¸ao. ˜ precipitac¸ao ˜ maxima ´ ˜ por A precipitac¸ao em 10 minutos foi escolhida em detrimento da precipitac¸ao ˜ mais real´ıstica da intensidade. Por exemplo, se um volume de 26 mm fornecer uma visao ˜ muito intensa, com potencial de ocorre em apenas 10 minutos, tem-se uma precipitac¸ao ´ se uma precipitac¸ao ˜ de 100 mm ocorrer ao longo de um dia, a causar estragos. Porem, ˜ diminuindo intensidade da mesma estara´ dispersa no intervalo de tempo de sua durac¸ao, o pontecial de danos. ´ ´ foram realizadas, com o objetivo de identifiOutras analises dos dados tambem ˆ ˜ ˜ entre a car o turno de maior ocorrencia de precipitac¸oes, avaliar o grau de correlac¸ao ˜ e a durac¸ao, ˜ dentre outras. Ao apresentar as analises ´ precipitac¸ao realizadas aos pesqui˜ destes para sadores do LabInstru, utilizando conhecimentos da Meteorologia, a sugestao ˜ dos eventos de precipitac¸ao ˜ em Manaus contemplou a existencia ˆ a classificac¸ao de 5 clas´ ainda restava ses de eventos: Fraco, Moderado, Forte, Muito Forte e Extremo. Porem, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
96
˜ dos eventos de precipitac¸ao ˜ segundo o algoritmo k-means. Tabela 2: Classificac¸ao
Intervalos
˜ Classificac¸ao
[0.2, 1.6] Fraco [1.8, 4.6] Moderado [4.8, 8.6] Forte [8.8, 14.6] Muito Forte [15.0, 26.4] Extremo
˜ utilizando saber como estas classes seriam organizadas. As propostas de classificac¸ao, ˜ mostradas a seguir. algoritmos de agrupamento, sao
˜ em Manaus 4. Agrupamentos de Eventos de Precipitac¸ao ˜ da cidade de Manaus no per´ıodo de 2010 a 2016 foram toOs eventos de precipitac¸ao ˜ de uma classificac¸ao ˜ para eventos de precipitac¸ao ˜ na mados como base para a criac¸ao ˆ ˜ (Fraco, Modecidade. Considerou-se a existencia de 5 classes de eventos de precipitac¸ao rado, Forte, Muito Forte e Extremo) correspondendo a` intensidade do evento. ˜ previa ´ A identificac¸ao da quantidade de classes dos eventos, realizada por meio de ˜ dos algoritmos de agrupamento considerados, especialistas, e´ essencial para a execuc¸ao ˆ k-means e k-medoids, pois estes demandam a quantidade de classses como parametro de entrada. ˜ do k-means 4.1. Abordagem 1: Utilizac¸ao Ao submeter o conjunto de dados ao k-means, considerando k = 5 clusters, obteve-se ˜ um evento sera´ os resultados mostrados na Tabela 2. De acordo com esta classificac¸ao, ˜ maxima ´ classificado como Moderado, por exemplo, se a precipitac¸ao em 10 min for de 1.8 mm a 4.6 mm. Em todos os clusters obtidos, foi poss´ıvel perceber que ha´ diferentes intervalos intra-cluster (diferenc¸a entre o limite superior e o limite inferior de cada cluster). Isto se ´ ˜ do conjunto de dados. O fato do k-means gerar deve ao numero de classes e a` distribuic¸ao ´ clusters compactos e´ um aspecto relevante para o domınio considerado, pois cada evento ˜ ira´ possuir uma u´ nica classe. de precipitac¸ao ´ Aplicando o criterio de agrupamento proposto ao conjunto de dados original, ´ obtem-se o resultado ilustrado na Figura 2. De acordo com o mesmo, aproximadamente 70% dos eventos foram agrupados como sendo da classe Fraco, o que significa que a ˜ ocorridos em Manaus possui volume entre 0.2 grande maioria dos eventos de precipitac¸ao ´ mm e 1.6 mm maximos em 10 minutos. Os eventos do tipo Extremo, embora de grande ˜ de baixa ocorrencia, ˆ intensidade, sao representando cerca de 2% do total de dados. ˜ do k-medoids 4.2. Abordagem 2: Utilizac¸ao ´ De maneira analoga a` abordagem anterior, o conjunto de dados foi submetido ao algoˆ ritmo k-medoids considerando a existencia de 5 classes diferentes para os eventos de ˜ Os resultados obtidos encontra-se apresentados na Tabela 3. precipitac¸ao. De acordo com o agrupamento gerado com o k-medoids, e´ poss´ıvel identificar um ˆ gap entre as classes Muito Forte e Extremo. Isto ocorreu em virtude da inexistencia de ˜ maiores que 14.0 e menores que 14.4 no conjunto de dados. eventos de precipitac¸ao Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
97
30
Volume Máximo 10min(mm)
25 20 15 10 5 0 5 Fraco
Moderado
Forte
Classificação
MuitoForte
Extremo
˜ dos eventos considerando o agrupamento gerado pelo k-means. Figura 2: Classificac¸ao ˜ dos eventos de precipitac¸ao ˜ segundo o algoritmo k-medoids. Tabela 3: Classificac¸ao
Intervalos
˜ Classificac¸ao
[0.2, 1.4] Fraco [1.6, 4.0] Moderado [4.2, 8.0] Forte [8.2, 14.0] Muito Forte [14.4, 26.4] Extremo
Assim como na abordagem anterior, o conjunto de dados original foi submetido ao agrupamento resultante do k-medoids, obtendo-se o resultado ilustrado na Figura 3. ´ 4.3. Analise Comparativa Comparando os agrupamentos gerados como os algoritmos k-means e k-medoids, ´ eposs´ ıvel notar algumas similaridades e diferenc¸as entre os agrupamentos gerados. Ambos os algoritmos resultam em agrupamentos com gaps. No caso do k-means, o gap reside entre as classes Muito Forte e Extremo. No caso do k-medoids, como men˜ se cionado, este gap reside entre as classes Muito Forte e Extremo. Idealmente, nao ˆ desejaria gaps entre os agrupamentos gerados, mas isto e´ uma consequencia dos dados dispon´ıveis. ˜ ˆ O agrupamento do k-means gerou um cluster com maior abrangencia para a classe ˆ Fraco do que o agrupamento gerado pelo k-medoids. A ˜comparac¸ao entre a abrangencia das demais classes varia entre os algoritmos. Em relac¸ao a` eventos da classe Extremo, o k-medoids considerou um intervalo mais abrangente que o k-means, fazendo com que mais eventos fossem agrupados nesta classe. ˆ As medidas de silhueta, que refletem a consistencia entre os objetos e os clusters Manaus, 25 a 27 de maio de 2017 a ISSN 2238-5096
98
30
Volume Máximo 10min(mm)
25 20 15 10 5 0 5 Fraco
Moderado
Forte
Classificação
MuitoForte
Extremo
Figura 3: Classificac¸ao ˜ dos eventos considerando o agrupamento gerado pelo k-medoids.
˜ associados e´ similar para os agrupamentos gerados pelo k-means e k-medoids, que estao sendo iguais a 0.75 e 0.74, respectivamente. ˆ Considerando a esporadicidade de eventos da classe Extremo e a alta frequencia de eventos da classe Fraco, o agrupamento gerado pelo k-means, quando comparado ´ real´ıstico, gerando um ao agrupamento gerado pelo k-medoids, reflete melhor o cenario ˜ que pode vir a ser amplamente adotado. agrupamento dos eventos de precipitac¸ao
˜ Finais 5. Considerac¸oes ˜ da cidade de Manaus coletados enConsiderando dados de eventos de precipitac¸ao ´ tre os anos de 2010 a 2016, o objetivo deste trabalho consistiu em propor criterios de ˜ de precipitac¸ao ˜ baseados em algoritmos de agrupamento. Inicialmente, apos ´ classificac¸ao ´ ´ ˜ com especialistas da a´ rea de Meteorologia, considerouuma analise estatıstica e discussao ˜ a existencia ˆ ˜ Fraco, Moderado, Forte, se entao de 5 categorias de eventos de precipitac¸ao: ´ disso, tambem ´ foi identificado que a precipitac¸ao ˜ maxima ´ Muito Forte e Extremo. Alem ˜ desses eventos. em 10 min seria o atributo mais adequado para classificac¸ao ˜ dos algoritmos de agrupaOs dados dispon´ıveis foram agrupados com a utilizac¸ao mento k-means e k-medoids. Como resultado de cada um desses algoritmos, foi poss´ıvel ´ de classificac¸ao ˜ de precipitac¸oes. ˜ ´ foi entao ˜ aplicado estabelecer um criterio Este criterio ˜ dos eventos fosse examinada. Com base ao conjunto de dados para que a distribuic¸ao ˜ do k-means, por abrannestes resultados, foi poss´ıvel perceber uma melhor adequac¸ao ger uma grande quantidade de eventos do tipo Fraco e capturar adequadamente a baixa ˆ frequencia de eventos do tipo Extremo. Em trabalhos futuros, almeja-se utilizar outros algoritmos de agrupamento para ´ ˜ eventualmente concebendo um criterio ´ criar novos criterios e efetuar outras comparac¸oes, ˜ de precipitac¸oes ˜ para a cidade de Manaus de natureza hıbrida, ´ de classificac¸ao resultado Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
99
˜ de diferentes algoritmos. Alem ´ disso, deseja-se conceber meios de prever da combinac¸ao ˆ ˜ dos preju´ızos que estes podem a ocorrencia de eventos extremos, visando a diminuic¸ao gerar.
Agradecimentos Os autores agradecem o apoio financeiro provido pela Universidade do Estado do Ama˜ zonas. O autor Emanuel Oliveira da Silva e´ bolsista do Programa de Apoio a` Iniciac¸ao ´ ˜ 2016 − 2017. Cientıfica da Universidade do Estado do Amazonas e FAPEAM edic¸ao
ˆ Referencias ˜ da precipitac¸ao ˜ no conforto do clima urbano da cidade de da Silva, D. A. (2012). Func¸ao Manaus. Revista Geonorte, 1(5):22–40. Faceli, K., Lorena, A. C., Gama, J., and de Carvalho, A. C. P. L. F. (2015). Inteligencia ˆ Artificial – Uma abordagem de aprendizado de maquina. Editora LTC, Rio de Janeiro. ´ Haykin, S. (2009). Neural Networks and Learning Machines. 3 edition. Sioli, H. (1991). Amazonia: Fundamentos da ecologia da maior regiao ˆ ˜ de florestas tropicais. Vozes, Manaus. Witten, I. H., Frank, E., and Hall, M. A. (2011). Data mining: practical machine learning tools and techniques. Elsevier, 3 edition. Xu, D. and Tian, Y. (2015). A comprehensive survey of clustering algorithms. Ann. Data. Sci., 2:165.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
100
Anais do Encontro Regional de Computação e Sistemas de Informação
Analise ´ de Expressoes ˜ Faciais para Interatividade com Personagens Digitais Alessandro B. da Costa, Carlos M. Figueiredo, John M. Silva, Thiago M. Rocha 1
Escola Superior de Tecnologia (EST) – Universidade do Estado do Amazonas (UEA) Av. Djalma Batista – 3578, Flores – Manaus, AM – Brasil. Caixa postal: 69055-035 2
Samsung Ocean Center – Samsung Av. Djalma Batista – 1200, Flores – Manaus, AM – Brasil. Caixa postal: 69055-035 {alessandro.barreto,john.silva}@oceanbrasil.com, {mauriciofigueiredo, tm.uea.2014}@gmail.com
Abstract. This article describes a case study focused on the interaction with digital characters, using a character called ”Kaio”, which, based on the automatic detection of facial expressions and classification of emotions, interacts with humans by classifying emotions and imitating expressions. As a result the tool is able to classify three emotions (sadness, anger and happiness). Resumo. Este artigo descreve um estudo de caso focado na interac¸ao ˜ com personagens digitais, utilizando um personagem proprio ´ denominado ”Kaio”, que baseado na detecc¸ao ˜ automatica ´ de expressoes ˜ faciais e classificac¸ao ˜ de emoc¸oes, ˜ este interage com humanos classificando emoc¸oes ˜ e imitando expressoes. ˜ Como resultado a ferramenta e´ capaz de classificar trˆes emoc¸oes ˜ (tristeza, raiva e felicidade).
1. Introduc¸ao ˜ Vivemos em um mundo cada vez mais conectado e imerso em ambientes repletos de dispositivos computadorizados. Tal fenomeno ˆ proporcionou o surgimento de estudos em temas como Computac¸ao ˜ Ub´ıqua e Pervasiva [Satyanarayanan 2001] e Internet das Coisas [Gubbi et al. 2013]. Desenvolvimentos nestes temas trazem como consequˆencia a necessidade cada vez maior de interac¸ao ˜ entre o ser humano com m´aquinas e dispositivos eletronicos. ˆ Novas formas de interac¸ao ˜ como uso de gestos [Mitra and Acharya 2007] e comandos de voz [Cohen et al. 2004] podem trazer mais agilidade e conforto para que o ser humano realize suas tarefas. Mas tem-se a preocupac¸ao ˜ em evitar que tais atividades sejam muito frias e monotonas. ´ O uso de interfaces homem-m´aquina que levem em considerac¸ao ˜ as emoc¸oes ˜ humanas vem sendo alvo estudos recentes. Por exemplo, [Fragopanagos and Taylor 2005], levantam a necessidade de que interac¸oes ˜ mais naturais com dispositivos sejam baseadas em forma de reconhecimento de emoc¸oes, ˜ permitindo a esses dispositivos se adaptarem e otimizarem o processo interativo. Assim, propoem ˜ o uso de t´ecnicas de inteligˆencia artificial sobre imagens e vozes para a detecc¸ao ˜ das emoc¸oes ˜ do usu´ario. No entanto, n˜ao discutem m´etodos objetivos de como tais t´ecnicas poderiam compor aplicac¸oes ˜ pr´aticas. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Neste artigo, propomos uma arquitetura baseada em vis˜ao computacional para detecc¸ao ˜ de emoc¸ao ˜ a partir de expressoes ˜ faciais e apresentamos um estudo de caso focado na interac¸ao ˜ com personagens digitais. A arquitetura proposta visa na avaliac¸ao ˜ de m´etodos adequados de aprendizado de m´aquina e formas de interac¸ao ˜ com diferentes dispositivos. E a aplicac¸ao ˜ em personagens digitais visa servir de modelo, embora tamb´em tenha a motivac¸ao ˜ de ser aplicado em situac¸oes ˜ de aprendizado de crianc¸as, pessoas com necessidade especiais ou simples entretenimento. O restante do artigo est´a estruturado da seguinte forma. A sec¸ao ˜ 2 apresenta a fundamentac¸ao ˜ teorica ´ com conceitos importantes para o entendimento do trabalho e trabalhos relacionados. A sec¸ao ˜ 3 apresenta a arquitetura proposta e a sec¸ao ˜ 4 resultados obtidos de sua experimentac¸ao. ˜ Finalmente, a sec¸ao ˜ 5 conclui o trabalho e apresenta trabalhos futuros poss´ıveis.
2. Visao ˜ Geral sobre Reconhecimento de Expressoes ˜ Faciais Quando se tratam de pessoas, e o foco e´ reconhecer essa complexidade para que a inovac¸ao ˜ seja alcanc¸ada, devemos pensar em ideias inovadoras olhando sempre para as pessoas. A robotica ´ emotiva reflete sobre a real necessidade das m´aquinas terem emoc¸oes ˜ e a que ponto isso se torna relevante no futuro para que possamos construir boas relac¸oes ˜ . A afirmac¸ao ˜ de [Brown 2009] exemplifica que uma organizac¸ao ˜ que se compromete na aplicac¸ao ˜ do pensamento centrado nas pessoas, est´a praticando um interesse mais claro das coisas. A psicologia sempre tenta entender o emaranhado de emoc¸oes ˜ que o ser humano carrega e de que forma isso pode ser compreendido para melhorar o seu conv´ıvio. O psicologo ´ [Ekman 2011] explica que n˜ao podemos demonstrar emoc¸oes ˜ em palavras. A emoc¸ao ˜ e´ um processo que e´ avaliado atrav´es do nosso passado, que corresponde a um sentimento de importˆancia para bem estar, no que diz respeito a` atribuic¸ao ˜ de mudanc¸as fisiologicas ´ de comportamentos que influenciam na interac¸ao ˜ entre pessoas. Na vis˜ao computacional, [Nunes 2012] e [Pontarolo et al. 2003] explicam que o campo na inform´atica que estuda os aspectos humanos e´ a computac¸ao ˜ afetiva, uma a´ rea que busca estudar e entender como computadores podem reagir a` s emoc¸oes ˜ humanas, atrav´es de interfaces e interac¸oes ˜ computacionais. Por meio de pesquisas como essas, acredita-se que sistemas inteligentes podem ampliar as formas de interac¸ao ˜ entre homemm´aquina despertando emoc¸oes ˜ humanas. Uma proposta por [Le˜ao et al. 2012] visa detectar em tempo real, utilizando v´ıdeo ou imagem capturado por uma webcam reconhecer e classificar expressoes ˜ faciais dos usu´arios. A proposta classifica os movimentos faciais em unidades de ac¸oes ˜ variando em 6 emoc¸oes, ˜ os classificadores utilizados foram o Naive Bayes e o Tree-AugmentedNaive Bayes (TAN). Outra proposta de [Zhan et al. 2008] e´ a criac¸ao ˜ de um mecanismo em tempo real para reconhecimento de expressoes ˜ destinado a games onlines, baseado em v´ıdeos do usu´ario. A proposta permite uma nova forma de interac¸ao ˜ com os avatares dentro de ambientes de games e utiliza o framework Viola–Jones que e´ baseado no OpenCv e classificadores, tais como, AdaBoost e Cascading. Um sistema de detecc¸ao ˜ facial para classificar emoc¸oes ˜ foi a proposta de [Bartlett et al. 2003] que conta com um mecanismo de detecc¸ao ˜ facial em tempo real por meio de v´ıdeo que classifica as expressoes ˜ de usu´arios em 7 emoc¸oes, ˜ o projeto utilizou a combinac¸ao ˜ de dois classificadores, tais como, AdaBoost e M´aquina de Vetores de Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
102
Suporte (SVM). J´a a proposta de [Lien et al. 2000] consiste em um sistema de detecc¸ao ˜ de mudanc¸as faciais que classifica em unidades de ac¸oes ˜ as expressoes ˜ de usu´arios. O sistema foi treinado com 100 imagens de homens e mulheres, e classifica as emoc¸oes ˜ por meio de imagens, utilizando t´ecnicas estat´ısticas, do tipo, An´alise de Discriminantes Lineares (LDA) e Modelo oculto de Markov. A proposta deste trabalho se diferencia em relac¸ao ˜ a` s demais por ser focada na interac¸ao ˜ com personagens digitais, explorando t´ecnicas de classificac¸ao ˜ de emoc¸oes ˜ e detecc¸ao ˜ de expressoes ˜ faciais, al´em de integrar diferentes dispositivos.
3. Detecc¸ao ˜ de Expressoes ˜ Faciais para Classificar Emoc¸oes ˜ Esta sec¸ao ˜ apresenta uma vis˜ao geral da ferramenta proposta para detectar expressoes ˜ faciais e classific´a-las em emoc¸oes, ˜ descrevendo a sua arquitetura, implementac¸ao ˜ e processo de classificac¸ao ˜ para possibilitar uma nova forma de interatividade com personagens digitais. 3.1. Descric¸ao ˜ da Ferramenta A soluc¸ao ˜ proposta consiste na arquitetura de uma ferramenta capaz de possibilitar uma nova forma de interatividade com personagens digitais. Diante disso, utilizando t´ecnicas de aprendizagem de m´aquina e processamento de imagens, a ferramenta dever´a classificar emoc¸oes ˜ por meio da detecc¸ao ˜ de expressoes ˜ faciais. Assim, ser´a poss´ıvel acessar as informac¸oes ˜ de interac¸ao ˜ classificadas em n´ıveis de emoc¸ao ˜ do usu´ario, a princ´ıpio dividida em: “Tristeza”, “Raiva” e “Felicidade”. 3.2. Arquitetura da Ferramenta A Figura 1 apresenta a arquitetura proposta, distribu´ıda em 3 (trˆes) componentes: Celular: detector de expressoes ˜ faciais; Servidor: classificador de emoc¸oes; ˜ Web: personagem virtual. 3.2.1. Celular: Detector de Expressoes ˜ Faciais Este componente e´ respons´avel por realizar a detecc¸ao ˜ das expressoes ˜ faciais de um usu´ario por meio do uso de um celular com cˆamera e sistema operacional Android. O componente monitora pontos de interesses, tais como, olhos e boca por meio do uso da biblioteca Android Mobile Vision [Google 2017] que repassa as informac¸oes ˜ para o dispositivo em forma de probabilidades, informando o quanto que o usu´ario est´a sorrindo (smilling) e as chances de estar com olhos abertos (eyes open). A detecc¸ao ˜ dos pontos de interesse s˜ao transmitidas para o servidor respons´avel por classificar emoc¸oes, ˜ que recebe essa informac¸ao, ˜ e repassa para o componente personagem virtual. 3.2.2. Servidor: Classificador de Emoc¸oes ˜ O principal componente neste trabalho e´ respons´avel por classificar emoc¸oes ˜ por meio da detecc¸ao ˜ de expressoes ˜ faciais. Neste encontra-se os modulos ´ para treinamento e predic¸ao, ˜ al´em do gerenciador de conexoes. ˜ Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
103
Figure 1. Processo de Funcionamento da Ferramenta
• Modulo ´ de Treinamento: Na Figura 1 o modulo ´ ”Treinamento de emoc¸oes” ˜ corresponde a fase que o sistema precisa aprender por um determinado tempo expressoes ˜ faciais de usu´arios. Cada usu´ario ao submeter-se a detecc¸ao ˜ de expressoes ˜ faciais, fornece para o sistema informac¸oes ˜ do tipo: taxa de olho esquerdo aberto; taxa de olho direito aberto; e taxa de sorriso. Estas informac¸oes ˜ s˜ao primordiais para a construc¸ao ˜ do modelo neste trabalho, e servir˜ao como referˆencia para classificar as emoc¸oes, ˜ entretanto, e´ importante frisar, que o treinamento n˜ao ocorre durante o uso do sistema, e sim em uma fase anterior, conforme ser´a descrito na sec¸ao ˜ 4; • Modulo ´ de Predic¸ao: ˜ Na Figura 1 o modulo ´ “Predizer emoc¸ao” ˜ corresponde a fase que o sistema j´a possui uma base de conhecimento com o registro de emoc¸oes, ˜ j´a passou pela fase de treinamento, e conhece algumas expressoes ˜ faciais. Desta maneira, emprega-se um modelo de aprendizagem para ser testado e avaliado em cima da base de conhecimento, preparando para predic¸oes. ˜ No final, as emoc¸oes ˜ classificadas ir˜ao variar em trˆes n´ıveis, indicando a emoc¸ao ˜ do usu´ario em: “Tristeza”, “Raiva” e “Felicidade”. • Modulo ´ Gerenciador de Conexoes: ˜ Na Figura 1 o modulo ´ ”Gerenciador de Conexoes” ˜ e´ o respons´avel por delegar as operac¸oes ˜ solicitadas ao servidor que poder´a optar por ativar dois modulos: ´ treinamento ou predic¸ao. ˜ Para escolher o melhor modelo de aprendizagem para o sistema, foi elaborado um comparativo emp´ırico baseado na acur´acia entre as principais t´ecnicas de aprendizagem de m´aquina destinadas a classificac¸ao. ˜ Segundo [Calvo and D’Mello 2010], [Forsyth and Ponce 2011] e [Pradhan 2013], as principais t´ecnicas empregadas geral´ mente s˜ao Redes Neurais, Modelos Estat´ısticos, Modelos Gen´eticos e Arvores de Decis˜ao. Cada t´ecnica emprega diferentes abordagens para aprendizagem, entretanto, por n˜ao ser o foco deste trabalho, n˜ao adentraremos ao funcionamento de cada uma. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
104
Nesse sentido, verificou-se que a t´ecnica de melhor desempenho dentre todas, foi ´ a Arvore de Decis˜ao, a qual foi adotada neste trabalho. Segundo [Du and Zhan 2002] ´ o uso da Arvore de Decis˜ao se destaca em relac¸ao ˜ ao f´acil n´ıvel de interpretac¸ao, ˜ uma classificac¸ao ˜ expl´ıcita, al´em de baixo custo computacional gerado pela t´ecnica. Outro aspecto interessante, segundo [Kołakowska 2013], s˜ao os desempenhos desta t´ecnica, pois dependendo das configurac¸oes, ˜ os algoritmos podem melhorar sem a necessidade de mais informac¸oes. ˜ 3.2.3. Web: Personagem Virtual Este componente e´ respons´avel por reproduzir a nova forma de interac¸ao ˜ proposta neste trabalho, e foi desenvolvido com o objetivo de demonstrar as possibilidades de interac¸ao. ˜ Ele recebe o processamento da detecc¸ao, ˜ e executa as animac¸oes ˜ de um personagem digital, denominado ”Kaio”, que de acordo com o estado do usu´ario, assume os estados de piscar e sorrir, imitando o usu´ario. No final da interac¸ao, ˜ este componente prediz qual estado emocional o usu´ario se encontra, classificado nos trˆes n´ıveis citados anteriormente. 3.3. Kaio: Criac¸ao, ˜ Animac¸oes ˜ e Estado do Personagem No desenvolvimento do personagem foi respeitado o uso de elementos que componham todas as suas caracter´ısticas de maneira simples e emp´atica, cujo os elementos s˜ao utilizados pelo seu corpo e caracter´ıstica do rosto no estilo ”thin line” com trac¸os cartunescos como mostrado na figura 2, com estilos em referˆencia ao criador da s´erie animada ”Adventure Time”, por Pendleton Ward [Ewalt 2011]. Foram empregadas cores como ”verde ciano” combinado com o fundo preto causando bastante contraste. Com seu formato redondo brac¸os sem dedos o personagem e´ definido como um alien´ıgena, por´em cont´em caracter´ısticas bastante semelhantes com coisas que s˜ao reconhecidas pelas pessoas, uma ave ou uma fruta, por exemplo. Para n˜ao cair no que chamamos de ”vale da estranheza”, segundo [Mori et al. 2012], uma hipotese ´ citada no campo da robotica ´ que diz que a` medida em que a aparˆencia de uma m´aquina vai ficando mais humana, a resposta emocional do observador humano em relac¸ao ˜ a m´aquina vai se tornando mais positiva e emp´atica, at´e um dado ponto onde a resposta acaba sendo recebida com bastante repulsa. Entretanto, segundo os autores, a` medida em que a aparˆencia continua a ser menos distingu´ıvel de um ser humano, a resposta emocional passa a ser positiva se aproximando do n´ıvel de empatia entre eles. Foram usadas animac¸oes ˜ ”frame a frame” para aumentar a experiˆencia entre usu´ario e m´aquina, os estados de suas expressoes ˜ s˜ao: Parado (respirando), piscar de olhos e movimentos da boca. Todos acompanhados dos movimentos corporais do personagem. Quatro estados s˜ao exemplificados na Figura 2.
Figure 2. Expressoes ˜ do Personagem Kaio
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
105
4. Experimentos e Resultados Esta sec¸ao ˜ descreve os dados que foram analisados, os experimentos, bem como as m´etricas empregadas para avaliac¸ao ˜ do sistema de classificac¸ao ˜ das emoc¸oes. ˜ 4.1. Dados Para que seja poss´ıvel analisar e avaliar o classificador de emoc¸oes, ˜ segundo seu desempenho, dados de usu´arios foram coletados para o treinamento do sistema, em uma fase anterior ao uso do sistema, que ocorreu em 2 dias, com 12 pessoas. O treinamento capturou um total de 360 expressoes ˜ faciais por usu´ario, divididas em 60 expressoes ˜ para 1 emoc¸ao ˜ (tristeza, raiva ou felicidade). Entre as pessoas envolvidas, 2 foram mulheres, 10 homens, considerando pessoas com barba, sem barba, usando o´ culos e sem o´ culos. O treinamento considerou as seguintes regras: • Treinar com 12 pessoas volunt´arias; • Treinar 6 emoc¸oes ˜ com a mesma pessoa; • Executar 2 treinamentos para 1 emoc¸ao, ˜ considerando as 3 (trˆes) emoc¸oes ˜ poss´ıveis; • Treinar 8 segundos para cada emoc¸ao ˜ escolhida; • Realizar o treinamento das emoc¸oes ˜ de forma aleatoria ´ com as pessoas. No final do treinamento, a base de treino resultou em 4264 expressoes ˜ faciais, contento as 3 emoc¸oes ˜ de tristeza, raiva e felicidade. Esse treinamento serviu como subs´ıdio para o sistema ser capaz de conhecer as emoc¸oes. ˜ Para cada tupla das expressoes ˜ faciais capturadas, as caracter´ısticas armazenadas e retornadas pela biblioteca Android Mobile Vision foram: • • • • •
user: Identificac¸ao ˜ do usu´ario que executou o treino; rate blink left: Probabilidade do olho esquerdo est´a aberto (0.0 a 1.0); rate blink right: Probabilidade do olho direito est´a aberto (0.0 a 1.0); rate smile or not: Probabilidade da pessoa est´a sorrindo (0.0 a 1.0); emotion: Emoc¸ao ˜ do usu´ario (0-tristeza , 1-raiva, 2-felicidade).
4.2. Avaliac¸ao ˜ A avaliac¸ao ˜ do sistema ocorreu em 3 dias, com 10 pessoas diferente das pessoas volunt´arias do treinamento. Nesta fase, foram consideradas as seguintes regras: • Avaliar com 10 pessoas volunt´arias; • Avaliar 3 vezes com a mesma pessoa; • Permitir que a mesma pessoa escolha a ordem que desejar treinar, sem exceder as 3 tentativas por pessoa; • Permitir que a pessoa volunt´aria anote a emoc¸ao ˜ que ela realizou e qual o sistema classificou; • Ter 2 pessoas avaliadoras para julgar a emoc¸ao ˜ que a pessoa volunt´aria executou. No final da avaliac¸ao, ˜ uma base de 30 observac¸oes ˜ foi adquirida, que serviu de referˆencia para an´alise e os resultados alcanc¸ados neste trabalho. Para cada observac¸ao, ˜ as pessoas envolvidas e os avaliadores julgaram uma emoc¸ao, ˜ e a pessoa volunt´aria observou tamb´em a emoc¸ao ˜ que o sistema realmente classificou. As emoc¸oes ˜ foram classificadas em: 0 - Tristeza; 1 - Raiva; e 2 - Felicidade. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
106
4.3. M´etricas No contexto de Recuperac¸ao ˜ de Informac¸ao ˜ (RI) e Inteligˆencia Artificial (AI), o desempenho de um sistema inteligente para classificac¸ao ˜ de emoc¸oes ˜ pode ser mensurado por meio de m´etricas, tais como: precis˜ao, revocac¸ao, ˜ validac¸ao ˜ cruzada, e matriz de confus˜ao, conforme afirmam [Ikonomakis et al. 2005], [MIKAMI et al. 2009] e [Freire et al. 2009]. Precis˜ao: Segundo [Freire et al. 2009], mensura o quanto que foi exato a resposta, em uma proporc¸ao ˜ de classificac¸oes ˜ relevantes. Calculada por meio da raz˜ao entre total de classificac¸oes ˜ relevantes dividido pelo total de classificac¸oes. ˜ Revocac¸ao: ˜ Segundo [Freire et al. 2009], e´ uma medida usada para mensurar o quanto de informac¸ao ˜ relevante que foi retornado, calculada por meio da raz˜ao entre total de classificac¸oes ˜ relevantes retornadas dividido pelo total de classificac¸oes ˜ relevantes. Validac¸ao ˜ Cruzada: Segundo [MIKAMI et al. 2009] corresponde ao processo de divis˜ao dos dados coletados em uma parte para treinamento e outra parte para testes. Segundo o autor, e´ um processo importante para analisar os resultados alcanc¸ados pelo modelo de aprendizagem, testando o sistema com dados reais diferente dos dados que ele foi treinamento. Matriz de confus˜ao: Segundo [Freire et al. 2009], a medida oferece uma efetiva avaliac¸ao ˜ do modelo de classificac¸ao ˜ considerando o numero ´ de classificac¸oes ˜ corretas e as classificac¸oes ˜ estimadas para cada classe em um conjunto de dados. 4.4. Analise ´ e Resultados Nesta fase foram empregadas as m´etricas descritas, analisando o desempenho do sistema. 4.4.1. Validac¸ao ˜ Cruzada Dividiu-se 90% das 4264 expressoes ˜ faciais para treino e 10% para testes, ent˜ao com uma matriz de confus˜ao foi poss´ıvel verificar o desempenho do sistema, conforme a Figura 3.
Figure 3. Matriz de Confusao ˜ do Sistema
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
107
De forma geral, observa-se que o sistema atingiu uma alta precis˜ao para classificar as emoc¸oes, ˜ pois obteve mais acertos do que erros. A emoc¸ao ˜ denominada como felicidade, o sistema parece n˜ao confundir tanto com as outras emoc¸oes, ˜ entretanto, para tristeza e raiva o sistema parece se confundir algumas vezes entre as duas emoc¸oes. ˜ 4.4.2. Comparativo com Avaliac¸ao ˜ Humana Nesta fase de avaliac¸ao, ˜ comparamos a precis˜ao do sistema versus a observac¸ao ˜ humana feita por dois avaliadores, baseado nos testes feitos pelas 10 pessoas, durante a fase de avaliac¸ao. ˜ Conforme a demonstra Figura 4.
Figure 4. Precisao ˜ do Sistema versus Visao ˜ Humana
As trˆes primeiras barras correspondem a` s precisoes ˜ das avaliac¸oes ˜ de todas as emoc¸oes, ˜ classificadas pelo sistema, avaliador 1 e avaliador 2, em relac¸ao ˜ aos testes feitos pelas pessoas volunt´arias durante a avaliac¸ao. ˜ Pode-se observar que a precis˜ao dos avaliadores humanos em relac¸ao ˜ a` emoc¸ao ˜ detectada pelos avaliadores foi de 83%, o que mostra um ru´ıdo natural na comunicac¸ao ˜ entre humanos. J´a o sistema proposto acertou 63%, 20 pontos percentuais a menos que os avaliadores humanos. Isso se deve a` menos caracter´ısticas do sistema na detecc¸ao ˜ de pontos de express˜ao da face. As outras barras na Figura 4, demonstram o desempenho do sistema versus a vis˜ao humana para cada emoc¸ao ˜ de forma individual. E´ poss´ıvel observar que os acertos do sistema em relac¸ao ˜ aos avaliadores se manteve em 20 pontos percentuais a menos para a emoc¸ao ˜ de Raiva, no caso da Felicidade, os acertos ficaram entre 6 e 13 pontos percentuais a menos em relac¸ao ˜ aos avaliadores, relevando a melhor classificac¸ao ˜ do sistema. Entretanto, para Tristeza, os acertos n˜ao foram maiores que os erros, revelando que o sistema mostrou dificuldade para classificar corretamente esta emoc¸ao. ˜
5. Conclusao ˜ O trabalho permitiu avaliar e apresentar um estudo de caso focado na interac¸ao ˜ com personagens digitais para classificar a emoc¸ao ˜ do usu´ario por meio da detecc¸ao ˜ de expressoes ˜ faciais. Os resultados mostram que mesmo seres humanos apresentam erros ao interpretar Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
108
emoc¸oes ˜ de outros seres humanos, mas que m´etodos autom´aticos, como o proposto neste trabalho, podem ser u´ teis em alguns cen´arios. Para algumas emoc¸oes ˜ como raiva e tristeza, o sistema n˜ao teve um desempenho t˜ao alto quanto a classificac¸ao ˜ da felicidade, devido aos poucos atributos fornecidos pela biblioteca Android Mobile Vision para detecc¸ao ˜ facial. No entanto, a possibilidade de acertar a emoc¸ao ˜ felicidade com precis˜ao de 80% j´a pode ser muito u´ til para aplicac¸oes ˜ de entretenimento infantil como proposto. A biblioteca oferece apenas 3 pontos de interesse - olhos (esquerdo e direito) e boca, talvez se fosse poss´ıvel ter outros pontos de detecc¸ao ˜ na biblioteca como a sobrancelha, poderia permitir diferenciar a Raiva de Tristeza por meio de mais caracter´ısticas, isso fica como proposta para trabalhos futuros. Todavia, espera-se que o trabalho possa servir como modelo para interac¸ao ˜ entre diferentes dispositivos e principalmente para personagens digitais. E se for poss´ıvel aplicar a ferramenta no entretenimento ou at´e mesmo como ferramenta educacional, ser´a um ganho a mais para a pesquisa.
6. Agradecimentos Os resultados ou parte dos resultados apresentados nessa publicac¸ao ˜ foram obtidos por meio de atividades de Pesquisa e Desenvolvimento do projeto SAMSUNG OCEAN, patrocinado pela Samsung Eletronica ˆ da Amazonia ˆ Ltda., apoiado pela SUFRAMA sob os termos da lei federal No. 8.248/91.
References Bartlett, M. S., Littlewort, G., Fasel, I., and Movellan, J. R. (2003). Real time face detection and facial expression recognition: Development and applications to human computer interaction. In Computer Vision and Pattern Recognition Workshop, 2003. CVPRW’03. Conference on, volume 5, pages 53–53. IEEE. Brown, T. (2009). Change by design. Collins Business. Calvo, R. A. and D’Mello, S. (2010). Affect detection: An interdisciplinary review of models, methods, and their applications. IEEE Transactions on Affective Computing, 1(1):18–37. Cohen, M. H., Cohen, M. H., Giangola, J. P., and Balogh, J. (2004). Voice user interface design. Addison-Wesley Professional. Du, W. and Zhan, Z. (2002). Building decision tree classifier on private data. In Proceedings of the IEEE International Conference on Privacy, Security and Data Mining - Volume 14, CRPIT ’14, pages 1–8, Darlinghurst, Australia, Australia. Australian Computer Society, Inc. Ekman, P. (2011). A linguagem das emoc¸oes. ˜ Sao ˜ Paulo: Lua de Papel. Ewalt, D. M. (2011). It’s adventure time! pendleton ward talks about his hit cartoon. Forbes. Com, 14. Forsyth, D. and Ponce, J. (2011). Computer vision: a modern approach. Upper Saddle River, NJ; London: Prentice Hall. Fragopanagos, N. and Taylor, J. G. (2005). Emotion recognition in human–computer interaction. Neural Networks, 18(4):389–405. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
109
Freire, P. P., de Oliveira Lombardi, L., Ciferri, R. R., Thiago Alexandre Salgueiro Pardo, C. D. d. A. C., and Vieira, M. T. P. (2009). Relatorio ´ t´ecnico: M´etricas de avaliac¸ao. ˜ projeto: Um ambiente para an´alise de dados da doenc¸a anemia falciforme. Google (2017). Detect Faces. URL: https://developers.google.com/vision/ Access in 2017–03–22. Gubbi, J., Buyya, R., Marusic, S., and Palaniswami, M. (2013). Internet of things (iot): A vision, architectural elements, and future directions. Future generation computer systems, 29(7):1645–1660. Ikonomakis, M., Kotsiantis, S., and Tampakas, V. (2005). Text classification using machine learning techniques. WSEAS transactions on computers, 4(8):966–974. Kołakowska, A. (2013). A review of emotion recognition methods based on keystroke dynamics and mouse movements. In Human System Interaction (HSI), 2013 The 6th International Conference on, pages 548–555. IEEE. Le˜ao, P., Leonardo, Santos Bezerra, J., Nogueira Matos, L., and Silveira Netto Nunes, ˜ faciais: Uma abordagem baseada em anAlise ´ ˜ de expressOes M. A. (2012). DetecC¸Ao ´ do fluxo Optico. GEINTEC–Gestao, ˜ Inovac¸ao ˜ e Tecnologias, 2(5):472–489. Lien, J. J.-J., Kanade, T., Cohn, J. F., and Li, C.-C. (2000). Detection, tracking, and classification of action units in facial expression. Robotics and Autonomous Systems, 31(3):131–146. MIKAMI, R., SANTOS, L., VENDRAMIN, A., and KAESTNER, C. (2009). Procedimentos de validac¸ao ˜ cruzada em minerac¸ao ˜ de dados para ambiente de computac¸ao ˜ paralela. Artigo do Departamento Acadˆemico de Informatica ´ Universidade Tecnologica ´ Federal do Parana, ´ Curitiba, Brasil. Mitra, S. and Acharya, T. (2007). Gesture recognition: A survey. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 37(3):311–324. Mori, M., MacDorman, K. F., and Kageki, N. (2012). The uncanny valley [from the field]. IEEE Robotics & Automation Magazine, 19(2):98–100. Nunes, M. (2012). Computac¸ao ˜ afetiva personalizando interfaces, interac¸oes ˜ e recomendac¸oes ˜ de produtos, servic¸os e pessoas em ambientes computacionais. DCOMP e PROCC: Pesquisas e Editora UFS: Sao ˜ Cristovao, ´ ˜ pages 115–151. Pontarolo, E., Bercht, M., and Vicari, R. M. (2003). Diferentes abordagens de computac¸ao ˜ afetiva em sistemas multiagentes e sistemas tutores inteligentes. Informatica ´ na educac¸ao: ˜ teoria & pratica. ´ Porto Alegre. Vol. 6, n. 2 (jul./dez. 2003), p. 21-37. Pradhan, B. (2013). A comparative study on the predictive ability of the decision tree, support vector machine and neuro-fuzzy models in landslide susceptibility mapping using gis. Computers & Geosciences, 51:350–365. Satyanarayanan, M. (2001). Pervasive computing: Vision and challenges. IEEE Personal communications, 8(4):10–17. Zhan, C., Li, W., Ogunbona, P., and Safaei, F. (2008). A real-time facial expression recognition system for online games. International Journal of Computer Games Technology, 2008:10. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
110
Anais do Encontro Regional de Computação e Sistemas de Informação
Sistema de Recomendação de Passeios Turísticos Baseado em conteúdo para Novos Usuários Elimarcos Ales Arouca1, Marcela Sávia Picanço Pessoa1,2, Sérgio Cleger Tamayo1 1
Faculdade Fucapi Manaus – AM – Brasil 2
Escola Superior de Tecnologia – Universidade do Estado do Amazonas (EST/UEA) Manaus – AM – Brasil elimarcos.arouca@gmail.com, msppessoa@uea.edu.br, sergio.cleger@gmail.com
Abstract. This work is the implementation of a sightseeing recommendation system that helps tourists in choosing the best places to meet. All based on the system user profile, which is identified by the Facebook social network. Resumo. Este trabalho consiste na implementação de um sistema de recomendação de passeios turísticos que auxilie o turista na escolha dos melhores lugares a se conhecer. As recomendações são baseadas no perfil do usuário do sistema, que é identificado através da rede social Facebook.
1. Introdução De acordo com Junior (2014), apenas no ano de 2014, mais de 6,4 milhões de turistas desembarcaram em território brasileiro e segundo MTUR (2014) aproximadamente 206 milhões de brasileiros fizeram viagens pelo país. Mesmo com números tão expressivos, uma matéria divulgada no portal Globo (2013) mostrou que muitos turistas ficaram insatisfeitos com suas viagens. Questões como falta de limpeza, serviços de transportes públicos precários e serviços de telecomunicação ruins são as principais causas que levam à insatisfação. Além desses, pode-se citar o fato de o turista não possuir conhecimento do local, gerando, assim, dificuldades de locomoção, o que, de certa forma, leva o turista a se limitar a “pacotes” disponibilizados pelas agências de viagem. Essas intempéries trazem a sensação de insegurança e de não aproveitamento da viagem. Neste cenário, e entendendo a importância de atender de maneira satisfatória os visitantes, este trabalho propõe a implementação de um sistema que auxilia o turista, durante o seu tempo de estadia no local, através da sugestão dos melhores lugares para se conhecer. O conceito de melhor lugar é baseado no seu perfil de usuário da rede social FACEBOOK (2017) isto e demais informações estão sendo descritas nas seções seguintes.
2. Sistemas de Recomendação Em um contexto web em que há uma significativa carga de informações, a identificação de conteúdo relevante a um determinado usuário é um grande desafio. Desafio este que vem sendo superado através da subárea de aprendizagem de máquina (machine learning) chamada de sistemas de recomendação. Poder determinar recomendações positivas ou negativas tende a ajudar usuários a economizar tempo no que se refere a Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
suas escolhas e por consequência o resultado final de tudo é: usuários satisfeitos e aumento da lucratividade para os websites de comércio eletrônico, que se dá através de uma melhor adequação de consumo dos usuários. Segundo Cazella et al (2010), os Sistemas de Recomendação são capazes de identificar preferências e sugerir itens relevantes para cada usuário, de acordo com a análise de seu comportamento de navegação, consulta e/ou compra, preferências, entre outros aspectos. A Figura 1 apresenta o processo de um sistema de recomendação em que, informações sobre as preferências dos usuários (perfil) e um conjunto de itens são passados para um método responsável por determinar um subconjunto de itens interessantes a um usuário.
Figura 1. Processo de Recomendação
2.1. Técnicas de Recomendação Segundo Gotardo (2014), as técnicas de recomendação podem ser agrupadas nas seguintes categorias: • Filtragem por conteúdo: Esta abordagem busca criar um perfil para cada usuário de forma a caracterizar sua natureza e, dado um conjunto de itens, selecionar subconjuntos de itens relevantes ao usuário. • Filtragem colaborativa: Recomenda itens de acordo com as preferências de usuários similares ou de itens similares (em relação à interação entre usuários e itens). • Demográfico: Recomenda itens baseado em informações demográficas do perfil do usuário ou do contexto. • Baseado em conhecimento: Recomenda itens levando em consideração uma base histórica de recomendações (baseia-se na avaliação fornecida por usuário para as recomendações fornecidas pelo sistema ou na avaliação fornecida por um especialista). • Baseado em comunidade: Baseia-se nas informações sobre relações entre usuários. • Híbridos: Combina algumas das técnicas anteriores.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
112
Neste trabalho, foi adotada a técnica de filtragem por conteúdo, por se tratar de um modelo que trabalha com as definições de um perfil para cada usuário do sistema e com um conjunto de itens, para assim inferir um subconjunto de itens recomentados.
3. Trabalhos relacionados Zanona (2013) aborda os conceitos de sistemas de recomendação, raciocínio baseado em casos, banco de dados espaciais e propõe o desenvolvimento de um sistema clienteservidor, que tem como objetivo recomendar atrativos turísticos baseados no posicionamento global e no perfil do turista. Para sugerir programações turísticas o autor utilizou o OPENSTREETMAP, que é um projeto de mapeamento colaborativo, e o SANTUR, que é um site de turismo de Santa Catarina. Além disso, para identificação do perfil do turista, foi utilizada a coleta de dados de forma explicita em um módulo de cliente. A solução proposta por Zanona (2013) exige que o usuário informe suas preferências, diferente do trabalho proposto que pega as preferências do usuário de redes sociais. De forma análoga ao trabalho anterior, temos ferramentas como TripAdvisor (2017) e Local Guides (2017) que, através da colaboração de usuários do sistema, auxilia outros usuários a planejarem melhor suas viagens. A ferramenta TripAdvisor conta com especialistas em destinos que oferecem dicas úteis a membros do site enquanto que Local Guides se utiliza de exploradores do Google Maps para gerar informações a uma comunidade global. Tal como o trabalho anterior, a solução proposta por essa ferramenta exige que o usuário informe suas preferências e conte com a colaboração de outros usuários, diferente do trabalho proposto que pega as preferências do usuário de redes sociais e se utiliza apenas dessas informações para inferir recomendações.
4. Visão da Ferramenta Para o desenvolvimento do sistema, e por se tratar de ferramentas de conteúdo vasto, tanto em fóruns (internet) quanto através de livros, foi escolhida, para o aplicativo móvel, a plataforma ANDROID (2017) e para o WebService, a linguagem de programação JAVA (2017), tudo em conjunto com o framework SPRING (2017) e banco de dados MYSQL (2017). Para a criação e disponibilização da base de dados de passeios turísticos, foi utilizada a ferramenta WESCRAPER (2017), API utilizada para extração de dados de websites. O aplicativo desenvolvido na plataforma Android tem como objetivo recuperar o perfil de usuário através da rede social Facebook, e, com base nas preferências deste usuário, solicitar do Webservice a lista de passeios turísticos relevantes para este usuário. Para isso, é necessário que o usuário informe o destino e que a base de dados, contendo as descrições dos pontos turísticos para o destino informado, esteja disponível. A Figura 2 apresenta a arquitetura de funcionamento da ferramenta, na qual um turista, através de seu dispositivo Android, autentica-se no Facebook (Passo 1) para que o seu perfil seja conhecido pelo sistema, solicita extração de dados do usuário através do Facebook (Passo 2), informa o local da sua viagem e solicita ao servidor a lista de recomendações (Passo 3). Na sequência, o servidor busca dados turísticos de uma localidade (Passo 4) e, de posse dos dados da viagem e perfil do usuário, um webservice executa o algoritmo de recomendação (Passo 5) e gera uma lista de atrativos que melhor Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
113
se enquadra ao perfil do usuário. Depois que a listagem é gerada, é, então, exibida como sugestão ao turista.
Figura 2. Diagrama Funcional
4.1. Implementação do aplicativo móvel Para implementação do aplicativo móvel foi utilizada a plataforma Android, SPRINGANDROID (2017), que é um framework baseado nos padrões de projeto inversão de controle (IoC) e injeção de dependências, e MySQL, que é um sistema de gerenciamento de banco de dados, que usa a linguagem SQL (linguagem de consulta estruturada) como interface. Para o funcionamento deste aplicativo é necessário: 1) fazer autenticação no Facebook para ter acesso ao perfil do usuário e fornecer o 2) destino da viajante. 1) A identificação do usuário é feita através de uma tela no aplicativo móvel. Este envia os dados para a autenticação no Facebook. É solicitado que o usuário informe o seu login e senha de acesso à rede social, bem como a permissão para que o sistema acesse os dados de sua conta. Ao final do processo de autenticação, são retornados e guardados no contexto do sistema, as credenciais deste usuário, as devidas permissões de acesso e os dados da conta. 2) Como o local do passeio deve ser informado pelo usuário, a ferramenta disponibiliza uma tela para preenchimento do destino da viagem. Uma vez que os dados desta tela tenham sido fornecidos pelo usuário do sistema, o aplicativo envia estas informações e os dados do usuário para o webservice do sistema, para tal, é utilizada a API (interface de programação de aplicativos) de arquitetura rest chamada restTemplate, que é fornecida pelo Spring. 4.2. Implementação do webservice Para implementação do webservice são utilizados JAVA (2017) que é uma linguagem de programação orientada a objetos, o Framework Spring com as principais APIs utilizadas para arquitetura cliente-servidor, META (MultilanguagE Text Analyzer), que é uma infra-estrutura para processamento de documentos textuais em diferentes idiomas e o banco de dados MySQL.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
114
META é uma ferramenta para análise de textos, projetada com o objetivo de fornecer um quadro geral para tarefas de NLP (Natural Language Processing) em diferentes idiomas (BASILE et al 2008). Para a utilização da ferramenta META são necessárias as informações do usuário. Para tal, foi implementada uma função para a extração dos dados do perfil do turista. Desta forma, uma vez que as credenciais do usuário são fornecidas pelo aplicativo móvel, o
webservice extrai do Facebook informações de publicações e curtidas, deste usuário. Isto é necessário para que o perfil do turista seja inferido. Para essa inferência foi utilizado a API de gráficos do FACEBOOK-DEVELOPER (2017). Esta API fornece um mecanismo para recuperação das mensagens postadas, atualizações de status, bem como os links publicados por este usuário ou por terceiros no perfil desta pessoa. 4.3. Implementação da funcionalidade de extração de dados turísticos da web utilizando web-scraping Com objetivo de extrair os dados de um website de turismo, foi utilizado um complemento do Google Chrome chamado web-scraping. Esta ferramenta fornece as principais funcionalidades para execução desta operação. A base de dados coletada contém as seguintes características: Categoria: representa a classe principal do gráfico de seleção. Nele são agrupadas todas as subcategorias de turismo. Ex.: Atividades ao ar livre, entre outros; Subcategoria: diz respeito aos tipos de atrações turísticas e podem ser agrupadas em: natureza e parques, atividades ao ar livre, concertos, excursões, compras, museus e bibliotecas. Ex.: Praias, entre outros; Título: é utilizado para designar o nome do atrativo turístico. Ex.: Praia da Ponta Negra, entre outros; Descrição: Atributo que detalha as principais características de cada atrativo turístico. Ex.: “Praia da Ponta Negra fica a 13 km do centro de Manaus e é um dos principais pontos turísticos da cidade...” A Figura 3 apresenta a disposição hierárquica dos atributos extraídos do website de turismo.
Figura 3. Gráfico de seleção
4.4. Implementação da funcionalidade de recomendação de passeios turísticos Uma vez inferido o perfil do usuário pelo sistema e as informações de passeios turísticos separados por meio do web-scraping, o sistema executa o código de Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
115
recomendação. Para este processo foi utilizado a API de código aberto META, na qual, com base nas preferências do usuário, é executada a funcionalidade para encontrar todas as similaridades entre as preferências e a lista de conteúdos turísticos classificados anteriormente. A Figura 4 apresenta a Arquitetura Conceitual da API META. Segundo Basile et al (2008), os módulos implementados por esta ferramenta são: Collection Manager: componente para importação de documentos que permite segmentação dos mesmos em diferentes seções, como por exemplo: Categoria, Subcategoria, Título e Descrição; NLP engine: Motor dedicado ao gerenciamento de diferentes anotações de NLP (Natural Language Processing). Este motor é responsável por carregar os recursos lexicais necessários para cada anotador e executa o anotador sobre todos os documentos da coleção. Cada anotador é um componente responsável por executar uma tarefa específica de NLP, como por exemplo, tokenização, eliminação de palavras de parada e Pos-tagging; Export Manager: Componente responsável por exportar o resultado do NLP engine no formato (DB, XML, RDF, Inverted Index) definido pelo usuário.
Figura 4. META Arquitetura Conceitual
Depois que estas similaridades são encontradas (devolvidas pelo Export Manager da ferramenta META), o webservice retorna as informações, no formato de arquivo json, para o aplicativo móvel. A Figura 5 apresenta o retorno da Ferramenta META para um determinado perfil de usuário.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
116
Figura 5. Retorno da Ferramenta META
5. Experimentos Realizados Após a implementação da ferramenta, foram realizados experimentos que são apresentados nas seções seguintes. 5.1. Primeira Fase Esta fase tem como objetivos principais a 1) geração da base de dados com passeios turísticos, adquirida a partir de um web-scraping, 2) a extração do perfil do usuário através da API de gráficos do Facebook, que possibilita a recuperação das mensagens postadas, atualizações de status e links publicados pelo usuário e por terceiros no perfil do usuário e 3) a escolha da técnica de recomendação a ser utilizada neste trabalho, neste caso filtragem por conteúdo por tratar de um modelo que trabalha com as definições de perfil de usuário e conjunto de itens com o objetivo de encontrar as similaridades entre os dois conjuntos. Estas informações estão melhor descritas nas subseções seguintes. 5.1.1. Base de Dados de pontos turísticos De um total de 60 destinos turísticos, disponibilizados em um website de cultura da cidade de Manaus, foram utilizados uma amostra contendo 54 pontos turísticos, julgados mais relevantes, para compor a base de dados do experimento. Esta base de dados foi dividida em quatro características: Categoria, Subcategoria, Título e Descrição. Os dados desta base foram obtidos através de uma ferramenta de web scraper disponível na internet. 5.1.2. Características do Usuário Para fins de extração de dados de um determinado usuário da rede social Facebook, foi utilizado a API de Gráfico que é disponibilizada através do Facebook Developer.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
117
Ao selecionar o usuário alvo de coleta de dados, “ElieLu” e uma vez definidas as permissões de acesso, a API de Gráficos retornou um json com todas as publicações e curtidas deste usuário. 5.1.3. Técnica de Recomendação Utilizada Foi utilizado a técnica de recomendação baseada em conteúdo pois, tanto a base de dados quanto o perfil do usuário contêm informações textuais, sendo assim propício a utilização desta técnica. 5.2. Segunda Fase Esta fase do experimento foi usada para geração das recomendações baseadas nas avaliações de um especialista. Na qual, para cada publicação do usuário (características) foi selecionado um subconjunto de pontos turísticos relevantes. É importante salientar que, cada item relevante recebeu avaliação 1 e itens não relevantes receberam 0 (Estes foram desconsiderados na listagem final, pois o META não utiliza). A Tabela 1 apresenta os pontos turísticos relevantes para a publicação do usuário “Somos a família mais feliz da terra. Tabela 1. Pontos Turísticos Relevantes Jugados pelo Especialista
Pontos Turísticos (Identificadores)
Publicação
Avaliação do Especialista
7 - Biblioteca Braille; 51 - Bosque da Ciência; Somos a família mais feliz da terra
17 - Teatro Luiz Cabral; 48 - Praia de Ponta Negra;
1
25 - Museu de Numismática do Amazonas; 5.2. Terceira Fase Nesta fase foi utilizado o sistema META fazendo uso do algoritmo BM25, que é baseado no modelo probabilístico, e, com base nas informações turísticas e dados do usuário, o motor de recomendação do META, gerou a lista de predição de pontos turísticos relevantes para cada publicação do usuário. Em posse da lista recomendada, foi feita uma classificação em P@n. Essa classificação tem por objetivo desconsiderar publicações que tenham relevância inferior a recomendação n. Neste cenário foram considerados resultados para P@5, P@3 e P@1, por exemplo, no P@3, por exemplo, é calculada a precisão média das três primeiras sugestões. Foi utilizada a métrica MAP (Medida de Precisão Média), que é determinada como uma média de todos os valores de P@n, para avaliação dos resultados obtidos. Isso por se tratar de uma das métricas mais utilizadas para avaliar recuperações de informações.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
118
Na Figura 6, são apresentadas as Publicações do Usuário, na coluna 1, denominadas como P1, P2, ... P10, na sequência tem três colunas com as informações de P@5, P@3 e P@1. Em cada uma das colunas é apresentada a Precisão, que é a fração de instâncias recuperadas que são relevantes de acordo com o sistema, a Revocação, que é a fração de instâncias relevantes que são recuperadas de acordo com o especialista e a Precisão Média para cada P@5, P@3 e P@1. Figura 6. Recuperações Relevantes para P@5, P@3 e P@1
De acordo com a figura acima, é possível observar que, o resultado do MAP para P@5 e P@3 que foram, respectivamente, 0,80 e 0,83, tiveram valores aceitáveis para este tipo de experimento, enquanto que para P@1, de valor 1, o algoritmo acerta 8 de 10 das recomendações (P) que faz para o usuário. Portanto, são recomendações que podem ser usadas para usuários que tenham pouca similaridade com outros usuários, ou que não possuam amigos que tenham visitado essa cidade ou destino.
6. Considerações finais Foi apresentada a aplicação da ferramenta META em conjunto com a técnica de recomendação baseada em conteúdo, com o objetivo de recomendar passeios turísticos relevantes a um usuário do Facebook. Foram utilizados, para fins de experimento, o perfil (extraído através da API de Gráficos) de um usuário da rede social Facebook e uma base de dados de passeios turísticos (extraídos com Web Scraper). Esta base de dados foi importada para dentro da ferramenta META, na qual foi segmentado o documento e criou tokens para cada um destes segmentos, tornando, assim, possível a filtragem de passeios turísticos através do perfil do usuário. Com base nos resultados obtidos, pretende-se como melhoria e proposta para trabalhos futuros, aumentar o número de usuários nas experimentações e considerar o feedback desses usuários, através de nota de avaliação, para que o sistema possa aprender levando em consideração as suas recomendações, se foram relevantes ou não.
Referências ANDROID. Disponível em: <http://www.android.com>. Acessado em 21 abr. 2017.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
119
Basile, Gemmis, Gentile, Iaquinta, Lops, Semeraro (2008). META - MultilanguagE Text Analyzer. In Proc. of the Language and Speech Technnology Conference LangTech 2008. Acesso em: 10 abr. 2017 FACEBOOK. Disponível em: <http://www.facebook.com>. Acessado em 21 abr. 2017. FACEBOOK-DEVELOPER. Disponível <https://developers.facebook.com/docs/graph-api/reference/v2.8/user/feed>. Acessado em: 21 abr. 2017.
em:
Globo. Estudo mostra insatisfação de turistas com serviços públicos de Manaus. Disponível em: http://g1.globo.com/am/amazonas/noticia/2013/04/estudo-mostrainsatisfacao-de-turistas-com-servicos-publicos-de-manaus.html. Com acesso em 29 de ago. 2016. Garbin, Marcelo e Silveira, Sidnei Renato (2014). “Sistema de Recomendação Mobile: Um Estudo de Caso para Delivery”. http://www.eati.info/eati/2014/assets/anais/artigo38.pdf. Acessado em: 31 ago. 2016 Gotardo, Reginaldo (2014). “Uma Abordagem De Distema De Recomendação Orientada Pelo Aprendizado Sem Fim”. <https://repositorio.ufscar.br/bitstream/handle/ufscar/292/6340.pdf?sequence=1>. Acesso em: 03 abr. 2017 JAVA. Disponível em: <https://www.java.com>. Acessado em 21 abr. 2017. Junior, Darse. Mais de 6,4 milhões de turistas estrangeiros visitaram o Brasil em 2014. Disponível em: http://www.dadosefatos.turismo.gov.br/dadosefatos/geral_interna/noticias/detalhe/20 150807.html. Com acesso em 29 de ago. 2016 Local Guides. Disponível em: <https://www.google.com/intl/pt-BR/local/guides/>. Acessado em: 21 maio 2017 MTUR. Turismo registra 206 milhões de viagens domésticas em 2014. Disponível em: http://www.turismo.gov.br/ultimas-noticias/1081-turismo-registra-206-milhoes-deviagens-domesticas-em-2014.html. Com acesso em 29 de ago. 2016. MYSQL. Disponível em: <https://www.mysql.com>. Acessado em 21 abr. 2017. OPENSTREETMAP. Disponível em: <http://www.openstreetmap.com.br/>. Acessado em 21 abr. 2017. SANTUR. Disponível em: <http://turismo.sc.gov.br>. SPRING. Disponível em: <https://spring.io>. Acessado em 21 abr. 2017. SPRING-ANDROID. Disponível Acessado em 21 abr. 2017.
em:
<http://projects.spring.io/spring-android>.
TripAdvisor. Disponível em: <https://www.tripadvisor.com.br>. Acessado em 21 maio 2017. WESCRAPER. Disponível em: <http://webscraper.io>. Acessado em 21 abr. 2017. Zanona, Arthur (2013). “Sistema De Recomendação De Roteiros”. http://siaibib01.univali.br/pdf/Arthur%20Felipe%20Zanona.pdf>. Acesso em: 31 ago. 2016 Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
120
Anais do Encontro Regional de Computação e Sistemas de Informação
Uma Abordagem Comparativa de Algoritmos de Aprendizado Supervisionado para Classificac¸ao ˜ dos Cultivares da Planta Paullinia cupana Allex de Lima Sousa1 , Marcos Filipe Alves Salame1 1
Nucleo ´ de Tecnologia da Informac¸ao ˜ – Embrapa Amazonia ˆ Ocidental Caixa Postal 319 – 69.010-970 – Manaus – AM – Brasil allexlima@unn.edu.br, marcos.salame@embrapa.br
Abstract. The guarana’s plant (Paullinia cupana) has been studied by Embrapa Amazonia ˆ Ocidental since the end of the 70’s, resulting in the development and availability of 19 cultivars resistant to the main pests and diseases. However, the distinction between these specimens is still restricted to manual and technical procedures which are subject to human error. Thus we sought to identify the best methods of supervised learning for the context of the classification of these cultivars from images of their leaves. Among techniques used as Decision Trees, Support Vector Machines and Convolutional Neural Networks, this last one obtained better performance reaching 89.6% accuracy. Resumo. O guaranazeiro (Paullinia cupana) vem sendo estudado pela Embrapa Amazonia ˆ Ocidental desde o final da d´ecada de 70, resultando no desenvolvimento e disponibilizac¸ao ˜ de 19 cultivares resistentes as principais pragas e doenc¸as. Contudo, a distinc¸ao ˜ dentre esses esp´ecimes ainda e´ restrita a procedimentos manuais e t´ecnicos, sujeitos a` falha humana. Dessa forma, buscou-se identificar os melhores m´etodos de aprendizado supervisionado para o contexto de classificac¸ao ˜ desses cultivares a partir de imagens de suas folhas. ´ Das t´ecnicas utilizadas como Arvores de Decisao, ˜ Maquinas ´ de Vetores de Suporte e Redes Neurais Convolucionais, essa u´ ltima obteve melhor performance alcanc¸ando 89,6% de acuracia. ´
1. Introduc¸ao ˜ Compondo a rica vegetac¸ao ˜ amazonica, ˆ o fruto do guaranazeiro (Paullinia cupana var. sorbilis), o guaran´a, e´ amplamente utilizado como um dos principais insumos para diversas industrias ´ de bebidas e cosm´eticos [Tavares et al. 2005]. Entretanto, a proliferac¸ao ˜ de doenc¸as e pragas regionais incitou a baixa produtividade na amazonia ˆ estimulando, dessa forma, a emigrac¸ao ˜ de boa parte da produc¸ao ˜ para a Bahia, compreendida por deter os maiores ´ındices de produc¸ao ˜ do guaran´a no Brasil [IBGE 2015]. A Empresa Brasileira de Pesquisa Agropecu´aria (Embrapa), por sua vez, objetivando a expans˜ao da produtividade agr´ıcola do guaran´a na amazonia, ˆ deu inicio ao seu programa de melhoramento gen´etico do guaranazeiro, pela unidade Amazonia ˆ Ocidental, em Manaus-AM. Esse programa motivou diversas pesquisas e desde a d´ecada de 70, variedades de guaranazeiros melhorados a partir da alterac¸ao ˜ ou introduc¸ao ˜ de novas caracter´ısticas gen´eticas (i.e., cultivares) resistentes a` s principais impedˆancias de plantio e produc¸ao ˜ vˆem sendo estudadas, desenvolvidas e disponibilizadas [Tricaud et al. 2016]. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Com 19 cultivares j´a registrados no Minist´erio da Agricultura, Pecu´aria e Abastecimento, a Embrapa det´em o maior banco gen´etico de guaranazeiros [Tricaud et al. 2016]. Todavia, o processo de distinc¸ao ˜ desses esp´ecimes ainda e´ sujeito a manuais t´ecnicos [MAPA 2010], extensos e pass´ıveis a` falha humana, motivando esta abordagem com agentes computacionais inteligentes, visando explorar algumas das principais t´ecnicas de aprendizado supervisionado de m´aquinas, um campo da inteligˆencia computacional que investiga m´etodos capazes de identificar padroes ˜ e conceitos a partir de dados amostrais. Elegeu-se, ent˜ao, trˆes t´ecnicas para serem aplicadas e analisadas no contexto de classificac¸ao ˜ dos esp´ecimes de guaranazeiros atrav´es de amostras foliares. Assim, modelos cl´assicos de classificac¸ao ˜ como a´ rvores de decis˜ao e m´aquinas de vetores de suporte (em inglˆes, Support Vector Machines – SVM) foram estabelecidos para serem comparados com algumas arquiteturas de redes neurais convolucionais (em inglˆes, Convolutional Neural Networks – CNN). As a´ rvores de decis˜ao compreendem um m´etodo poderoso e abundantemente empregado em problemas de classificac¸ao, ˜ principalmente, devido a capacidade de representar seu aprendizado atrav´es de regras que podem ser expressas em linguagem natural. O poder de generalizac¸ao ˜ e modelagem topologica, ´ dessa t´ecnica, permite que novos itens desfrutem de boas chances de uma predic¸ao ˜ correta. Ademais, as a´ rvores de decis˜ao s˜ao estruturas n˜ao lineares formadas por a) nodos que representam os atributos de um conjunto de dados; b) linhas que interligam dois nodos a partir do valor de um atributo do no´ de origem; e c) folhas (nodos sem ramificac¸oes) ˜ representando as classes do conjunto de treinamento [Salame 2015, Shiba et al. 2005]. Na construc¸ao ˜ da a´ rvore, o algoritmo que a implementa avalia e relaciona a distribuic¸ao ˜ das classes de modo a particionar, recursivamente, os dados de treino at´e que cada no´ disponha de ramos que o conduzam a uma u´ nica classe, atrav´es de atributos do dataset. Como resultado, a estrutura gerada e´ compactada e utilizada para classificar novos casos [Shiba et al. 2005]. Outra t´ecnica cl´assica de classificac¸ao ˜ implementada nesta abordagem foi o SVM, um m´etodo baseado na teoria do aprendizado estat´ıstico e que deteve consider´avel destaque nos u´ ltimos anos por possuir resultados semelhantes ou melhores que outros sistemas de classificac¸ao, ˜ como as redes neurais artificiais [Haykin 2001, Arafat et al. 2016]. As m´aquinas de vetores de suporte possuem eficiˆencia para an´alise e processamento de grandes volumes de dados, al´em da capacidade de categorizar dados em diversas classes [Araujo ´ et al. 2015]. Esse m´etodo tamb´em possui boa fundamentac¸ao ˜ teorica ´ na literatura e seu objetivo e´ encontrar hiperplanos adequados a fim de dividir os subconjuntos dos dados de treinamento [Arafat et al. 2016]. Muitos processos de classificac¸ao ˜ de imagens necessitam, para uma melhor generalizac¸ao ˜ e acur´acia, que os dados a serem processados tenham suas caracter´ısticas primitivas extra´ıdas e descritas a fim de simplificar o modelo de entrada, repassando ao classificador apenas informac¸oes ˜ relevantes. Dessa forma, a extrac¸ao ˜ de caracter´ısticas constitui a primeira etapa do processo de classificac¸ao ˜ ou identificac¸ao ˜ de objetos em diversas abordagens relacionadas a` vis˜ao computacional, na literatura [Venkatesh and Owens 1990]. Algumas caracter´ısticas consideradas primitivas podem ser bordas de luminˆancia, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
122
linhas ou cores de uma imagem. Existem diversos descritores visuais respons´aveis por realizar a operac¸ao ˜ de extrac¸ao ˜ e otimizac¸ao ˜ dessas caracter´ısticas e, dentre os m´etodos mais populares, pode-se destacar o SIFT (do inglˆes, Scale Invariant Feature Transform), SURF (do inglˆes, Speed Up Robust Features) e o HOG (do inglˆes, Histogram of Oriented Gradients – HOG) [Yi et al. 2013]. Esse u´ ltimo foi estabelecido para ser aplicado nesta abordagem, em conjunto com os m´etodos cl´assicos de classificac¸ao, ˜ em consequˆencia de sua disponibilidade e integrac¸ao ˜ a` s ferramentas de implementac¸ao ˜ utilizadas.
Figura 1. Demonstrac¸ao ˜ do processo de extrac¸ao ˜ de caracter´ısticas pelo metodo ´ HOG: a) Imagem de entrada (e.g., uma folha do BRS-Amazonas); b) mapa de gradientes de parte da imagem; c) orientac¸ao ˜ de gradientes acumulados; e d) histograma final. Adaptado de [Nguyen and Park 2016]
Conforme ilustra a Figura 1, a extrac¸ao ˜ de caracter´ısticas a partir do m´etodo HOG ocorre com a definic¸ao ˜ de um bloco que percorre a imagem. Nesse bloco, a frequˆencia do histograma e´ calculada a fim de localizar a variac¸ao ˜ de intensidade dos pixels ao longo das direc¸oes ˜ x e y. Em seguida, essa variac¸ao ˜ e´ computada e quantificada de forma que, ao fim do processo, obt´em-se um histograma orientado aos gradientes calculados na imagem [Nguyen and Park 2016, Araujo ´ et al. 2015]. Ambas as t´ecnicas cl´assicas de classificac¸ao ˜ mencionadas at´e ent˜ao, ser˜ao testadas com e sem a utilizac¸ao ˜ do descritor de caracter´ısticas HOG, m´etodo introduzido na literatura por [Dalal and Triggs 2005] e proposto inicialmente para o problema de detecc¸ao ˜ de pedestres, embora tamb´em possa ser utilizado para classificac¸ao ˜ de esp´ecies vegetais, conforme e´ apresentado na Sec¸ao ˜ 2.
Figura 2. Ilustrac¸ao ˜ dos processos de classificac¸ao ˜ de cultivares de guarana´ atraves ´ da arquitetura LeNet, um modelo de Rede Neural Artificial Convolucional. Adaptado de [Dvorak and Menze 2015].
As redes neurais convolucionais, compreendendo a terceira t´ecnica avaliada neste Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
123
trabalho, dispensam o emprego de descritores de caracter´ısticas, como o HOG, devido as ` suas camadas convolucionais respons´aveis por tal func¸ao, ˜ conforme ilustra a Figura 2. As CNNs s˜ao consideradas uma variac¸ao ˜ das redes neurais artificiais convencionais e constituem o estado da arte, no campo da vis˜ao computacional e aprendizado de m´aquinas [Gu et al. 2015, Vargas et al. 2016]. Dessa forma, espera-se avaliar o melhor procedimento computacional de modo a definir um m´etodo eficaz que possa ser empregado para auxiliar pesquisadores, agricultores e t´ecnicos agronomos ˆ durante o processo de identificac¸ao ˜ dos cultivares de guaranazeiros, no futuro. N˜ao obstante, visa-se explanar alguns mecanismos t´ecnicos utilizados e relacionados ao aprendizado de m´aquina e vis˜ao computacional presentes neste escrito. O texto deste artigo est´a organizado da seguinte forma: a Sec¸ao ˜ 2 apresenta os Trabalhos Relacionados; a Sec¸ao ˜ 3 busca explanar a preparac¸ao ˜ dos classificadores e do dataset utilizado; a Sec¸ao ˜ 4, por sua vez, discute sobre os resultados alcanc¸ados enquanto que a Sec¸ao ˜ 5 traz algumas considerac¸oes ˜ sobre os feitos realizados longo do projeto.
2. Trabalhos Relacionados Na literatura, a classificac¸ao ˜ de esp´ecimes vegetais atrav´es de folhas e´ estudada em diversos trabalhos a partir de diferentes metodologias, visto a importˆancia dessa abordagem para profissionais e pesquisadores agronomicos ˆ e da a´ rea de computac¸ao ˜ aplicada. Em [Rocha et al. 2010], h´a um comparativo entre quatro classificadores, dentre ´ os quais o SVM e as Arvores de Decis˜ao, a fim de determinar a melhor t´ecnica para classificac¸ao ˜ de 15 diferentes frutas e vegetais, a partir de imagens com resoluc¸ao ˜ de 640×480 pixels no formato RGB, com 8-bits por canal e com fundo extra´ıdo para enfatizar apenas o alvo de treinamento. Nesse trabalho, a t´ecnica SVM supera as a´ rvores de decis˜ao e as outras t´ecnicas atingindo uma taxa de erro de apenas 5%. Em [Arafat et al. 2016] e [Araujo ´ et al. 2015], o classificador SVM, combinado com o descritor HOG, e´ utilizado para classificar imagens de folhas dos datasets Flavia e Pl@ntView, respectivamente. Ambas, bases de imagens vegetais dispon´ıveis para a comunidade acadˆemica. No primeiro trabalho, os autores obtiveram uma acur´acia de 95% enquanto o segundo alcanc¸ou apenas 88.4%. Em [He and Tian 2016] e [Reyes et al. 2015], redes neurais convolucionais s˜ao aplicadas a` tarefa de classificac¸ao ˜ de folhas de diferentes bases de dados. As acur´acias obtidas em cada trabalho s˜ao de 64.1% e aproximadamente 58%, respectivamente. Ambos os trabalhos utilizaram o datset Pl@ntView, mas apenas o segundo utilizou uma rede pr´etreinada com dataset ImageNet.
3. Material e M´etodos Por ser uma planta de origem Amazonica ˆ [Tavares et al. 2005], ainda e´ comum a ausˆencia de imagens das folhas de cultivares de guaranazeiros da Embrapa em datasets publicos ´ que disponibilizam seus dados para pesquisas na a´ rea de aprendizado de m´aquinas e vis˜ao computacional, como o Pl@ntView, Flavia dataset e ImageNet. Dessa forma, foi essencial o desenvolvimento de um dataset proprio, ´ com imagens de alguns dos principais cultivares de guaranazeiros desenvolvidos pela Embrapa. Assim, vinte amostras foliares dos esp´ecimes BRS-Amazonas e BRS-Cerec¸aporanga Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
124
(dez de cada), ambos j´a resistentes a` s principais doenc¸as que atacam o guaran´a [Nascimento Filho et al. 1999, Nascimento Filho et al. 2007], foram coletadas e fotografadas em 28 de Marc¸o de 2017. As imagens foram capturadas com uma resoluc¸ao ˜ de 6000×4000 pixels por um sensor Nikon D7100 em dois aˆ ngulos diferentes, totalizando 40 imagens no total, sendo 20 por cultivar. Em seguida, as fotos foram submetidas a um pr´e-processamento digital onde foram redimensionadas para 1000×1000 pixels, tiveram seus fundos subtra´ıdos e as folhas foram centralizadas na imagem. J´a tratadas, as amostras gr´aficas passaram por um processo de data augmentation a fim de expandir o dataset em 45 vezes seu volume inicial. A Figura 3 apresenta algumas amostras geradas a partir desse procedimento.
a)
b)
Figura 3. Amostras do dataset apos ´ pre-processamento ´ e data augmentation. Na primeira linha, variedades do cultivar BRS-Amazonas e, na linha b), do BRSCerec¸aporanga.
Como resultado da t´ecnica de data augmentation, o dataset desenvolvido teve seu volume ampliado para 1800 imagens, sendo 900 para cada cultivar/classe. O emprego desse procedimento teve certa relevˆancia, visto que a planta do guaran´a e´ arbustiva e, na epoca ´ em que a coleta foi realizada no campo de guaranazeiros da Embrapa, em Manaus, as plantac¸oes ˜ n˜ao possu´ıam abundante quantidade de folhas compostas, sem anomalias fenot´ıpicas e em fase adulta, o que inviabilizava a coleta de muitas amostras sem prejudicar os guaranazeiros. Com a base de imagens j´a definida e devidamente pr´e-processada, optou-se por redimensionar todas as amostras do dataset para 224×224 pixels. Essa preocupac¸ao ˜ visa diminuir o tempo de treinamento e preservar apenas as caracter´ısticas mais importantes nas imagens, que s˜ao invariantes at´e certos tamanhos. Esse processo e´ observado, tamb´em, em trabalhos como os de [Krizhevsky et al. 2012], [Simonyan and Zisserman 2014] e [Reyes et al. 2015]. Quanto aos classificadores cl´assicos, as a´ rvores de decis˜ao foram implementadas a partir do algoritmo CART (Classification And Regression Tree) e as m´aquinas de vetores de suporte foram utilizadas com dois diferentes kernels, um linear e outro RBF (Radial Basis Function), ambos com um parˆametro de penalidade C = 2, 8 e, no o kernel de base radial, γ = 10−1 . Essas duas t´ecnicas foram treinadas com e sem a utilizac¸ao ˜ do descritor HOG que, por sua vez, foi configurado com suporte a 8 orientac¸oes, ˜ 16×16 pixels por c´elulas e 1×1 c´elula por bloco. Todos os m´etodos mencionados neste par´agrafo foram providos e aplicados a partir da biblioteca Scikit-lean [Pedregosa et al. 2011]. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
125
Devido a algumas limitac¸oes ˜ referentes ao formato de entrada dos dados nos algoritmos CART, SVM e HOG, disponibilizados pela biblioteca Scikit-learn, nessas t´ecnicas, foi-se necess´ario converter as imagens do dataset de forma a comportarem um u´ nico canal de cor, o cinza. Assim, o valor de cada pixel compreende-se entre 0 e 255, onde quanto mais proximo ´ a` 0, menor e´ a concentrac¸ao ˜ de luz [Pedregosa et al. 2011]. As CNNs, por outro lado, foram elaboradas a partir da biblioteca Keras, um dos principais meios de implementac¸ao ˜ de redes convolutivas em Python. Diferentemente dos m´etodos cl´assicos, as CNNs dispensam a utilizac¸ao ˜ de descritores como o HOG, a` vista de sua arquitetura robusta que executa a extrac¸ao ˜ de caracter´ısticas por suas camadas convolucionais, conforme exemplifica a Figura 2. Optou-se, ent˜ao, por trabalhar com as arquiteturas LeNet e VGG-16 devido a` not´avel popularidade desses modelos de CNNs, na literatura. Ambas as implementac¸oes ˜ foram treinadas com 60 e´ pocas, uma vez que foi-se observado um ganho de quase 21% na acur´acia final, quando em comparac¸ao ˜ com esses mesmos modelos treinados apenas com 30 e´ pocas. Todos os classificadores utilizaram a base de dados organizada a partir da metodologia holdout, reservando 2/3 do dataset para treino e o restante para a avaliac¸ao, ˜ de forma aleatoria. ´ O ambiente utilizado para realizar tanto o treinamento quanto os testes foi uma instˆancia dedicada do Google Cloud Platform com processamento Intel® Xeon® de 16 nucleos ´ com 2, 6GHz cada, 30GBi de memoria ´ RAM e sistema operacional GNU/Linux Debian.
4. Resultados e Discussoes ˜ Nesta sec¸ao, ˜ os resultados provenientes das avaliac¸oes ˜ experimentais dos m´etodos empregados neste trabalho, ser˜ao explanados e discutidos. Cada t´ecnica foi testada com 594 imagens, equivalente a 33% do dataset e, com isso, foi poss´ıvel calcular a taxa de acerto (acur´acia) e erro, al´em da precis˜ao de classificac¸ao ˜ de cada m´etodo, conforme explana a Tabela 1. Tabela 1. Desempenho de classificac¸ao ˜ dos diferentes metodos ´ abordados.
T´ecnica
Implementac¸ao ˜
LeNet VGG-16 CART ´ Arvore de Decis˜ao CART + HOG Kernel linear M´aquina de Vetor Kernel RBF de Suporte Kernel linear + HOG Kernel RBF + HOG Rede Neural Convolucional
Acuracia ´ (%) Erro (%) Precisao ˜ (%) 89.6 48.5 83.0 73.9 75.6 49.8 81.1 88.7
10.4 51.5 17.0 26.1 24.4 50.2 18.9 11.3
90.5 24.0 81.6 74.8 74.5 25.0 85.1 89.0
E´ poss´ıvel observar, a partir da Tabela 1, que o modelo de CNN LeNet obteve a melhor performance de classificac¸ao, ˜ com uma acur´acia e precis˜ao de 89.6% e 90.5%, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
126
respectivamente. A implementac¸ao ˜ do SVM com o kernel RBF, aliado ao descritor HOG, obteve o segundo melhor desempenho. O algoritmo CART e o SVM, com o kernel linear, conseguiram bons resultados, com e sem a utilizac¸ao ˜ do HOG (i.e., apenas a partir dos pixels das imagens) enquanto que o modelo VGG-16 e a implementac¸ao ˜ do SVM com o kernel RBF e sem a extrac¸ao ˜ de caracter´ısticas, obtiveram os piores resultados.
LeNet VGG-16
1.2 1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
10
20
30
40
50
´ Epocas/Iterac ¸ ao ˜ do Treinamento (a) Acuracia ´ de Treinamento
LeNet VGG-16
1.2
60
0
0
10 20 30 40 50 ´Epocas/Iterac¸ao ˜ do Treinamento
60
(b) Erro de Entropia Cruzada do Treinamento
Figura 4. Metricas ´ do treinamento de ambos os modelos de CNNs, a tecnica ´ que obteve, uma das melhores performances.
O comportamento de ambas as implementac¸oes ˜ das redes convolutivas (Figura 4), durante o treinamento, indica que, em 60 e´ pocas, a rede LeNet convergiu rapidamente, isso, provavelmente, devido a simplicidade dessa arquitetura. A rede VGG-16, por outro lado, por ser um modelo mais robusto e com uma maior quantidade de ”camadas profundas”, em relac¸ao ˜ a LeNet, teve mais dificuldade para se estabilizar em bons resultados e isso pode ter ocorrido em consequˆencia da quantidade de e´ pocas definida para os treinos.
5. Considerac¸oes ˜ Finais De forma geral, os m´etodos de classificac¸ao ˜ abordados nesse trabalho apresentaram bons resultados. T´ecnicas cl´assicas e estado da arte foram utilizadas a fim de obter-se uma comparac¸ao ˜ de performance para o contexto de distinc¸ao ˜ de cultivares de guaranazeiros, a partir da foto de uma amostra foliar. Os achados desta pesquisa referem-se a condic¸oes ˜ e protocolos experimentais, entretanto, com resultados promissores e que constatam a efic´acia dos modelos de predic¸ao ˜ abordados ao decorrer deste projeto. Mesmo que apenas dois cultivares (BRS-Amazonas e BRS-Cerec¸aporanga) tenham sido utilizados na elaborac¸ao ˜ de um dataset proprio, ´ espera-se a expans˜ao dessa base de imagens para um maior numero ´ classes e amostras fotografadas, al´em da disponibilizac¸ao ˜ desse artefato na literatura, em um futuro breve. N˜ao obstante, novas metodologias e configurac¸oes ˜ de treinamento dos classificadores tamb´em podem ser exploradas em trabalhos posteriores. T´ecnicas como fine-tuning e/ou cross-validation podem ser agregadas em novos experimentos, em conjunto com o Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
127
uso de GPUs (Graphics Processing Unit) no processo de treinamento, para o enriquecimento dos resultados.
6. Agradecimentos ` Fundac¸ao A ˜ de Amparo a` Pesquisa do Estado do Amazonas (FAPEAM), pela disponibilizac¸ao ˜ da bolsa de pesquisa; a` Embrapa Amazonia ˆ Ocidental, pela infraestrutura disponibilizada; aos pesquisadores Firmino Jos´e do Nascimento Filho, Adauto Maur´ıcio Tavares e Andr´e Luiz Atroch, cuja disponibilidade e conhecimentos t´ecnicos transmitidos foram imprescind´ıveis; e a` toda a equipe do Nucleo ´ de Tecnologia da Informac¸ao, ˜ em especial, ao Sr. Raimundo Barbosa e ao orientador deste trabalho, Marcos Filipe Alves Salame, por sua excelente orientac¸ao ˜ e recomendac¸oes. ˜
Referˆencias Arafat, S. Y., Saghir, M. I., Ishtiaq, M., and Bashir, U. (2016). Comparison of techniques for leaf classification. In Digital Information and Communication Technology and its Applications (DICTAP), 2016 Sixth International Conference on, pages 136–141. IEEE. Araujo, ´ V. M., Britto, A. d. S. J., and Falate, R. (2015). Combinac¸ao ˜ de classificadores para identificac¸ao ˜ de plantas a partir da imagem da folha. X Congresso Brasileiro de Agroinformatica ´ (SBIAGRO), 10. Dalal, N. and Triggs, B. (2005). Histograms of oriented gradients for human detection. In Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on, volume 1, pages 886–893. IEEE. Dvorak, P. and Menze, B. (2015). Structured prediction with convolutional neural networks for multimodal brain tumor segmentation. Proceeding of the Multimodal Brain Tumor Image Segmentation Challenge, pages 13–24. Gu, J., Wang, Z., Kuen, J., Ma, L., Shahroudy, A., Shuai, B., Liu, T., Wang, X., and Wang, G. (2015). Recent advances in convolutional neural networks. arXiv preprint arXiv:1512.07108. Haykin, S. O. (2001). Redes Neurais: Princ´ıpios e Praticas. ´ Bookman, Porto Alegre, second edition. He, A. and Tian, X. (2016). Multi-organ plant identification with multi-column deep convolutional neural networks. In Systems, Man, and Cybernetics (SMC), 2016 IEEE International Conference on, pages 002020–002025. IEEE. IBGE (2015). Pesquisa mensal de previs˜ao e acompanhamento das safras agr´ıcolas no ano civil. Levantamento Sistematico ´ da produc¸ao ˜ Agrcola, 29(4):49. Krizhevsky, A., Sutskever, I., and Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. In Pereira, F., Burges, C. J. C., Bottou, L., and Weinberger, K. Q., editors, Advances in Neural Information Processing Systems 25, pages 1097–1105. Curran Associates, Inc. MAPA (2010). Instruc¸oes ˜ para execuc¸ao ˜ dos ensaios de distinguibilidade, homogeneidade e estabilidade de cultivares de guaran´a (Paullinia cupana var. Sorbilis). Republica ´ Federativa do Brasil: Diario ´ Oficial da Unao. ˜ Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
128
Nascimento Filho, F., Atroch, A., Pereira, J., and Araujo, ´ J. (2007). Brs-cerec¸aporanga: nova cultivar para o agronegocio ´ do guaran´a. Embrapa Amazonia ˆ Ocidental. Comunicado T´ecnico. Nascimento Filho, F. J., Atroch, A. L., da Silva Cravo, M., de Macˆedo, J. L. V., Garcia, T. B., Junior, ´ R. C. C., and Ribeiro, J. d. R. C. (1999). Clones de guaranazeiro para o Estado do Amazonas. Embrapa Amazonia ˆ Ocidental. Nguyen, D. T. and Park, K. R. (2016). Enhanced gender recognition system using an improved histogram of oriented gradient (hog) feature from quality assessment of visible light and thermal images of the human body. Sensors, 16(7):1134. Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M., and Duchesnay, E. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12:2825–2830. Reyes, A. K., Caicedo, J. C., and Camargo, J. E. (2015). Fine-tuning deep convolutional networks for plant recognition. In CLEF (Working Notes). Rocha, A., Hauagge, D. C., Wainer, J., and Goldenstein, S. (2010). Automatic fruit and vegetable classification from images. Computers and Electronics in Agriculture, 70(1):96–104. Salame, Marcos F. A.; Salame, F. M. (2015). Comparac¸ao ˜ de t´ecnicas de aprendizado de m´aquina com pr´e-processamento para decis˜ao de profilaxia da tuberculose. In I Congresso Amazonico ˆ de Computac¸ao ˜ e Sistemas Inteligentes, volume 1, pages 73– 80, Manaus. UEA. Shiba, M. H., Santos, R. L., Quintanilha, J. A., and KIM, H. (2005). Classificac¸ao ˜ de imagens de sensoriamento remoto pela aprendizagem por a´ rvore de decis˜ao: uma avaliac¸ao ˜ de desempenho. Simposio ´ Brasileiro de Sensoriamento Remoto, 12:4–319. Simonyan, K. and Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. CoRR, abs/1409.1556. Tavares, A., Atroch, A., Nascimento Filho, F., Pereira, J., Araujo, ´ J., Moraes, L., et al. (2005). Cultura do guaranazeiro no amazonas. Manaus: Embrapa Amazonia ˆ Ocidental. Sistema de Produc¸ao, ˜ 4. Tricaud, S., Pinton, F., and Pereira, H. d. S. (2016). Saberes e pr´aticas locais dos produtores de guaran´a (paullinia cupana kunth var. sorbilis) do m´edio amazonas: duas organizac¸oes ˜ locais frente a` inovac¸ao. ˜ Boletim do Museu Paraense Em´ılio Goeldi. Ciˆencias Humanas, 11(1):33–53. Vargas, A. C. G., Paes, A., and Vasconcelos, C. N. (2016). Um estudo sobre redes neurais convolucionais e sua aplicac¸ao ˜ em detecc¸ao ˜ de pedestres. Conference on Graphics, Patterns and Images (SIBGRAPI), 29. Venkatesh, S. and Owens, R. (1990). On the classification of image features. Pattern Recognition Letters, 11(5):339–349. Yi, C., Yang, X., and Tian, Y. (2013). Feature representations for scene text character recognition: A comparative study. In Document Analysis and Recognition (ICDAR), 2013 12th International Conference on, pages 907–911. IEEE. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
129
Anais do Encontro Regional de Computação e Sistemas de Informação
Algoritmos Baseados em Busca Cega Aplicados em Teoria dos Grafos Iramar F. dos Santos1 , Alexandre M. Queiroga2 1
˜ Aluno do curso Bacherelado em Sistemas de Informac¸ao Universidade Federal do Rio Grande do Norte (UFRN) Caixa Postal 1524 – 59.078-970 – Natal – RN – Brasil
2
˜ e Tecnologia Professor do Departamento de Computac¸ao Universidade Federal do Rio Grande do Norte (UFRN) Caixa Postal 1524 – 59.078-970 – Natal – RN – Brasil
iramarbsi@gmail.com, alexandrekurticao@gmail.com
Abstract. This work presents blind search algorithms applied in graphs models existing in literature of complex networks, with the purpose of point what is the best algorithm for each graph model according to the experiments done. Resumo. Este trabalho apresenta algoritmos de busca cega aplicados em modelos de grafos existentes na literatura de redes complexas, com a finalidade de apontar qual e´ o melhor algoritmo para cada modelo de grafo de acordo com os experimentos feitos.
˜ 1. Introduc¸ao O estudo a teoria dos grafos e´ um tema que abrange diversas a´ reas de conhecimentos, ˆ ˜ matematica, ´ ´ como a ciencia da computac¸ao, fısica, biologia e sociologia. O termo teoria ´ como redes complexas, redes essas que sao ˜ usadas para dos grafos e´ conhecido tambem ˜ do mundo real, como a topologia da rede de internet de uma cidade, o modelar situac¸oes ´ cerebro humano, mapear as cidade de um estado do pa´ıs. Suponha-se que uma rede complexa esta´ sendo utilizada para mapear as cidades de um estado e veˆ a necessidade de verificar qual e´ o melhor caminho da cidade A para a ˜ surge a obrigac¸ao ˜ de utilizar algoritmos de busca para resolver esse tipo de proB, entao ˜ os procedimentos mais utilizados na teoria blema, que de acordo com [Souza 2013] sao de grafos. O objetivo do presente artigo e´ identificar qual e´ o melhor algoritmo de busca ´ ˜ abordara´ o cega para cada modelo de grafo apresentado no mesmo. As proximas sec¸oes ˜ conceito de teoria dos grafos, busca cega, experimentos realizados e conclusoes.
2. Teoria dos Grafos Um grafo e´ definido como um conjunto de pares (V, E), onde V e´ um conjunto de ´ ´ do grafo), e E e´ o conjunto de arestas que fazem a ligac¸ao ˜ entre os vertices ´ vertices (nos ˜ que seria um [Cohen and Havlin 2010]. Em cada aresta pode existir um peso ou nao, ´ custo de um vertice para o outro que a mesma esta´ conectada. ˜ ou seja, se existir uma aresta Em um grafo direcionado, as arestas tem direc¸ao, ˜ a vj , e outra que parte de vj em direc¸ao ˜ a vi , entao ˜ (((vi , vj ) ∈ que parte de vi em direc¸ao Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
˜ direcionado, nao ˜ existe uma E) ⇔ ((vj , vi ) ∈ E)) [Medeiros 2014]. Ja´ em um grafo nao ˜ na aresta, ou seja, o par de vertice ´ direc¸ao que esta´ ligado a uma aresta, pode se conectar entre si. Um grafo pode ser representado computacionalmente por uma matriz de adˆ ´ jacencia Aij , que e´ uma matriz em que toda linha e coluna representa um vertice do ˜ da matriz Aij e´ 1, se existir uma aresta entre vi e vj , se nao ˜ existir, o grafo. Uma posic¸ao ˜ da matriz Aij e´ 0. valor da posic¸ao
´ 2.1. Grafos Aleatorios ´ ¨ e Alfred O modelo de grafos aleatorios G(n, p) foi intruduzido em 1960 por Paul Erdos ´ ´ Renyi, onde comec¸aram a inicializar o conceito sobre a teoria de grafos aleatorios. De ´ ˜ e´ um estudo indiacordo com [Cohen and Havlin 2010] a teoria de grafos aleatorios nao ´ vidual de grafos, mas e´ um estudo de um conjunto de estatısticas dos grafos. Este modelo ´ ˆ ´ n, e uma gera varios grafos diferentes, onde e´ passado por parametro a quantidade de nos ´ estarem ligados a uma aresta, o Algoritmo 1 gera probabilidade p de quaisquer dois nos um grafo deste modelo. ´ Algoritmo 1: G RAFO A LEAT ORIO Entrada: G(n, p) 1 in´ıcio N ← cria-nos(n) {Cria uma lista com n nos ´ } 2 3 E ← cria-arestas() {Cria uma lista vazia de arestas} 4 para cada aresta poss´ıvel e fac¸a se distribuic¸ao-uniforme(0,1) ˜ 5 < p entao ˜ ˜ 6 inserir-aresta(E,e) {Inserc¸ao condicionada por sorteio em ˜ uniforme } distribuicao 7 fim 8 fim 9 fim 10 retorna G = (N,E) {Grafo aleatorio resultante.} ´
2.2. Grafo de mundo pequeno Watts e Strogatz deram in´ıcio ao modelo de mundo pequeno G(n, k, p) [Watts and Strogatz 1998], que apresenta um grafo em estrutura de c´ırculo (grafo ´ ´ ˆ regular) com n vertices, k arestas que cada vertice possui e o parametro p serve para ´ ter feito esse redirecionamento, a o redirecionamento das arestas do grafo, onde apos ´ ´ estrutura deste grafo vai ser semelhante a de um grafo aleatorio. Se p for proximo de ˜ ha´ muita alterac¸ao ˜ na estrutura do grafo regular inicial, e caso p seja proximo ´ 0, nao ´ de 1, a estrutura do grafo regular sera´ similar a` um grafo aleatorio [Medeiros 2014]. O ´ um grafo de mundo pequeno, e a Figura 1 e´ uma ilustrac¸ao ˜ deste Algoritmo 2 constroi modelo de grafo. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
131
Algoritmo 2: G RAFO DE M UNDO P EQUENO Entrada: G(n, k, p) 1 in´ıcio 2 G ← cria-grafo-regular(n,k) {Cria um grafo regular G = (N, E). } 3 para cada aresta e ∈ E fac¸a se distribuic¸ao-uniforme(0,1) ˜ 4 < p entao ˜ 5 e ← redifinir-aresta(e) {Redifinir aresta. } 6 fim 7 fim 8 fim 9 retorna G = (N,E) {Grafo de mundo pequeno resultante.}
Figura 1. Exemplo de grafo de mundo pequeno
2.3. Grafo livre de escala
´ Barabasi e Albert deram in´ıcio ao modelo de grafo livre de escala G(n, m), que e´ semelhante com as redes de computadores do mundo real. Este modelo e´ baseado em dois ´ princ´ıpios para que a rede evolua, a primeira e´ no crescimento, onde a cada vertice adici˜ preferencial, que a cada onado na rede e´ conectado m arestas a ele, o segundo e´ na ligac¸ao ´ ´ novo vertice sera´ ligado a outros vertices existentes com a probabilidade proporcional ao seu grau atual [Cohen and Havlin 2010], o Algoritmo 3 e´ um exemplo de como construir um grafo livre de escala. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
132
Algoritmo 3: G RAFO L IVRE DE E SCALA Entrada: G(n, m) 1 in´ıcio N ← cria-nos(m) {Cria uma lista com m nos ´ com grau nulo. } 2 3 E ← cria-arestas() {Cria uma lista vazia de arestas} 4 enquanto |N| < n fac¸a 5 h ← sortear-vizinhos(N,m) Escolha preferencial de vizinhos com maior grau. 6 i ← |N | + 1 7 inserir(N , vi ) 8 para cada vj ∈ h fac¸a 9 inserir(E, (vi , vj )) 10 fim 11 fim 12 fim 13 retorna G = (N,E) {Grafo livre de escala resultante.}
3. Busca Cega A busca cega na literatura de AI (Artificial intelligence) e´ conhecida como busca sem ˜ ou seja, nao ˜ tem alguma informac¸ao ˜ a mais sobre os estados, alem ´ daqueles informac¸ao, ˜ do problema [Russel and Norving 2009]. Existe alguns que e´ fornecidos na definic¸ao algoritmos de busca cega, mas de acordo com [Rosa 2011] a busca em profundidade e ˜ as mais comuns. Nesta sec¸ao ˜ e´ apresentado os algoritmos de busca busca em largura sao cega que foram feitos os experimentos aplicados aos modelos de grafos abordados na ˜ 2. sec¸ao 3.1. Busca em profundidade ´ A busca em profundidade conhecida como DFS (Depth-first search), tem como estrategia expandir o no´ mais profundo do no´ atual da a´ rvore de busca. Este algoritmo utiliza uma ˜ dos nos, ´ ou seja, o no´ verificado mais fila LIFO (Last In, First Out) para a expansao ˜ [Russel and Norving 2009]. recente e´ escolhido para a sua expansao 3.2. Busca em largura ´ A busca em largura (BFS - Breadth-first search) tem a estrategia de expandir o no´ raiz, ´ e assim em seguida os vizinhos do no´ raiz e´ expandido, depois os vizinhos desses nos, por diante ate´ chegar o objetivo. Este algoritmo utiliza uma fila FIFO (First In, First ˜ dos nos, ´ ou seja, os primeiros nos ´ verificados sao ˜ os primeiros a ser Out) para a expansao expandidos. Segundo [Rosa 2011], “a busca em largura garante achar um caminho mais curto a um no´ meta, se esse caminho existir”. 3.3. Busca de custo unifome ´ A busca de custo uniforme tem a mesma estrategia da busca em largura, mas o diferencial ´ e seus custos do no´ raiz ate´ o no´ que quer dela, e´ que utiliza uma fila ordenada com os nos ´ com menores custos. ser expandido, ou seja, essa fila garante o algoritmo expandir os nos Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
133
4. Experimento 1 ´ Este experimento foi realizado em uma maquina com o sistema operacional Linux, cri˜ 2, e calculando tempo de execuc¸ao ˜ em ando grafos dos modelos aprentadados na sec¸ao ˜ dos algoritmos mostrados na sec¸ao ˜ 3 microssegundos da busca para encontrar a soluc¸ao aplicados nos grafos gerados. ´ 4.1. Experimento 1 em Grafos Aleatorio ´ Foi criado grafos aleatorios com n entre 100 a` 500 e p entre 0.1 (10 por cento) a` 1 (100 ˜ da busca dos algoritmos de por cento). Na Tabela 1 e´ apresentado o tempo de execuc¸ao ´ busca cega aplicado ao modelo de grafo aleatorio, e na Figura 2 e´ mostrado o tempo de ˜ da busca em forma grafica ´ execuc¸ao de uma amostra do experimento com a probabilidade ´ do p = 0.3 de cada algoritmo de busca cega da tabela, onde o eixo x e´ a quantidade de nos ˜ da busca do algoritmo. grafo e o eixo y e´ o tempo de execuc¸ao Tabela 1. Tempos da busca dos algoritmos de busca cega aplicado em grafos ´ aleatorio.
Prob. (p) Busca em profundidade Quantidade de nos ´ (n) 100 200 300 400 0.1 10.90 24.85 47.06 88.63 0.2 10.53 24.16 61.46 91.06 0.3 10.33 26.85 62.92 85.83 0.4 10.03 27.55 54.16 73.72 0.5 10.07 28.11 53.70 69.63 0.6 10.17 27.39 47.70 63.35 0.7 10.05 25.14 43.51 61.08 0.8 9.66 23.84 41.24 53.64 0.9 10.26 20.99 37.70 48.48 1 8.85 19.51 33.74 43.54
500 121.83 115.24 111.60 111.15 89.43 71.13 75.70 67.53 60.66 57.27
Busca em largura Quantidade de nos ´ (n) 100 200 300 400 13.09 27.22 41.97 61.07 13.62 27.15 45.62 54.85 13.01 28.00 44.79 56.77 12.81 29.84 41.75 55.97 12.57 30.80 43.74 56.22 12.85 30.05 43.77 56.69 13.49 29.63 44.69 58.18 12.96 30.16 45.52 58.35 15.09 29.69 44.76 57.65 12.59 30.43 44.22 54.27
500 69.73 65.97 67.83 75.11 67.86 66.42 70.85 71.00 70.28 71.22
Busca de custo uniforme Quantidade de nos ´ (n) 100 200 300 400 18.76 66.11 137.58 246.67 21.08 69.72 160.90 264.36 22.30 76.98 177.49 283.96 22.81 81.16 173.12 275.12 23.32 88.08 171.92 272.93 21.80 82.86 171.69 273.49 22.51 83.24 161.88 260.44 20.74 85.69 157.34 250.02 25.23 76.85 150.35 230.12 19.23 75.57 144.43 218.50
˜ da busca dos algoritmos apresentado na Sec¸ao ˜ 3 Figura 2. Tempo de execuc¸ao ´ em grafos aleatorios com n entre 100 a 500 com p = 0.3
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
134
500 347.92 361.27 402.88 460.21 395.71 376.32 381.25 359.44 339.20 343.95
4.2. Experimento 1 em Grafos de mundo pequeno √ Foi criado grafos de mundo pequeno G(n, k, p) com n entre 50 a` 300, k ≥ 2 n e com probabilidades de 0.1 (10 por cento) a 1 (100 por cento). Nas Tabelas 2, 3 e 4 e´ apresentado o ˜ da busca dos algoritmos de busca cega aplicado ao modelo de grafo de tempo de execuc¸ao ´ o redirecionamento mundo pequeno, ou seja, no grafo regular e no grafo resultante apos ˜ 2.2. das arestas explicado na Subsec¸ao
Tabela 2. Tempos da busca do algoritmo de busca em profundidade aplicado em grafo de mundo pequeno.
Prob. (p)
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Grafo regular Quantidade de nos ´ (n) 100 150 200 250 12.31 21.71 24.69 31.43 14.57 34.35 28.50 36.41 14.49 25.08 29.95 36.70 14.97 22.80 28.29 33.35 14.48 26.10 27.38 35.65 15.50 31.17 29.05 38.09 15.00 26.63 28.23 36.79 16.15 28.69 28.34 35.88 15.17 30.28 29.89 72.46 14.58 27.32 29.70 55.34
300 47.95 56.90 68.60 67.22 77.20 69.82 70.82 70.95 68.53 64.10
Grafo resultante Quantidade de nos ´ (n) 100 150 200 250 14.12 20.91 23.12 28.34 14.61 23.27 22.90 28.37 15.92 19.87 23.04 28.29 19.48 18.72 23.83 28.88 20.59 20.76 22.66 30.04 19.39 23.63 24.36 29.45 18.60 21.68 24.39 29.70 23.42 22.80 22.94 29.81 21.28 25.11 23.82 36.34 23.56 23.43 24.07 35.79
300 45.17 45.82 51.09 47.83 52.49 51.83 50.30 49.11 52.11 52.28
Tabela 3. Tempos da busca do algoritmo de busca em largura aplicado em grafo de mundo pequeno.
Prob. (p)
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Grafo regular Quantidade de nos ´ (n) 100 150 200 250 18.29 35.43 45.67 54.56 21.12 61.12 52.12 67.51 19.62 42.61 58.47 73.97 21.45 40.28 56.06 73.59 23.32 52.89 57.32 74.15 21.85 64.76 57.86 74.29 22.11 57.60 57.61 77.83 25.06 62.71 60.42 75.83 24.56 69.86 58.19 166.29 23.36 60.12 64.33 146.01
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
300 96.78 137.60 176.87 166.65 181.94 189.22 192.85 198.83 188.91 173.55
Grafo resultante Quantidade de nos ´ (n) 100 150 200 250 19.07 25.60 29.28 36.54 17.52 27.83 29.95 36.34 18.96 51.52 29.42 36.47 21.10 23.92 27.96 35.28 21.68 24.85 25.95 34.76 21.29 28.98 27.57 35.01 22.56 26.08 27.63 35.79 23.99 28.83 27.50 37.34 24.35 27.90 29.93 43.33 26.00 26.32 27.94 43.33
300 55.61 57.73 59.45 51.32 56.11 52.88 52.81 52.95 55.38 52.53
135
Tabela 4. Tempos da busca do algoritmo de busca de custo uniforme aplicado em grafo de mundo pequeno.
Prob. (p)
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Grafo regular Quantidade de nos ´ (n) 100 150 200 250 20.97 52.65 58.33 71.33 24.10 83.98 58.40 85.95 22.13 51.46 67.03 88.08 27.55 48.46 64.89 90.50 25.85 66.79 64.49 90.41 25.40 85.21 63.19 85.28 25.90 74.27 64.37 91.68 27.43 81.85 70.37 91.61 27.81 90.51 66.28 190.76 27.70 78.78 72.97 188.80
300 161.80 201.57 246.64 202.21 234.05 245.58 245.26 247.99 255.89 222.57
Grafo resultante Quantidade de nos ´ (n) 100 150 200 250 28.31 49.20 60.69 79.06 27.18 54.22 63.00 84.78 31.94 48.25 66.88 91.81 37.17 44.77 68.67 86.65 37.28 52.26 57.27 89.12 36.29 59.39 69.62 88.44 39.17 53.85 62.31 90.69 41.17 57.77 64.14 100.38 47.70 60.11 67.40 122.89 44.53 58.14 71.96 118.65
300 129.97 142.43 144.06 130.98 149.23 139.99 144.50 149.53 153.34 162.71
4.3. Experimento 1 em Grafos livre de escala Foi criado grafos livre de escala G(n, m) com n entre 100 a` 500 e m de 5 a` 10. Na Tabela 5 ˜ da busca dos algoritmos de busca cega aplicado ao e´ apresentado o tempo de execuc¸ao ˜ da busca em modelo de grafo livre escala, e na Figura 3 e´ mostrado o tempo de execuc¸ao ´ forma grafica de uma amostra do experimento com m = 0.3 de cada algoritmo de busca ´ do grafo e o eixo y e´ o tempo de cega da tabela, onde o eixo x e´ a quantidade de nos ˜ da busca do algoritmo. execuc¸ao Tabela 5. Tempos da busca dos algoritmos de busca cega aplicado em grafos livre de escala.
(m) Busca em profundidade Quantidade de nos ´ (n) 100 200 300 400 5 9.86 19.66 35.26 46.89 6 10.33 20.73 32.79 48.55 7 10.63 20.35 35.94 46.03 8 11.19 20.16 34.10 45.82 9 10.80 20.71 35.34 45.03 10 10.43 21.23 36.72 46.72
500 59.93 62.48 62.00 57.09 60.86 57.01
Busca em largura Quantidade de nos ´ (n) 100 200 300 400 14.01 29.70 44.53 58.30 14.53 31.34 40.39 59.37 21.73 31.64 43.40 56.01 19.34 30.15 43.49 57.94 17.98 30.90 43.13 56.32 15.54 33.38 48.70 59.71
500 74.64 75.28 78.37 69.20 76.22 71.90
Busca de custo uniforme Quantidade de nos ´ (n) 100 200 300 400 19.90 60.33 118.72 198.84 20.50 64.12 106.27 216.02 21.83 63.90 120.23 191.63 22.70 60.47 113.91 192.29 21.70 61.87 122.64 185.45 20.30 62.46 127.09 209.94
500 313.36 318.90 322.67 293.00 317.20 296.91
5. Experimento 2 ˜ 4, mas ao ´ınves Este experimento foi realizado da mesma forma do experimento da sec¸ao ˜ da busca dos algoritmos de busca cega, e´ calculado uma de calcular o tempo de execuc¸ao ´ ˜ media do tamanho do caminho da busca para encontrar uma soluc¸ao. ´ 5.1. Experimento 2 em Grafos Aleatorio ´ Foi criado grafos aleatorios com n entre 100 a` 500 e p entre 0.1 (10 por cento) a` 1 (10 ´ por cento). Na Figura 4 e´ apresentado uma media do tamanho da busca dos algoritmos ´ de duas amostras do experimento a de busca cega aplicado ao modelo de grafo aleatorio Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
136
˜ da busca dos algoritmos apresentado na Sec¸ao ˜ 3 Figura 3. Tempo de execuc¸ao em grafos livre de escala com n entre 100 a 500 com m = 7
´ primeira com p = 0.3 e a segunda com p = 0.5, ambas em forma grafica, onde o eixo x e´ a ´ do grafo e o eixo y e´ o tamanho do caminho da busca. quantidade de nos
(a) p = 0.3
(b) p = 0.5
Figura 4. Tamanho do caminho da busca
5.2. Experimento 2 em grafos de mundo pequeno
√ Foi criado grafos de mundo pequeno G(n, k, p) com n entre 50 a` 300, k ≥ 2 n e com probabilidades de 0.1 (10 por cento) a 1 (100 por cento). Na Figura 5 e´ apresentado uma ´ media do tamanho da busca dos algoritmos de busca cega aplicado ao modelo de grafo de ´ o redirecionamento mundo pequeno, ou seja, no grafo regular e no grafo resultante apos ˜ 2.2. das arestas explicado na Subsec¸ao 5.3. Experimento 2 em grafos livre de escala Foi criado grafos livre de escala G(n, m) com n entre 100 a` 500 e m de 5 a 10. Na Figura 6 ´ e´ apresentado uma media do tamanho da busca dos algoritmos de busca cega aplicado ao Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
137
(a) Grafo regular com n = 200
(b) Grafo resultante com n = 200
Figura 5. Tamanho do caminho da busca
modelo de grafo livre escala de duas amostras do experimento a primeira com m = 5, e ´ ´ do a segunda com m = 7, ambas em forma grafica, onde o eixo x e´ a quantidade de nos grafo e o eixo y e´ o tamanho do caminho da busca.
(a) Grafo livre de escala com m = 5
(b) Grafo livre de escala com m = 7
Figura 6. Tamanho do caminho da busca
˜ 6. Conclusoes ˜ de algoritmos de busca cega aplicado em modelos de Este trabalho ressaltou a utilizac¸ao grafos, onde pode-se ver os resultados nas tabelas e figuras nos experimentos apresentado ˜ ˜ 4 de forma geral, o melhor algoritmo que nas sec¸oes 4 e 5. O Exerimento da sec¸ao ´ foi o de busca em largura, e nos trouxe melhores resultados no modelo de grafos aleatorio outros dois modelos foi o de busca em profundidade, ja´ a busca de custo uniforme ficou ˜ a este experimento. No Experimento da sec¸ao ˜ 5 nos com os piores resultados em relac¸ao ˆ modelos de grafos apresentado neste trabalho, de forma geral, o algoritmo de busca tres em largura e o de custo uniforme trouxeram melhores resultados, ou seja, se tiver algum ´ em modelos de grafos problema que tem que encontrar o menor caminho entre dois nos ˜ 2, os melhores algoritmos de busca a` iguais ou semelhantes que foi apresentado na sec¸ao ˜ esses. utilizar sao
ˆ Referencias Cohen, R. and Havlin, S. (2010). Complex Networks: Structure, Robustness and Function. Cambridge University Press. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
138
Medeiros, J. P. S. (2014). A Influencia da Observabilidade e da Visualizac¸ao ˆ ˜ Radial no Projeto de Sistemas de Monitoramento de Redes de Computadores. PhD thesis, ´ Universidade Federal do Rio Grande do Norte, Centro de Tecnologia, Curso de Pos˜ em Engenharia Eletrica ´ ˜ Natal. Graduac¸ao e da Computac¸ao, Rosa, J. L. G. (2011). Fundamentos da inteligencia artificial. LTC. ˆ Russel, S. J. and Norving, P. (2009). Artificial Intelligence: A Modern Approach. Prentice Hall, 3th edition. ˜ Souza, A. L. d. (2013). Teoria do grafos e aplicac¸oes. Master’s thesis, Universidade ˆ Federal do Amazonas, Instituto de Ciencias Exatas, Curso de Mestrado Profissional ´ em Matematica, Manaus. Watts, D. J. and Strogatz, S. H. (1998). Collective dynamics of ‘small-world’ networks. Nature.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
139
Anais do Encontro Regional de Computação e Sistemas de Informação
Sobre problemas de listas colorac¸oes ˜ limitadas e a propriedade da selecionabilidade em grafos Simone I. M. Gama1 , Rosiane de Freitas1 , Mario ´ Salvatierra1 1
Instituto de Computac¸ao ˜ - IComp – Universidade Federal do Amazonas (UFAM) Manaus – AM – Brasil {simone.gama,rosiane,mario}@icomp.ufam.edu.br
Abstract. In this work, we investigated list coloring problems and the property of choosability in graphs, with emphasis in the case where the color lists have lower and upper limits, resulting in a limited sequence of colors. The List Coloring has some variations, among them the (γ, µ)-coloring. Thus, the results of the correlation between the (γ, µ)-coloring and the property of choosability in graphs, resulting in the k-(γ, µ)-coloring, with the determination of theorems, algorithms and their computational complexities, Through the use of proof techniques adapted to prove the choosability in specific classes of graphs, and mainly to determine that if a graph is k-colorable then it is also k-(γ, µ)choosable, with computational complexity being reduced from ΠP2 -complete to N P -complete. Resumo. Neste trabalho, foram investigados problemas de lista colorac¸ao ˜ ea propriedade da selecionabilidade em grafos, com eˆ nfase no caso onde as listas de cores possuem limites inferior e superior, resultando em uma sequˆencia limitada de cores. A lista colorac¸ao ˜ possui algumas variac¸oes, ˜ dentre elas a (γ, µ)-colorac¸ao. ˜ Sendo assim, sao ˜ apresentados os resultados da correlac¸ao ˜ entre a (γ, µ)-colorac¸ao ˜ e a propriedade de selecionabilidade em grafos, resultando na k-(γ, µ)-colorac¸ao, ˜ com a determinac¸ao ˜ de teoremas, algoritmos e suas complexidades computacionais, atrav´es do uso de t´ecnicas de provas adaptadas para provar a selecionabilidade em classes espec´ıficas de grafos, e, principalmente, determinar que se um grafo e´ k-colorac¸ao ˜ entao ˜ tamb´em e´ k-(γ, µ)-selecionavel, ´ sendo a complexidade computacional reduzida de ΠP2 completa para N P -completa.
1. Introduc¸ao ˜ Seja G = (V, E) um grafo simples n˜ao orientado e sem lac¸os, onde V e´ o conjunto de v´ertices e E o conjunto de arestas. Um subgrafo de um grafo G e´ um grafo cujo conjunto de v´ertices e´ um subconjunto do conjunto de v´ertices G e o conjunto de arestas e´ um subconjunto do conjunto de arestas de G. Um grafo bipartido e´ um grafo cujos v´ertices podem ser divididos em dois conjuntos disjuntos U e V tais que toda aresta conecta um v´ertice em U a um v´ertice em V . Um grafo bipartido e´ completo se para quaisquer dois ´ de v´ertices, v1 ∈ V1 e v2 ∈ V2 , v1 v2 e´ uma aresta em G. O grau de um v´ertice v e´ o numero arestas incidentes a` v. Uma k-colorac¸ao ˜ de G e´ uma atribuic¸ao ˜ de k cores ao seu conjunto de v´ertices tal que v´ertices adjacentes recebam cores diferentes. O numero ´ crom´atico de G, denotado por χ(G) e´ o menor valor de k para o qual G e´ k-color´ıvel. As definic¸oes ˜ aqui apresentadas s˜ao encontrados em Szwarcfiter [1988]. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
A colorac¸ao ˜ em grafos possui diversas variac¸oes, ˜ dentre elas, temos a lista colorac¸ao. ˜ Seja G um grafo para o qual existe um conjunto associado L(v) de lista de cores espec´ıficas para cada v´ertice v de G. Se e´ poss´ıvel obter uma colorac¸ao ˜ propria ´ dos v´ertices de G com essa lista de cores, ent˜ao temos uma lista colorac¸ao ˜ de G. A lista colorac¸ao ˜ tamb´em possui suas variac¸oes, ˜ dentre elas, a µ-colorac¸ao ˜ e a (γ, µ)-colorac¸ao, ˜ introduzidas por Bonomo [2005] e Bonomo et al. [2009]. A Tabela 1 apresenta uma pequena comparac¸ao ˜ de resultados da literatura em complexidade computacional para colorac¸ao ˜ cl´assica, µ-colorac¸ao, ˜ (γ, µ)-colorac¸ao ˜ e lista colorac¸ao. ˜ Classe de Grafo Geral Bipartido Split Intervalo Linha do Kn Linha do Kn,n Cografos Kn,n Blocos
k-colorac¸ao ˜ NP-C Garey and Johnson [1979] P Bonomo et al. [2009] P Golumbic [1980] P Grostschel ¨ and Lovasz [1981] P Konig ¨ [1916] P Konig ¨ [1916] P Grostschel ¨ and Lovasz [1981] P Bonomo and Duran [2007] P Bonomo and Duran [2007]
µ-colorac¸ao ˜ NP-C Bonomo [2005] NP-C Bonomo [2005] NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] P Bonomo [2005] P Bonomo [2005] P Bonomo and Duran [2007]
(γ, µ)-colorac¸ao ˜ NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] ? P Bonomo and Duran [2007] P Bonomo and Duran [2007]
Lista colorac¸ao ˜ NP-C Kubiak et al. [1999] NP-C M. [2004] NP-C Bonomo et al. [2009] NP-C Bonomo et al. [2009] NP-C M. [2004] NP-C Bonomo et al. [2009] NP-C Jansen and Scheffler [1997] NP-C Bonomo and Duran [2007] P Bonomo and Duran [2007]
Tabela 1. Comparac¸ao ˜ da complexidade computacional em colorac¸ao ˜ classica, ´ µ-colorac¸ao, ˜ (γ, µ)-colorac¸ao ˜ e lista colorac¸ao. ˜ O sinal de ? significa problema em aberto.
Apesar de ser um problema teorico, ´ a lista colorac¸ao ˜ pode ser mapeada para inumeros ´ problemas reais, como exemplo, o problema de alocac¸ao ˜ de canais em redes sem fio, onde ocorre a distribuic¸ao ˜ de canais para cada conex˜ao de diferentes transmissores em uma rede sem fio, utilizando uma faixa limitada do espectro eletromagn´etico e evitando ou minimizando interferˆencias, por Dias [2014]. O problema e´ modelado da seguinte forma: As estac¸oes ˜ de r´adios s˜ao representados pelos v´ertices, as arestas representam as estac¸oes ˜ que interfiram entre si, os dom´ınios de frequˆencia como listas de cores poss´ıveis e os canais como cores atribu´ıdas a cada v´ertice. Observe a Figura 1.
Figura 1. Alocac¸ao ˜ de canais em redes sem fio modelado como lista colorac¸ao. ˜
2. Selecionabilidade em grafos e k-(γ, µ)-selecionabilidade Esta sec¸ao ˜ apresenta as definic¸oes ˜ necess´arias para o entendimento do estudo realizado. Temos as definic¸oes ˜ de selecionabilidade em grafos, a (γ, µ)-colorac¸ao, ˜ que e´ uma variac¸ao ˜ da lista colorac¸ao ˜ e grafos e a correlac¸ao ˜ entre os dois citados e que foi o alvo do estudo, a k-(γ, µ)-colorac¸ao. ˜ Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
141
Dada uma func¸ao ˜ f de atribuic¸ao ˜ de um inteiro positivo f (v) para cada v´ertice v, um grafo e´ f -selecion´avel ou f -choosable se G possui uma lista colorac¸ao ˜ com as listas de cores atribu´ıdas a cada v ∈ V . Definic¸ao ˜ 1 (Erdos et al. [1979]). Um grafo G e´ k-selecionavel ´ (ou k-choosable) se existe uma lista colorac¸ao ˜ para qualquer atribuic¸ao ˜ de listas de cores de tamanho k para cada v´ertice de G. Definic¸ao ˜ 2 (Erdos et al. [1979]). A lista numero ´ cromatico ´ ou choice number de G, denotado por χ` (G) e´ o menor k para o qual G e´ k-choosable. O problema da lista colorac¸ao ˜ e selecionabilidade em grafos foi introduzido por Erdos et al. [1979] e, independentemente por Vizing [1976]. Erdos ¨ et al. caracterizaram grafos que s˜ao 2-selecion´avel e conjecturaram que grafos planares s˜ao 5-selecion´avel e que existem grafos planares que n˜ao s˜ao 4-choosable. Esses resultados foram provados, respectivamente por Thomassen [1994] e Voigt [1993]. O problema da colorac¸ao ˜ ´ em grafos e´ conhecido ser N P -completo Bondy [1982]. E conhecido tamb´em que a kselecionabilidade de grafos e´ Π2p -completo para qualquer k ≥ 3, por Erdos et al. [1979], inclusive em grafos bipartidos, por Gutner [2009]. A lista colorac¸ao ˜ possui algumas variac¸oes, ˜ dentre elas destacamos a (γ, µ)colorac¸ao, ˜ introduzido por Bonomo et al. [2009]. Definic¸ao ˜ 3 (Bonomo et al. [2009]). Dado um grafo G e uma func¸ao ˜ γ, µ : V (G) → N tal que γ(v) ≤ µ(v) para todo v ∈ V (G), G e´ (γ, µ)-color´ıvel se existe uma colorac¸ao ˜ L de G tal que γ(v) ≤ f (v) ≤ µ(v) para todo v ∈ V (G). Neste estudo, foi correlacionado a (γ, µ)-colorac¸ao ˜ com a k-selecionabilidade, gerando assim a k-(γ, µ)-selecionabilidade ou k-(γ, µ)-choosable. A seguir, ser´a apresentado a sua definic¸ao ˜ formal e nas proximas ´ sec¸oes, ˜ ser˜ao apresentados os algoritmos e as principais provas dessa correlac¸ao. ˜ Definic¸ao ˜ 4. Um grafo G e´ k-(γ, µ)-choosable ou k-(γ, µ)-lista-color´ıvel se G e´ (γ, µ)color´ıvel para cada colec¸ao ˜ L de listas L(v) para os v´ertices v de G tal que |L(v)| ≥ k para cada v´ertice v, e as listas sao ˜ do tipo (γ, µ). 2.1. Algoritmos para determinar a k-(γ, µ)-selecionabilidade Vamos apresentar um algoritmo de enumerac¸ao ˜ expl´ıcita para verificar se um grafo possui uma lista colorac¸ao ˜ para as lista de cores associadas as seus v´ertices e um algoritmo de enumerac¸ao ˜ expl´ıcita para k-(γ, µ)-selecionabilidade, que enumera todas as listas de cores de tamanho k, do tipo (γ, µ), e assim verificar se o grafo e´ color´ıvel para todas essas listas de cores. 2.1.1. Algoritmo para lista colorac¸ao ˜ Vamos apresentar o m´etodo de enumerac¸ao ˜ expl´ıcita para o problema da lista colorac¸ao. ˜ O algoritmo verifica se existe uma colorac¸ao ˜ propria ´ do grafo com as listas de cores associadas aos seus v´ertices. O pseudocodigo ´ est´a descrito no Algoritmo 1. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
142
Algoritmo 1: Existe Lista Coloracao(G, L, existe, i) 1 2 3 4 5 6 7 8 9 10 11
se !(existe) entao ˜ se L = ∅ entao ˜ se ExisteColoracao(G) entao ˜ existe ←− SIM; senao ˜ l ←− remove o primeiro da lista L; para cada cor ∈ l fac¸a G.vi .cor ←− cor; Existe Lista Coloracao(G, L, existe, i + 1); se (existe) entao ˜ break;
O algoritmo recursivo inicia com a condic¸ao ˜ de parada falso. Esse controle e´ feito pela vari´avel existe, na linha 1. Como no in´ıcio da execuc¸ao ˜ o grafo ainda n˜ao est´a colorido, o algoritmo segue para a linha 6 para o conjunto de listas L, e assim, na linha 8, o v´ertice e´ colorido com as cores de sua respectiva lista de cores e o algoritmo chama recursivamente a func¸ao ˜ Existe Lista Coloracao para colorir o v´ertice i + 1, at´e que todos os v´ertices estejam coloridos. Logo, se existe uma colorac¸ao ˜ para o grafo com a lista de cores dada, o algoritmo termina sua execuc¸ao ˜ (linha 11). Se todos os v´ertices est˜ao coloridos, mas n˜ao existe uma colorac¸ao ˜ propria ´ para o grafo, o algoritmo segue para a proxima ´ cor da lista de cores do ultimo ´ v´ertice visitado. Se ainda assim n˜ao existir colorac¸ao ˜ propria ´ e n˜ao houver mais cores dispon´ıveis na lista de cores a serem testados, o algoritmo volta um n´ıvel na a´ rvore de execuc¸ao ˜ para testar a proxima ´ cor dispon´ıvel desse v´ertice, e assim por diante. {v2 v1 } {2, 3}
{v2 , v2 } {1, 2} {1, 2}
{v3 , v3 }
{v2 , v2 }
{v3 , v3 } {v3 , v3 }
(a)
{v3 , v3 }
(b)
Figura 2. Execuc¸ao ˜ do Algoritmo 1 para o grafo da Figura 2(a).
2.1.2. Algoritmo para k-(γ, µ)-selecionabilidade O Algoritmo 2 efetua uma chamada a func¸ao ˜ e´ k-(γ, µ)-choosable com o valor inicial de k igual a 2. Dentro dessa func¸ao ˜ e´ k-(γ, µ)-choosable, na Linha 1, e´ gerado as listas de cores do tipo (γ, µ) de tamanho k. A quantidade de listas de cores e´ dada pela equac¸ao ˜ ´ de v´ertices e k e´ o tamanho das listas de cores. n − k − 1, onde n e´ o numero Algoritmo 2: χ` (G = (V, E)) 2
enquanto !(´e k-(γ, µ)-choosable(G, k)) fac¸a k ← k + 1;
3
Retorne k;
1
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
143
Algoritmo 3: e´ k-(γ, µ)-choosable(G = (V, E), k)
5
X ← {{1, 2, . . . , k}, {2, 3, . . . , k + 1}, . . . , {n − k + 1, n − k + 2, . . . , n}}; Px ← todas as n-permutac¸oes ˜ de X com elementos repetidos; para cada L ∈ Px fac¸a se !(Existe Lista Coloracao(G, L, nao, 1)) entao ˜ Retorne NAO;
6
Retorne SIM;
1 2 3 4
Formado os conjuntos de listas, as soluc¸oes ˜ s˜ao formadas pelas listas de cores anteriores, tomados n a n, onde e´ poss´ıvel elementos repetidos. Pelo princ´ıpio multiplicativo, o numero ´ total de maneiras de se retirar n elementos dos p objetos, distintos ou de v´ertices do grafo e p e´ a quantidade de n˜ao, e´ igual a Equac¸ao ˜ 1 (onde n e´ o numero ´ listas geradas pela func¸ao ˜ da Linha 1), uma vez que o primeiro elemento pode ser retirado de p maneiras, o segundo tamb´em de p maneiras, e assim sucessivamente, at´e que o n-´esimo seja escolhido. Esse processo e´ feito na linha 2 do Algoritmo 3. ARpn = pn
(1)
Como exemplo para execuc¸ao ˜ do Algoritmo 3, observe a Figura 3, onde temos um grafo C3 . A Linha 1 do algoritmo gera as listas de cores do tipo (γ, µ), atrav´es da equac¸ao ˜ n − k − 1 = 3 − 2 − 1 = 2, que s˜ao as listas (1, 2) e (2, 3). Logo apos, ´ na Linha 2, as soluc¸oes ˜ de listas s˜ao geradas, de acordo com a Equac¸ao ˜ 1, que s˜ao no total 8 soluc¸oes ˜ de listas de cores, como mostrado na Figura 3. {1, 2}
{1, 2}
(a)
{1, 2}
{1, 2}
{1, 2}
{2, 3}
(b)
{2, 3}
{2, 3}
{1, 2}
(c)
{2, 3}
{2, 3}
{1, 2}
{1, 2}
(f)
(g)
{1, 2}
(d)
{2, 3}
{1, 2}
{1, 2}
{2, 3}
{2, 3}
{2, 3}
{2, 3}
(e)
{1, 2}
{2, 3}
{2, 3}
(h)
Figura 3. Exemplo de soluc¸oes ˜ de listas de cores para um C3 para execuc¸ao ˜ do Algoritmo 3.
Logo apos, ´ o Algoritmo 1 do Existe Lista Coloracao e´ chamado para verificar se existe colorac¸ao ˜ propria ´ do grafo com a lista de cores. Se n˜ao for poss´ıvel colorir, a func¸ao ˜ retorna nao ˜ para a func¸ao ˜ e´ k-(γ, µ)-choosable, onde o algoritmo incrementa k e recomec¸a a montagem de novas listas de cores, agora com k + 1 (no Algoritmo 2). Se for poss´ıvel colorir, a func¸ao ˜ retorna sim para a func¸ao ˜ e´ k-(γ, µ)-choosable, finalizando as´ sim a execuc¸ao ˜ do algoritmo. E importante enfatizar que o algoritmo efetua a verificac¸ao ˜ para todos os conjuntos de listas de cores de tamanho k. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
144
2.2. T´ecnicas de provas em selecionabilidade Em 2001, Woodall [2001] apresentou algumas t´ecnicas de provas utilizadas nos resultados existentes para selecionabilidade em grafos. Eles podem ser divididos em t´ecnica de Alon-Tarsi, introduzida por Alon and Tarsi [1992], t´ecnica de kernel em d´ıgrafos, t´ecnica de degenerac¸ao ˜ em grafos, t´ecnica do teorema de hall, t´ecnica de limite introduzida por Thomassen [1994]. Erdos ¨ et al. utilizaram o teorema de hall para mostrar que o grafo completo k-partido K2,2,...,2 e´ k-choosable. Existem resultados na literatura que utiliza a t´ecnica de prova em degenerac¸ao ˜ de grafos. Um grafo e´ k-degenerado se pode ser reduzido a um K1 por repetidas delec¸oes ˜ de seus v´ertices de grau no m´aximo k, por Bondy [1982]. Um grafo que e´ k-degenerado e´ k + 1-selecion´avel, por Wang and Lih [2002]. Grafos planares s˜ao 6-choosable com base nesse argumento: grafos planares s˜ao 5-degenerados e portanto, 6-choosable, por Woodall [2001]. 2.2.1. Grafos periplanares sao ˜ 3-(γ, µ)-selecionaveis ´ Grafos periplanares s˜ao grafos planares onde todos os seus v´ertices est˜ao localizados na regi˜ao externa. Um grafo periplanar e´ maximal quando a adic¸ao ˜ de uma aresta entre dois v´ertices n˜ao adjacentes resulta em um grafo n˜ao periplanar, por Bondy [1982]. Ser´a apresentado uma prova de que grafos periplanares, que s˜ao 2-degenerados, mostrado por Lick [1970], e portanto s˜ao 3-(γ, µ)-choosable. Teorema 1 (Chartrand [2008]). Todo grafo periplanar nao ˜ trivial cont´em pelo menos 2 v´ertices de grau 2 ou menos. Teorema 2. Todo grafo periplanar e´ 3-(γ, µ)-selecionavel. ´ Prova. A prova e´ feita por induc¸ao ˜ sobre n. Seja G = K1 . Este grafo n˜ao tem arestas e e´ trivialmente periplanar e 3-(γ, µ)-choosable. Supondo que todo grafo periplanar com n v´ertices e´ 3-(γ, µ)-choosable, vamos demonstrar que a lista colorac¸ao ˜ tamb´em e´ v´alido para um grafo periplanar com n + 1 v´ertices e com uma distribuic¸ao ˜ de listas de cores em seus v´ertices do tipo (γ, µ) de tamanho 3. Pelo Teorema 1, existe um v´ertice v em Gn+1 com grau at´e no m´aximo 2. Removendo este v´ertice, teremos um subgrafo Gn com n v´ertices. Uma vez que Gn+1 pode ser desenhado com seus v´ertices em forma de ciclo com cordas sem cruzamentos, o subgrafo tamb´em pode ser desenhado dessa forma. Isso implica que Gn tem uma lista colorac¸ao ˜ com listas do tipo (γ, µ) de tamanho 3. Assim, podemos colorir os v´ertices de Gn+1 com 3 ou mais cores. Uma vez que os v´ertices adjacentes ao v´ertice v de grau 2 j´a est˜ao coloridos, o v´ertice v receber´a uma terceira cor de sua lista de cores que seja diferente de seus adjacentes e vemos que a hipotese ´ de induc¸ao ˜ e´ v´alida. 2.2.2. Grafos bipartido completo sao ˜ 2-(γ, µ)-selecionaveis ´ Ser´a apresentado a prova para o grafo bipartido completo utilizando o teorema de hall. Este grafo e´ conhecido ser 3-selecion´avel, mostrado por Erdos et al. [1979], por´em e´ 2-(γ, µ)-selecion´avel. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
145
Teorema 3 (Hall [1948]). (Teorema dos Representantes distintos de Hall) Uma fam´ılia de conjuntos S1 , S2 , . . . , Sm tem um sistema de representantes distintos se e so´ se para qualquer subconjunto I ⊆ {1, 2, . . . , m} se verifica a condic¸ao ˜ [ | Si | ≥ |I| i∈I Lema 1. Considere um Kn,n = G[V, W ] para n ≥ 1 com partic¸oes ˜ V = {v1 , . . . , vn },W = {w1 , . . . , wn } e uma distribuic¸ao ˜ de listas (γ, µ) de tamanho 2, L(v) para todo v ∈ Kn,n tal que L(vi ) 6= L(vj ) se i 6= j, e L(vi ) = L(wi ) para todo i = 1, . . . , n. Entao ˜ o Kn,n e´ 2-(γ, µ)-choosable. Prova. A prova deste Lema e´ feita por induc¸ao ˜ sobre n. Suponha agora que o teorema e´ v´alido para Kn,n , onde n ≥ 1 e ent˜ao vale para o Kn+1,n+1 . Sem perda de generalidade, supor que as listas L(vi ) = {γi , γi + 1} est˜ao distribu´ıdas nos v´ertices tal que γ1 < γ2 < . . . < γn+1 . Considere o subgrafo completo Kn,n obtido pelos v´ertices v1 , v2 , . . . , vn e w1 , w2 , . . . , wn . Por hipotese ´ de induc¸ao ˜ existe uma lista colorac¸ao ˜ para este Kn,n . Falta colorir os v´ertices vn+1 e wn+1 . No pior dos casos γn+1 = γn +1 pois γn < γn+1 e as listas s˜ao em sequˆencia. Neste caso ent˜ao, se for γn+1 = γn + 1, sem perda de generalidade, supor que a cor escolhida para o v´ertice vn foi γn e para o v´ertice wn foi γn + 1. Ent˜ao o v´ertice vn+1 ser´a colorido com a cor γn+1 + 1 e o v´ertice wn+1 com a cor γn+1 . A Figura 4 mostra o grafo bipartido de exemplo para este lema. {a, a + 1}
{b, b + 1}
v1
v2
w1
w2
{a, a + 1}
{b, b + 1}
{γn , γn + 1}
{γn+1 , γn+1 + 1}
...
vn
vn+1
...
wn
wn+1
{γn , γn + 1}
{γn+1 , γn+1 + 1}
...
...
Figura 4. Exemplo de grafo bipartido completo com todas as listas de cores do tipo (γ, µ) de tamanho 2 iguais para o Lema 1.
Lema 2. Considere um Kn,n = G[V, W ] para n ≥ 1 com partic¸oes ˜ V = {v1 , . . . , vn },W = {w1 , . . . , wn } e uma distribuic¸ao ˜ de listas (γ, µ) de tamanho 2, L(v) para todo v ∈ Kn,n tal que L(vi ) 6= L(wj ) para todo i, j = 1, . . . , n. Entao ˜ o Kn,n e´ 2-(γ, µ)-choosable. Prova. Consideremos na partic¸ao ˜ V somente as listas distintas S1 , . . . , Sr , e na partic¸ao ˜ W somente as listas distintas Sr+1 , . . . , Sr+t . Assim, temos que Si 6= Sj , para i 6= j, e como s˜ao listas (γ, µ) de tamanho 2, a intersec¸ao ˜ de quaisquer duas destas listas tem no m´aximo um elemento (observe a Figura 5). Assim, estes conjuntos Si cumprem o Teorema 3 e assim obtemos elementos distintos ci ∈ Si , com ci 6= cj . Ent˜ao colorimos um v´ertice v ∈ Kn,n com a cor ci se L(v) = Si , e temos assim uma lista colorac¸ao ˜ do Kn,n . Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
146
{a, a + 1}
{b, b + 1}
v1
v2
w1
w2
{c, c + 1}
{d, d + 1}
{γn , γn + 1}
{γn+1 , γn+1 + 1}
...
vn
vn+1
...
wn
wn+1
{γn , γn + 1}
{γn+1 , γn+1 + 1}
...
...
Figura 5. Exemplo de grafo bipartido completo com todas as listas de cores do tipo (γ, µ) de tamanho 2 diferentes para o Lema 2.
Teorema 4. O grafo bipartido completo Kn,n e´ 2-(γ, µ)-choosable para n ≥ 1. Prova. Escolhe-se inicialmente os v´ertices em que as listas de cores aparecem nas duas partic¸oes ˜ V e W do Kn,n . Deste modo consideremos um subgrafo H do Kn,n onde os conjuntos S1 , S2 , . . . , Sr (r ≤ n), (que s˜ao as listas que ocorrem ao mesmo tempo em v´ertices de V e W , e como escolhemos apenas um representante em caso de repetic¸ao ˜ na partic¸ao, ˜ temos que Si 6= Sj , para i 6= j) s˜ao v´alidos. Se r = 0 , o subgrafo H cumpre as hipoteses ´ do Lema 2 e assim temos uma lista colorac¸ao ˜ de H. Se r ≥ 1 , o subgrafo H cumpre as hipoteses ´ do Lema 1 e assim temos uma lista colorac¸ao ˜ de H. Sejam ent˜ao x1 , x2 , . . . , xr as cores escolhidas para estes r v´ertices de V e y1 , y2 , . . . , yr as cores escolhidas para estes r v´ertices de W . Al´em disso estender estas cores para todos os v´ertices restantes de G que possuem uma destas listas de cores S1 , S2 , . . . , Sr , colorindo com a cor xi para os demais v´ertices de V que possuem a lista Si e com a cor yi para os demais v´ertices de W que possuem a lista Si . Para os restantes dos v´ertices que ainda n˜ao foram coloridos, temos que essas listas de cores ser˜ao distintas e como as listas s˜ao de tamanhho 2 do tipo (γ, µ), ter˜ao, no m´aximo, 1 cor em comum. Nesse caso, o Teorema 3 e´ aplicado nessas listas de cores restantes, garantido a colorac¸ao ˜ e a prova e´ finalizada. 2.2.3. Grafos k-color´ıveis sao ˜ k-(γ, µ)-selecionaveis ´ Nesta sec¸ao ˜ ser´a apresentado uma prova mais geral da correlac¸ao ˜ da k-(γ, µ)selecionabilidade, onde um grafo que e´ k-color´ıvel tamb´em e´ k-(γ, µ)-selecion´avel. Teorema 5. Seja G um grafo k-color´ıvel. Entao ˜ G e´ k-(γ, µ)-selecionavel. ´ Prova. Como G e´ k-color´ıvel, existe uma colorac¸ao ˜ c : V → N tal que c(v) ∈ {0, 1, 2, . . . , k − 1}, e se os v´ertices vi e vj s˜ao adjacentes c(vi ) 6= c(vj ). Quando fazemos a divis˜ao de um inteiro qualquer m por k, obtemos o resto da divis˜ao r, tal que r ∈ {0, 1, 2, . . . , k − 1}. Al´em do mais esta divis˜ao particiona os inteiros em k conjuntos distintos. Consideremos A0 = {n ∈ Z| o resto da divis˜ao de n por k e´ 0 }, A1 = {n ∈ Z| o resto da divis˜ao de n por k e´ 1 }, A2 = {n ∈ Z| o resto da divis˜ao de n por k e´ 2 }, . . ., Ak−1 = {n ∈ Z| o resto da divis˜ao de n por k e´ k − 1 }. Estes conjuntos s˜ao dois a dois dijuntos, ou seja, Ai ∩ Aj = ∅, se i 6= j. Outro fato importante e´ que dada qualquer sequˆencia de k inteiros consecutivos x, x + 1, x + 2, . . . , x + k − 1, existe exatamente Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
147
um destes elementos contido em cada um dos conjuntos Ai . Ou seja, um desses elementos deixa resto i na divis˜ao por k, para i = 0, 1, 2, . . . k − 1. Consideremos agora uma distribuic¸ao ˜ qualquer de listas de tamanho k to tipo (γ, µ) para os v´ertices de V . Assim, para cada vi ∈ V , temos L(vi ) = {γi , γi + 1, . . . , γi + k − 1}. Sejam vi e vj v´ertices adjacentes em G, assim ci = c(vi ) 6= c(vj ) = cj , e portanto os conjuntos Aci e Acj s˜ao disjuntos. Para fazermos uma (γ, µ)-lista colorac¸ao ˜ de G nestes v´ertices adjacentes vi e vj escolhemos como cor para o v´ertice vi o elemento de L(vi ) que pertence ao conjunto Aci e para o v´ertice vj escolhemos o elemento de L(vj ) que pertence ao conjunto Acj e isto garante que v´ertices adjacentes ser˜ao coloridos com cores distintas. Observe essa colorac¸ao ˜ em um grafo na Figura 6. Portanto G e´ k-(γ, µ)-selecion´avel. {2, 3, 4}
{4, 5, 6}
v1
v2
v3
v4
{3, 4, 5}
{1, 2, 3}
(a)
{2, 3, 4}
{4, 5, 6}
{2, 0, 1}
v1
v2
{1, 2, 0}
{0, 1, 2}
v3
v4
{1, 2, 0}
{3, 4, 5}
{1, 2, 3}
(b)
Figura 6. Uma k-(γ, µ)-colorac¸ao ˜ de um grafo, que e´ 3-color´ıvel, portanto e´ 3(γ, µ)-selecionavel. ´
3. Conclusao ˜ Apresentamos neste trabalho uma correlac¸ao ˜ entre (γ, µ)-colorac¸ao ˜ e k-selecionabilidade, gerando assim a k-(γ, µ)-selecionabilidade. Foram apresentados algoritmos para k(γ, µ)-selecionabilidade, al´em duas provas envolvendo k-(γ, µ)-selecion´avel para grafos bipartidos completos e periplanares, utilizando algumas das t´ecnicas de provas em selecionabilidade apresentadas em Woodall [2001] e uma prova forte sobre a mesma colorac¸ao. ˜ O Teorema 5 mostra que se G e´ k-color´ıvel ent˜ao G e´ k-(γ, µ)-selecion´avel, o que torna a k-(γ, µ)-selecionabilidade um problema N P -Completo devido o fato do problema da k-colorac¸ao ˜ tamb´em ser N P -Completo. Ciclos pares, ciclos ´ımpares e grafos planares s˜ao exemplos de resultados diretos dessa prova geral. A Tabela 2 apresenta um resumo dos resultados obtidos. Classes de Grafos Ciclos Pares Bipartido Completo Ciclos ´Impares Planares Periplanares
k-colorac¸ao ˜ χ(G) 2-color´ıvel, Bondy [1982] 2-color´ıvel, Bondy [1982] 3-color´ıvel, Bondy [1982] 4-color´ıvel, Appel [1989] 3-color´ıvel, Chartrand [2008]
k-selecionabilidade 2-selecion´avel, Erdos et al. [1979] 3-selecion´avel, Erdos et al. [1979] 3-selecion´avel, Chartrand [2008] 5-selecion´avel, Thomassen [1994] 3-selecion´avel, Lick [1970]
k-(γ, µ)-selecionavel ´ 2-(γ, µ)-selecion´avel* 2-(γ, µ)-selecion´avel* 3-(γ, µ)-selecion´avel* 4-(γ, µ)-selecion´avel* 3-(γ, µ)-selecion´avel*
Tabela 2. Resultados para k-Selecionabilidade versus k-(γ, µ)-Selecionabilidade. Os resultados com (*) sao ˜ os resultados derivados diretamente deste trabalho.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
148
Referˆencias N. Alon and M. Tarsi. Colorings and orientations of graphs. Combinatoria, 1992. K. Appel. Every planar map is four-colorable. Contemporary Mathematics, 1989. U. R. Bondy, J. A. e Murty. Graph Theory with Applications. Elsevier Science Publishers, 1982. F. Bonomo and G. Duran. Graph coloring problems. XII ELAVIO, February 2007, Itaipava, Brasil, 2007. F. Bonomo, G. Duran, and J. Marenco. Exploring the complexity boundary between coloring and list-coloring. Electronic Notes in Discrete Mathematics, 2009. M. Bonomo, F. e Cecowski. Between coloring and list-coloring: µ-coloring. Electronic Notes in Discrete Mathematics, 2005. P. Chartrand, G e Zhang. Chromatic Graph Theory. CRC Press, 2008. ˜ ˜ da alocaA§A£o ˜ ˜ de canais em B. Dias. Modelos teoricos e algoritmos para otimizaA§A£o ˜ ˜ redes moveis sem fios. DissertaA§A£o de Mestrado, 2014. P. Erdos, L. Rubin, and H. Taylor. Chosability in graphs. Proceedings West Coast Conference on Combinatorics, 26:125–157, 1979. M. Garey and D. Johnson. Computers and Intractability: A Guide to the Theory of NPCompleteness. W.H.Freeman and Company, 1979. M. Golumbic. Algorithmic graph theory and perfect graphs. Academic Press, 1980. M. Grostschel ¨ and L. Lovasz. The ellipsoid method and its consequences in combinatorial optimization. Combinatoria, 1981. M. Gutner, S. e Tarsi. Some results on (a:b)-choosability. Discrete Mathematics, 2009. M. Hall. Distinct representatives of subsets. Bull. Amer. Math. Soc., 54:922–926, 1948. K. Jansen and P. Scheffler. Generalized colorings for tree-like graphs. Discrete Applied Mathematics, 1997. ¨ D. Konig. ¨ Uber graphen und ihre anwendung auf determinantentheorie und mengenlehre. Mathematische Annalen, 1916. W. Kubiak, M. Dror, G. Finke, and S. Gravier. On the complexity of a restricted listcoloring problem. Discrete Mathematics, 1999. A. Lick, D. e White. k-degenerate graphs. Can. J. Math, Vol.XXII, 1970. K. M. Graph Colorings. Contemporary Mathematics, 2004. J. L. Szwarcfiter. Grafos e algoritmos computacionais. 1988. C. Thomassen. Every planar graph is 5-choosable. Journal of Combinatorial Theory, 1994. V. Vizing. Vertex coloring of a graph with assigned colors. Metody Diskret. Analiz. (Novosibirsk), 1976. M. Voigt. List colourings of planar graphs. Elsevier Science Publishers, 1993. W. Wang and K. Lih. Choosability, edge choosability of planar graphs without five cycles. Applied Mathematics, 2002. D. Woodall. List colourings of graphs. Surveys in Combinatorics, 2001.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
149
Anais do Encontro Regional de Computação e Sistemas de Informação
Analise ´ dos Tempos de Setup Dependentes da Sequˆencia em uma Empresa do Polo Industrial de Manaus atrav´es da Regra de Liberac¸ao ˜ e de Programac¸ao ˜ Dinamica ˆ Nara Quintela Begnini1 , Luiz Eduardo Fernandes Bentes2 , Wesley da Silva Rocha2 , Renata da Encarnac¸ao ˜ Onety1 1
Departamento de Engenharia da Produc¸ao ˜ 2
Nucleo ´ de Computac¸ao ˜ Escola Superior de Tecnologia Universidade do Estado do Amazonas Av. Darcy Vargas, 1200 – Manaus – Amazonas naraqb@gmail.com, {lefb.eng,wsr.snf17,ronety}@uea.edu.br
Abstract. This paper analyzes the planning and sequencing of the production of an production line of electronic boards in an company resident in the Industrial Pole of Manaus. The problem-situation presents itself as the search for the minimization of the task completion time (makespan) to be performed by an automatic component insertion machine. At the present time, the problem solving is manual, which evidences a considerable gap between the theoretical and practical means employed on the sequencing operation as observed in the literature. Resumo. Este trabalho analisa o planejamento e sequenciamento da produc¸ao ˜ de uma linha de montagem de placas eletronicas ˆ de uma industria ´ do Polo Industrial de Manaus. A situac¸ao-problema ˜ apresenta-se como a busca pela minimizac¸ao ˜ do tempo de t´ermino das tarefas (makespan) a serem realizadas por uma maquina ´ de inserc¸ao ˜ automatica ´ de componentes. O problema e´ resolvido manualmente, o que evidencia um consideravel ´ distanciamento entre os meios teoricos ´ e praticos ´ empregados na atividade de sequenciar, ja´ observado na literatura.
1. Introduc¸ao ˜ A busca por maneiras de diminuir a ociosidade de suas linhas de produc¸ao ˜ e´ uma atividade constante dentro de industrias, ´ visto que pode gerar reduc¸ao ˜ consider´avel no custo para as empresas. Uma maneira de se reduzir a ociosidade de uma m´aquina em particular, e´ reduzindo a quantidade de tempo que ela fica indispon´ıvel em manutenc¸ao, ˜ setup, dentre outras atividades. Em casos onde o setup varia em func¸ao ˜ da proxima ´ tarefa a ser realizada, tem-se a possibilidade de, e e´ importante, escolher a sequˆencia de tarefas que minimizem o tempo despendido em setup. Esta e´ a situac¸ao ˜ estudada por este trabalho: uma linha de produc¸ao ˜ real, onde a preparac¸ao ˜ da m´aquina para a produc¸ao ˜ de um produto em particular depende do que estava sendo atualmente processado. O objetivo e, ´ portanto, otimizar a sequˆencia de produc¸ao ˜ de modo que seja gasto o menor tempo poss´ıvel em setup. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
O contexto onde o problema insere-se e´ o da fabricac¸ao ˜ de placas eletronicas. ˆ A tecnologia utilizada requer uma configurac¸ao ˜ de m´aquina espec´ıfica para o modelo em produc¸ao. ˜ No entanto, e´ poss´ıvel aproveitar alguns ajustes j´a realizados se o proximo ´ modelo tamb´em requerer tais ajustes. Desta forma, se a sequˆencia de produc¸ao ˜ colocar modelos semelhantes (no quesito ajustes necess´arios), tem-se um tempo de setup reduzido. Assim, com este trabalho propoe-se ˜ estudar o sequenciamento de tarefas de forma a resolver este problema. Com o aux´ılio de programac¸ao ˜ dinˆamica, a melhor sequˆencia para um determinado numero ´ de modelos ser´a encontrada.
2. Fundamentac¸ao ˜ Teorica ´ 2.1. Programac¸ao ˜ Dinamica ˆ Programac¸ao ˜ dinˆamica e´ um nome elegante para recurs˜ao com apoio de uma tabela [Parberry 1995]. O mesmo autor explica que a estrat´egia adotada por tais algoritmos e´ a de, ao inv´es de resolver um problema repetidamente (quando se precisa de sua soluc¸ao), ˜ anotar os resultados j´a encontrados em uma tabela. Para utilizar essa estrat´egia em um problema de otimizac¸ao, ˜ este deve ter uma estrutura recursiva, ou seja, cada instˆancia do problema deve conter uma instˆancia menor do mesmo problema [Feofiloff 2016]. Uma instˆancia de um problema e´ apenas um caso particular do problema, com dados espec´ıficos, no sentido de exemplo, amostra. Assim, a caracter´ıstica interessante da programac¸ao ˜ dinˆamica e´ armazenar em uma tabela as soluc¸oes ˜ das v´arias sub-instˆancias. Posteriormente, ao se deparar com a necessidade de recalcular algum caso repetido, basta recorrer a` tabela. A otimalidade e´ garantida conforme [Rocha and Dorini 2004]: “Uma trajetoria ´ otima ´ tem a seguinte propriedade: quaisquer que tenham sido os passos anteriores, a trajetoria ´ remanescente dever´a ser uma trajetoria ´ o´ tima com respeito ao estado resultante dos passos anteriores, ou seja, uma pol´ıtica o´ tima e´ formada de subpol´ıticas o´ timas.” Isto e, ´ a soluc¸ao ˜ do problema inteiro deve conter a soluc¸ao ˜ de suas partes. 2.2. Regra Menor Tempo de Setup (MTS) Conforme [Pacheco and Santoro 2001], o m´etodo de sequenciamento da produc¸ao ˜ mais conhecido pelas empresas e´ chamado de Regra de Liberac¸ao. ˜ Constitu´ıda de uma logica ´ simples e direta para o plano de montagem da sequˆencia da produc¸ao, ˜ uma dessa regras e´ a MTS (Menor Tempo de Setup). Nesta regra, estipula-se que, ao completar uma tarefa, a proxima ´ ser´a a que demandar menor tempo de setup. O MTS e´ aplicado na empresa em quest˜ao como soluc¸ao ˜ para o sequenciamento dos modelos de placas eletronicas. ˆ Para simular o funcionamento da regra MTS, desenvolveu-se um algoritmo guloso cuja estrat´egia imediatista elege a melhor soluc¸ao ˜ poss´ıvel no momento como a mais proxima, ´ sem levar em considerac¸ao ˜ outras possibilidades. 2.3. O problema 1|sjk |Cmax Esta simbologia indica a minimizac¸ao ˜ do makespan com tempos de setup dependentes da sequˆencia no ambiente de m´aquina u´ nica. A seguir, explica-se como a situac¸ao-problema ˜ e´ simplificada at´e a u´ nica restric¸ao ˜ considerada ser os tempos de setup. Tem-se um ambiente de m´aquina u´ nica, chamada NXT; com tempos de setup dependentes da sequˆencia; Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
151
restric¸oes ˜ de precedˆencia (fase bottom antes da fase top); hor´ario de produc¸ao ˜ determinado para alguns modelos (ou seja, so´ podem ser processados neste hor´ario); e´ permitido interromper a produc¸ao; ˜ procura-se reduzir a ociosidade da m´aquina. Portanto, representando este problema, tem-se: 1|rj , dj , prmp, prec, sij |Cmax
(1)
No entanto, o escopo do trabalho e´ considerar apenas os tempos de setup dependentes da sequˆencia, devido a alta complexidade que a an´alise de todas estas restric¸oes ˜ pode gerar. Assim sendo, a notac¸ao ˜ para o problema que se tentar´a resolver, considerando menos restric¸oes, ˜ torna-se: 1|sij |Cmax
(2)
O problema 1|sij|Cmax e´ equivalente ao famoso Problema do Caixeiro Viajante (TSP). E com relac¸ao ˜ a` complexidade computacional, e´ mostrado a equivalˆencia do TSP com a Equac¸ao ˜ 2. Se considerarmos as tarefas como cidades, e os tempos de setup como as distˆancias entre elas, torna-se f´acil perceber a similaridade [Pinedo 2015]. Trazendo para a situac¸ao-problema ˜ do trabalho, tem-se os modelos de placas como as cidades, conforme ilustrado na Figura 1. Por´em, diferentemente do cl´assico TSP, n˜ao e´ necess´ario retornar a` cidade (tarefa) inicial.
Figura 1. Esquema exemplificando o tempo de setup entre os modelos. Iniciando e terminando no Modelo A, deve-se encontrar o menor tempo de setup poss´ıvel.
2.4. Formulac¸ao ˜ Matematica ´ Ser´a apresentada a formulac¸ao ˜ matem´atica do TSP no contexto de cidades, e n˜ao do sequenciamento de produc¸ao. ˜ N˜ao h´a perda de validade pois, conforme demonstrado, os problemas s˜ao an´alogos. A escolha por ilustrar as formulas ´ com cidades d´a-se pela facilidade de entendimento e simplificac¸ao ˜ das proprias ´ formulas. ´ A utilizac¸ao ˜ do ´ındice e as torna mais compactas. Esta formulac¸ao ˜ encontra-se no trabalho de [Punnen 2007] e e´ aplic´avel aos casos em que o TSP e´ sim´etrico, ou seja, a distˆancia entre duas cidades e´ igual, independentemente de qual seja o ponto de partida. Seja V o conjunto de todas as cidades v do mapa, e E o conjunto de todas as estradas e entre as cidades. No TSP, n˜ao necessariamente todas as cidades se interconectam Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
152
(´e poss´ıvel partir de qualquer cidade e chegar em qualquer outra cidade), mas no caso de sequenciamento, isto ocorre, pois pode-se escolher processar qualquer tarefa em seguida. H´a, por´em, um custo (distˆancia) ce associado a cada estrada e. Adicionalmente, considere δ(v) o conjunto de “estradas” que conectam a cidade v a` s demais cidades. Portanto: Minimizar X ce x e (3) e∈E
Sujeito a: X
xe = 2,
v∈V
(4)
e∈δ(v)
( xe =
1, 0,
se estrada e for utilizada caso contr´ario.
(5)
A Equac¸ao ˜ 3 e´ a func¸ao-objetivo. ˜ Pode ser lida como “minimizar o somatorio ´ dos custos (distˆancias)”. Para garantir que todas as cidades ser˜ao visitadas, inclui-se a Equac¸ao ˜ 4, chamada de restric¸ao ˜ de eliminac¸ao ˜ de sub-rotas. Pode ser interpretada como “dentre as estradas e que conectam a cidade v, apenas duas podem ser utilizadas”. Ou seja, dado que e´ premissa do TSP que n˜ao se pode utilizar a mesma estrada duas vezes, apenas uma estrada ser´a utilizada para a chegada e outra para a sa´ıda. Eliminam-se sub-rotas pois, caso houvesse, existiriam trˆes estradas utilizadas, mas a equac¸ao ˜ limita em duas. Da mesma forma, garante que se voltar´a a` cidade de partida, caso contr´ario, haveria duas cidades (as de partida e de chegada) com apenas uma estrada sendo usada. Conforme a restric¸ao ˜ bin´aria (Equac¸ao ˜ 5), se a estrada e n˜ao for utilizada, ce e´ multiplicado por zero; se for utilizada, ce e´ multiplicado por 1 e seu custo influencia no somatorio. ´
3. Metodologia 3.1. Coleta e Analise ´ de Dados Foi realizada uma entrevista com o respons´avel pelo planejamento da empresa estudada. O tipo de entrevista realizada foi a semiestruturada. Neste tipo de entrevista, as questoes ˜ s˜ao formuladas de forma aberta, permitindo ao entrevistado expor seu ponto de vista [Martins et al. 2014]. Dado que foi informado, durante a entrevista, que o tempo de setup varia em func¸ao ˜ da similaridade entre as placas, este pode ser encontrado ao analisar as listas de componentes. Definiu-se, portanto, como “similaridade entre as placas” como a quantidade de componentes iguais usados na produc¸ao ˜ das placas. A an´alise dos dados compoe-se ˜ da elaborac¸ao ˜ da matriz de setup. Tal matriz e´ uma tabela indicativa da quantidade de carret´eis que precisam ser trocados entre um modelo e outro. E´ an´aloga a` matriz de distˆancias do TSP pois mostra a “distˆancia” (em trocas de carret´eis) entre uma placa e outra. Esta matriz foi elaborada utilizando a lista de Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
153
componentes obtida durante a entrevista. Portanto, apesar de n˜ao ter sido poss´ıvel obter os atuais tempos de setup, uma aproximac¸ao ˜ pode ser obtida ao contar o numero ´ de trocas de carret´eis, pois o tempo e´ proporcional ao numero ´ de trocas. A matriz de setup gerada, tendo sido nomeada instˆancia J22. Com a matriz de setup montada, a proxima ´ etapa e´ implementar os algoritmos que encontrem o menor caminho poss´ıvel, que indique a sequˆencia de produc¸ao ˜ onde o menor numero ´ de trocas de carret´eis ocorra e, consequentemente, consuma o menor tempo durante o setup. Cada algoritmo seguir´a uma logica ´ diferente para esse fim, sendo um otimizado, e o outro, seguindo a regra MTS. 3.2. Implementac¸ao ˜ em Algoritmo Guloso Na pr´atica, em casos de tempos de setup dependentes da sequˆencia, a regra de liberac¸ao ˜ MTS (menor tempo de setup) e´ frequentemente usada. Assim sendo, com o objetivo de simular o comportamento do respons´avel pelo planejamento, que busca, simplesmente o menor tempo, e n˜ao a otimizac¸ao ˜ do tempo total, ser´a utilizada a regra MTS. Desta forma, cria-se um parˆametro para comparac¸ao ˜ entre um sequenciamento otimizado e outro realizado de forma manual, por tentativa e erro [Pinedo 2015]. A regra MTS ser´a implementada utilizando a logica ´ do algoritmo guloso. A raz˜ao disto e´ que a regra escolhe a proxima ´ tarefa baseado apenas no menor tempo de setup, e este e´ um comportamento t´ıpico de uma estrat´egia gulosa. Portanto, o algoritmo ser´a implementado de forma a iniciar na tarefa A (primeira coluna das instˆancias) pois, conforme j´a explicado, esta representa a m´aquina “zerada”, sem nenhum carretel colocado. Em seguida, o algoritmo escolhe o primeiro menor tempo na tabela, baseado na tarefa em que se encontra. Ao final deve, tamb´em, retornar para a tarefa A, deixando a m´aquina no estado inicial. 3.3. Implementac¸ao ˜ em Programac¸ao ˜ Dinamica ˆ Ser´a utilizado um m´etodo exato para obter a soluc¸ao ˜ o´ tima da matriz de setup elaborada, a instˆancia J22. Tendo em vista que o TSP e´ um problema recursivo, e seu processo de soluc¸ao ˜ envolve muitos c´alculos repetidos e possui subestrutura o´ tima, foi implementado um algoritmo baseado em programac¸ao ˜ dinˆamica. Para testar os dois algoritmos acima, ser˜ao utilizadas instˆancias presentes na literatura, cuja soluc¸ao ˜ o´ tima j´a e´ conhecida e garantida. As instˆancias utilizadas ser˜ao: P01 (15 cidades), ULYSSES16 (16 cidades), GR17 (17 cidades) e ULYSSES (22 cidades).
4. Resultados Os resultados foram obtidos apos ´ execuc¸oes ˜ dos algoritmos implementados. Os programas recebiam como entrada as matrizes de distˆancia e apresentavam como sa´ıda a soluc¸ao ˜ encontrada (o tamanho do caminho no TSP, e o tempo total de setup no sequenciamento) e o caminho que percorreram. Primeiramente s˜ao mostradas e discutidas as soluc¸oes ˜ que seriam encontradas caso a estrat´egia usada fosse a regra MTS, ou seja, os resultados obtidos pelo algoritmo guloso baseado nesta regra. Em seguida, s˜ao apresentadas as soluc¸oes ˜ encontradas via PD para os mesmos problemas e constata-se que s˜ao soluc¸oes ˜ o´ timas. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
154
Tendo em vista tornar a visualizac¸ao ˜ dos resultados mais palp´avel, e´ incluso o tempo de processamento necess´ario para atingir o resultado, em cada instˆancia. Com o mesmo objetivo, s˜ao apresentados, ao final, gr´aficos de Gantt ilustrando a diferenc¸a entre as soluc¸oes ˜ propostas por cada m´etodo. A Tabela 1 lista os resultados com a regra MTS. O tempo de processamento n˜ao e´ apresentado pois, dado que este n˜ao e´ um algoritmo recursivo, os resultados foram retornados muito rapidamente, em menos de mil´esimos de segundos. Em negrito, o caso onde encontrou-se a soluc¸ao ˜ o´ tima.
Tabela 1. Resultados obtidos pela regra MTS
Observa-se um consider´avel desvio da soluc¸ao ˜ o´ tima, principalmente na instˆancia ulysses22. Optar por um caminho com uma logica ´ simplista (seguir direto para o imediatamente mais proximo), ´ faria o percurso aumentar em 51%. No caso da instˆancia j22, a diferenc¸a e´ menor, de 3%. Contando a favor deste m´etodo, encontrou-se a soluc¸ao ˜ otima ´ da menor instˆancia, a P01. A Tabela 2 indica as sequˆencias encontradas para este algoritmo, que geraram as soluc¸oes ˜ comentadas. N˜ao h´a, portanto, uma raz˜ao fixa que estabelec¸a a diferenc¸a de eficiˆencia entre os dois m´etodos. Por´em, e´ recorrente o caso de n˜ao obtenc¸ao ˜ da otimalidade, e fica demonstrado o risco em se adotar essa regra: e´ poss´ıvel obter um resultado proximo ´ do o´ timo, por outro lado, e´ tamb´em usual que se retorne um valor bem distante.
Tabela 2. Caminhos resultantes pela regra MTS
A soluc¸ao ˜ proposta pelo algoritmo baseado em PD encontra-se na Tabela 3. O numero ´ de “cidades” e´ indicado na coluna n, e o tempo processamento, na coluna t. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
155
Tabela 3. Resultados obtidos por metodo ´ exato
Percebe-se, portanto, que este m´etodo foi capaz de encontrar as soluc¸oes ˜ o´ timas estabelecidas em literatura. Desta forma, garante-se que a soluc¸ao ˜ encontrada para a instˆancia J22, gerada com os dados obtidos em entrevista, e´ o´ tima. Nota-se, pela tabela, que o tempo necess´ario para encontrar uma soluc¸ao ˜ saltou de menos de 1 segundo para mais de 16 segundos apenas ao aumentar 5 “cidades”. Isto demonstra a caracter´ıstica not´avel de problemas combinatoriais de aumentarem suas proporc¸oes ˜ com pouca variac¸ao ˜ em n. Os testes foram realizados at´e um m´aximo de n = 22 pois al´em deste numero ´ e´ retornado um erro de memoria. ´ Tal erro deve-se ao limite do tipo de vari´avel utilizada para armazenar as informac¸oes ˜ de todas as iterac¸oes. ˜ Como n˜ao h´a um tipo com maior capacidade, este e´ um limite intranspon´ıvel sem o aux´ılio de alguma outra t´ecnica computacional, o que fugiu ao escopo deste trabalho. Atrav´es do gr´afico de Gantt, tem-se uma comparac¸ao ˜ visual dos desempenhos de cada m´etodo. Os gr´aficos apresentados a seguir indicam no eixo horizontal o tempo total de processamento (o que inclui setups) em uma dimens˜ao arbitr´aria. Dado que o objetivo e´ ilustrar e comparar, poder´ıamos ter segundos, minutos ou horas neste eixo, por isso ser arbitr´aria. Considerando que o que pretende-se demonstrar e´ , tamb´em, como as escolhas de cada algoritmo influencia no resultado total, o gr´afico destaca os tempos de setup. Por isso ajustou-se uma durac¸ao ˜ curta para as tarefas, cerca de 10 unidades de tempo, aparecendo como um fino trac¸o entre as barras mais grossas. Esta durac¸ao ˜ fixa n˜ao influencia na interpretac¸ao ˜ dos gr´aficos pois, ainda que fossem inseridos tempos mais realistas para as tarefas, a diferenc¸a em tempo entre os m´etodos se manteria. Adicionalmente, observa-se que os gr´aficos n˜ao terminam na soluc¸ao ˜ o´ tima indicadas nas Tabelas 3 e 1, justamente por somar os tempos de processamento. Todavia, est˜ao proximos ´ deste resultado, justamente em raz˜ao desta curta durac¸ao. ˜ Na instˆancia ULYSSES16, cujo gr´afico de Gantt encontra-se na Figura 2, observase como as melhores escolhas no curto prazo podem custar muito no longo prazo. Demonstra-se, assim, que a melhor escolha em um dado momento pode n˜ao ser a melhor escolha para o problema como um todo. Um resultado interessante e´ mostrado na Figura 3, que representa a instˆancia real da empresa estudada. Os desempenhos s˜ao muito proximos, ´ e, inclusive, a regra MTS estava tendo desempenho superior a` otimizac¸ao ˜ at´e o penultimo ´ setup. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
156
Figura 2. Grafico ´ de Gantt - Instancia ˆ Ulysses16. Sao ˜ comparadas as sequencias ˆ propostas pela regra MTS e otimizadas. No eixo horizontal, o tempo em dimensao ˜ arbitraria. ´ Observa-se a variac¸ao ˜ na durac¸ao ˜ dos setups em cada metodo ´ e que a otimizac¸ao ˜ levou a setups muito menores.
Figura 3. Grafico ´ de Gantt - Instancia ˆ J22. Sao ˜ comparadas as sequencias ˆ propostas pela regra MTS e otimizadas. No eixo horizontal, o tempo em dimensao ˜ arbitraria. ´ Observa-se a variac¸ao ˜ na durac¸ao ˜ dos setups em cada metodo, ´ ea pequena variac¸ao ˜ das soluc¸oes ˜ encontradas.
5. Conclusao ˜ Este trabalho procurou estudar o sequenciamento de tarefas no ambiente de m´aquina unica, ´ em um caso onde os tempos de setup s˜ao dependentes da sequˆencia, e otimizar o tempo total de processamento de todas as tarefas envolvidas, o que inclui os setups entre cada tarefa. Evitando tornar o trabalho por demais teorico, ´ o estudo foi dirigido a uma situac¸ao ˜ real, uma linha de produc¸ao ˜ de placas eletronicas ˆ em uma empresa da cidade de Manaus. Em tal contexto, a importˆancia do sequenciamento otimizado e´ percept´ıvel, pois um tempo consider´avel pode ser perdido em raz˜ao de uma eventual baixa qualidade na execuc¸ao ˜ desta atividade. O que e´ demonstrado atrav´es dos experimentos realizados utilizando as ferramentas computacionais de otimizac¸ao ˜ por programac¸ao ˜ dinˆamica e algoritmo guloso. A primeira forneceu um sequenciamento otimizado, dadas as matrizes de setup; e a segunda gerava uma sequˆencia seguindo a regra do menor tempo de setup, comumente utilizada para facilitar e padronizar esta atividade. Apos ´ apresentados os resultados na Sec¸ao ˜ anterior como distˆancias e caminhos entre cidades (em analogia ao TSP), e´ interessante trazˆe-los para o contexto do sequenciamento da produc¸ao. ˜ Enquanto que as cidades s˜ao os modelos de placas produzidas, a distˆancia seria o tempo de setup. Tamb´em, o que efetivamente os dois algoritmos utilizados de fato propoem ˜ e´ o caminho entre as placas, ou, a sequˆencia de produc¸ao ˜ dos modelos. Concluindo, os resultados indicam ser poss´ıvel minimizar o tempo despendido Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
157
com setup atrav´es de um m´etodo exato e este e´ recomend´avel em detrimento de uma regra como a MTS. Pois, ainda que a regra facilite, simplifique e padronize o sequenciamento aos olhos humanos, h´a um grande risco envolvido, que e´ o de a regra aumentar consideravelmente os tempos em setup (e, consequentemente, de ociosidade da m´aquina). Isto posto, acredita-se que o trabalho atingiu os objetivos propostos. No entanto, o m´etodo de otimizac¸ao ˜ por programac¸ao ˜ dinˆamica, neste trabalho, tornou-se limitado a um pequeno numero ´ de modelos a serem produzidos, no caso, 22. A raz˜ao para isto foi um limite computacional (no caso, estouro de memoria) ´ atingido devido ao alto numero ´ de combinac¸oes ˜ geradas por instˆancias de tamanho superior a 23. Finalmente, esta limitac¸ao ˜ traz um dos problemas a serem abordados em futuras pesquisas, tal como aumentar o numero ´ de placas para al´em de 22. Um dos m´etodos j´a explorados em literatura, e ainda assim com grande potencial, e´ a implementac¸ao ˜ de metaheur´ısticas para resolver problemas de maiores instˆancias. Ademais, cabem investigac¸oes ˜ sobre as restric¸oes ˜ n˜ao consideradas neste trabalho, mas que est˜ao presentes na situac¸ao˜ problema, representadas por 1|rj , dj , prmp, prec, sij |Cmax .
Referˆencias Feofiloff, P. (2016). Programac¸ao ˜ dinˆamica. Martins, R. A., Turrioni, J. B., and Mello, C. H. P. (2014). Guia para elaborac¸ao ˜ de monografia e TCC em engenharia de produc¸ao. ˜ Editora Atlas SA, S˜ao Paulo. Pacheco, R. F. and Santoro, M. C. (2001). A adoc¸ao ˜ de modelos de scheduling no brasil: deficiˆencias do processo de escolha. Gestao ˜ & Produc¸ao, ˜ 8(2):128–138. Parberry, I. (1995). Problems on algorithms. ACM SIGACT News, 26(2):50–56. Pinedo, M. L. (2015). Scheduling: Theory, Algorithms, and Systems. Springer International Publishing, 5 edition. Punnen, A. P. (2007). The traveling salesman problem: Applications, formulations and variations. In The traveling salesman problem and its variations, pages 1–28. Springer. Rocha, A. and Dorini, L. B. (2004). Algoritmos gulosos: definic¸oes ˜ e aplicac¸oes. ˜ Campinas, SP, page 42.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
158
Anais do Encontro Regional de Computação e Sistemas de Informação
Estudo Comparativo de Métodos para Localização Indoor em Redes WiFi Jefferson S. do Nascimento1 , Igor M. S. Oliva1 , Edson J. Drosdeck1 , Diego da S. Froner1 , Felipe A. Pinagé1 1
Escola de Ciências Exatas e Tecnologia – Uninorte Laureate International Universities Rua Huascar de Figueiredo – 290 – Manaus – AM – Brasil
{jeffginga,igor.marney}@gmail.com, {diego.froner,felipe.pinage}@uninorte.com.br
Abstract. The spatial location of objects or people in an environment allows the emergence of several new applications that make use of this type of information. This requires the development of an efficient indoor location system that is practically applicable. To this end, this work presents a comparative study on the methods used to estimate the position of a device in an internal environment using WiFi technology. The RSSI and TDOA methods were chosen because they are of low complexity and low cost. As a result, we observed the advantages and disadvantages of the methods, providing the one that offers the most benefits to the users. Resumo. A localização espacial de objetos ou pessoas em um ambiente permite o surgimento de diversas novas aplicações que façam uso deste tipo de informação. Para isso, é necessário o desenvolvimento de um sistema eficiente de localização em ambientes internos que seja aplicável de forma prática. Com esta finalidade, este trabalho apresenta um estudo comparativo sobre métodos utilizados para estimar a posição de um dispositivo em um ambiente interno fazendo uso da tecnologia de rede WiFi. Foram escolhidos os métodos RSSI e o TDOA por serem de baixa complexidade e baixo custo. Como resultado, observou-se as vantagens e desvantagens dos métodos, proporcionando o que oferece mais benefícios para os usuários.
1. Introdução Na infraestrutura dos sistemas de localização em ambientes internos são utilizadas tecnologias sem fios baseadas na potência do sinal de rádio (RSSI). Nestes sistemas, métodos probabilísticos são utilizados para indicar a posição do usuário por intermédio da distância dos pontos de referência e o sinal obtido (SILVA et al., 2014). Em LAMARCA et al. (2005), para promover o uso dessa tecnologia, são citados alguns atributos como conforto, mobilidade e invisibilidade. Apesar destas qualidades alguns pesquisadores têm observado que essa tecnologia ainda não foi adotada em grande escala quanto desejado (MENEGOTTO, 2015). Segundo ABREU (2014) e MENEGOTTO (2015), as tecnologias sem fio mais utilizadas para proceder com localização indoor são: (1) WiFi - com objetivo de garantir compartilhamento entre dispositivos diferentes; (2) ZigBee - utilizada em aplicações que utilizam pequenas quantidades de dados na comunicação, sendo uma tecnologia barata e de baixo consumo de energia; (3) RFID - que armazena e recupera dados através da Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
transmissão eletromagnética utilizada para identificar e rastrear um produto entre outros; (4) Beacons BLE que usa emissores Bluetooth de baixa energia denominadas balizas. O WiFi foi escolhido para esse estudo comparativo porque, segundo PAULA (2008), esta tecnologia tem se destacado cada vez mais, estando presente em locais de trabalho, residências, escolas, aeroportos e é uma das tecnologias mais importante para acesso a internet. Desta forma, permite uma melhor aceitação por parte dos usuários e requer nenhum ou um mínimo de custos envolvidos. Para a implantação da tecnologia Received Signal Strength Indicator (RSSI) é feito um mapeamento prévio em um ambiente, verificando a potência do sinal em cada ponto de acesso (ALMEIDA, 2011). Por outro lado, o Time Difference of Arrival (TDOA) é uma técnica baseada em distância, onde o transmissor envia dois sinais diferentes com agilidade de propagação também distintos, quando chega ao receptor é calculado o tempo de chegada de cada sinal (ABREU, 2014). Neste trabalho foram analisados os dois métodos apresentados, devido ao baixo custo dos equipamentos e a baixa complexidade (BERZ, 2015). Será avaliada a precisão de localização de ambos os métodos sob o mesmo ambiente interno. Para o RSSI, o parâmetro a ser utilizado será a potência do sinal, enquanto para o TDOA será tempo de resposta. Estes métodos foram escolhidos, por serem acessíveis para implantação em qualquer residência com rede WiFi e de boa compreensão para aplicações futuras. Este artigo apresenta um estudo comparativo entre os métodos RSSI e TDOA utilizando uma rede WiFi. Com o objetivo de serem os mais cômodos nas suas utilizações, num ambiente controlado e com baixos custos, para que possa ser aplicado em qualquer espaço. O artigo está estruturado da seguinte forma: na Seção 2 são descritos os trabalhos relacionados; na Seção 3 são apresentados os objetivos e metodologia de cada método; na Seção 4 são expostos os experimentos com os resultados obtidos; por fim, na Seção 5, a conclusão e sugestões de trabalhos futuros.
2. Trabalhos Relacionados Em ABREU (2014) foi apresentada a criação de uma plataforma de localização indoor utilizando tecnologias sem fio (WiFi e ZigBee) presentes nos ambientes inteligentes com o intuito de auxiliar as pessoas. O foco principal do trabalho era em pessoas idosas considerando a localização destas, limitando áreas que podem acarretar perigos e facilitando as suas vidas. Desta forma, é possível criar um ambiente aconchegante e seguro para que possam viver convenientemente no conforto dos seus lares. O ALMEIDA (2011) criou um modelo de localização usando AP’s de redes 802,11g munidos de uma antena omnidirecional, trabalhando na frequência de 2.4 GHz, o que possibilita o uso deste modelo em qualquer tipo de ambiente e podendo ser implantado em locais com as mesmas características com custos reduzidos. Por sua vez, MENEGOTTO (2015) realizou o desenvolvimento de um aplicativo de localização baseado no uso de dispositivos emissores de sinais Bluetooth Low Energy (BLE), chamados de beacons (balizas). Agregado com dispositivos móveis tipo smartphone para atuar como receptores e processadores dos dados transmitidos, o aplicativo destina-se a fornecer uma ferramenta de localização espacial para as pessoas, além Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
160
de suporte físico de uma edificação. Na revisão da literatura não foram detectados trabalhos equivalentes aonde fazem um estudo sobre a avaliação dos métodos existentes para localização indoor sob os mesmos ambientes internos. Porém, todos citam em parte o uso de cada um, assim como suas peculiaridades e definição. Considerando as informações obtidas dos trabalhos foi criada uma base de informações para estruturar a proposta de avaliação dos métodos.
3. Metodologia dos Métodos 3.1. Metodologia do RSSI Como demostra a Figura 1, inicialmente foram colocados dois pontos de acesso WiFi em posições distintas (Figura 1 (a)) no ambiente dos experimentos, foram colocados nos eixo x e y. No ambiente controlado (Figura 1 (b)) foi feito o mapeamento da área de estudo (Figura 1 (c)), que inicia com a coleta de informações conhecida como calibragem (CISCO, 2014). No mapeamento do ambiente foram criados quadrantes para realizar os experimentos, nesse ensaio foram elaborados inicialmente partições de 1 metro de comprimento por 1 de largura, após observar a quantidade elevada de partições, foi adotado 2 metros de comprimento por 2 de largura. Em SOARES (2013), para ocorrer erro de distância é de 3,5 metros. Com a finalidade de evitar erros de medidas foi adotado a medida de 2 metros quadrados.
Figura 1. Metodologia do RSSI. FONTE: Elaboração própria, 2016
A calibragem foi feita através do uso de um dispositivo móvel contendo o aplicativo WiFi Analyser, o qual realiza análise das redes WiFi encontrando o melhor local para o roteador sem fio. Na seção 4.2 é explanada sobre o uso desse software. O dispositivo móvel foi colocado em um quadrante do ambiente mapeado, para que o aplicativo colete as informações da potência do sinal no local indicado. PosteriorManaus, 25 a 27 de maio de 2017 ISSN 2238-5096
161
mente, através do conhecimento desses dados de saída é possível identificar a posição do dispositivo (Figura 1 (d)). Por último as informações de localização obtidas em cada quadrante foram armazenadas em uma base de dados (Figura 1 (e)), nesse trabalho foi utilizado o Excel para retenção das informações. Com estas informações em mãos é possível localizar o dispositivo no ambiente mapeado utilizando apenas a potência do sinal em que o artefato se posiciona. Durante a revisão da literatura em alguns trabalhos abordam fórmulas que calculam a distância entre os objetos utilizando a intensidade do sinal, mas de forma muito sistemática. Porém, em KUROSE (2006) é apresentado a (Fórmula 1), que possui parâmetros que condiz com os dados coletados e que atende as condições deste trabalho. RSSI(dBm) = A − 10.n.log(d)
(1)
Seus parâmetros são: RSSI(dBm) representa o valor da intensidade do sinal que chega. A é a referência de RSSI em dBm para 1 metro. n corresponde ao path loss, onde free space (ambiente aberto) é atribuído valor 2. d representa a distância entre os objetos (nós) que estão se comunicando. 3.2. Metodologia do TDOA Na Figura 2 mostra-se o modo a realização da metodologia TDOA, onde foram utilizados dois roteadores por manter o mesmo número nos dois métodos e mantendo as mesmas condições entre eles. O número de roteadores nesse caso não influência nos resultados, sendo imprescindível o uso de dois pontos de acesso e um aplicativo móvel para fazer a triangulação.
Figura 2. Metodologia do TDOA: FONTE: Elaboração própria, 2016
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
162
Foi implantado no método o emprego do aplicativo Ping & DNS, que trabalha com pesquisa geográfica de endereços IP, que envia o sinal pelo protocolo ICMP. Na (Figura 2 (a)), o roteador possui um endereço IP que vai ser utilizado para identificar sua posição. Com a aplicação no dispositivo móvel foi possível receber os sinais de cada ponto de acesso (Figura 2 (b)). Na (Figura 2 (c)), mostra que são formados um espaço a partir da posição dos equipamentos formando a triangulação. Os roteadores retornam para o aplicativo a resposta da média do endereço IP (avg) (Figura 2 (d)). Construindo uma área circular em volta dos sensores, a interseção mostra a posição do dispositivo móvel. Por último (Figura 2 (e)), as informações serão armazenadas em uma base de dados, nesse experimento foi utilizado o Excel. Na metodologia TDOA se utiliza o uso das (Fórmulas 2 e 3) para calcular a distância entre os objetos. Abaixo é apresentado as fórmulas que atendem as condições deste trabalho e possui parâmetros condizentes com o que foi coletado. Como foram utilizados dois roteadores o uso de apenas dois eixos (x e y) neste experimento foi necessário para o cálculo, formando um ambiente 2D. (Ax − P x)2 + (Ay − P y)2 = (v ∗ (ta − t0))2 (Bx − P x)2 + (By − P y)2 = (v ∗ (tb − t0))2
(2) (3)
Seus parâmetros são: Ax e Ay é a posição do P1. Bx e By é a posição do P2. Px e Py é a posição do dispositivo móvel. v é a constante velocidade de propagação. ta é o tempo do dispositivo móvel para o P1. tb é a posição do dispositivo móvel para o P2. t0 é a tempo inicial na posição zero.
4. Materiais e Métodos As subseções a seguir apresentam especificações dos equipamentos, softwares utilizados e o ambiente de testes. 4.1. Equipamentos Os experimentos realizados neste trabalho foram todos feitos em ambientes internos reais. Foram utilizados durante estes experimentos os seguintes equipamentos: A Figura 3 mostra os dois roteadores Cisco utilizados nos experimentos. O Modelo E1500 Linksys durante os dois ensaios foi chamado como P1 e o Modelo WRT54G Linksys foi intitulado como P2. No período dos testes foi empregado um dispositivo móvel de Marca e Modelo Samsung Galaxy S3 Mini com as características na Tabela 1. 4.2. Softwares utilizados Para garantir a autenticidade das informações e possibilitar uma comparação futura foram utilizadas aplicações Android para cada método. No RSSI foi usado o WiFi Analyser e Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
163
Figura 3. Roteadores utilizados. Fonte: Elaboração Própria, 2016 Tabela 1. Informações do Smatphone Samsung. FONTE: TUDO CELULAR, 2016
Fabricante Modelo Sistema Operacional Processador Interface Wi-fi
Samsung Galaxy S3 Mini Android 4.1 Jelly Bean 1 GHz Dual Core 802.11 a/b/g/n
no TDOA foi utilizado o Ping & DNS. O critério de escolha dos softwares foi baseado em seus graus de popularidade referente à eficiência e a usabilidade. No WiFi Analyser foi utilizado o gráfico que exibe a intensidade do sinal dos roteadores ao longo do tempo, medido em dBm. Enquanto no Ping & DNS apresenta informações de rede e diagnóstico. Onde é aplicado um Endereço IP para cada roteador no aplicativo e apanhada a média (avg). 4.3. Ambiente de testes O local utilizado para apuração dos métodos foi um cômodo que possui 8 metros de comprimento por 8 metros de largura. Os roteadores (P1 e P2) foram posicionados de maneira fixa no local. Para marcar as coordenadas das posições no piso da dependência foi utilizado Fita Crepe Branca 24mm x 50m, 3M Tartan. Sendo necessário o uso de uma trena para elaborar a medida de cada área do ensaio, formando zonas do ambiente.
5. Execução e Resultados obtidos 5.1. Método RSSI Para o Método RSSI é importante obter a média de cada quadrante na sala, neste trabalho foi utilizado cinco amostras de cada roteador (P1 e P2), para encontrar a medianidade. Como mencionado na subseção (4.2.), foi empregado para esse propósito o aplicativo WiFi Analyser aplicado em um intervalo de cinco segundos para coletar cada amostra. Com estes dados foi realizada a média de cada repartição, conforme demostra na Figura 4 é ilustrada a média dos RSSI coletadas de cada quadrante e a forma que foi mapeada a sala com os roteadores em suas posições estipuladas no teste. Após alcançar as médias do mapeamento foram realizados testes comparativos em dias diferentes para análise do método. Essas verificações foram em tempo real de Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
164
Figura 4. Média dos quadrantes RSSI. FONTE: Elaboração Própria, 2016
um dispositivo a ser localizado no mesmo ambiente esquematizado. O resultado desses testes é comparado com a média obtida para determinar a localização do dispositivo como mostra na Figura 5. Conforme a conferência dos resultados de cada quadrante é possível provar, que o mapeamento pode causar erros dependendo da distância. A acurácia é prejudicada em condições onde o sinal sofre com o fenômeno de multicaminhos. A Figura 5 demostra algumas oscilações marcadas em vermelho que ocorreram com uma variação de 10dB.
Figura 5. Comparação dos Testes. FONTE: Elaboração Própria, 2016
5.2. Método TDOA No Método TDOA, conforme citado na subseção (4.2.), foi utilizado o aplicativo Ping & DNS. Cada roteador (P1 e P2) foi colocado em um endereço de IP para fazer uso dessa aplicação. No ambiente foi construído um sistema de coordenadas conhecido como um plano cartesiano ou sistema de coordenadas cartesianas. Segundo ABREU (2014) esse sistema permite reconhecer e localizar um dispositivo móvel no ambiente. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
165
Na Tabela 2 são mostrados os valores encontrados durante a execução dos testes, juntamente com as posições expostas no experimento. A média é o valor encontrado na aplicação Android do dispositivo e na mesma posição utilizada nos dois pontos de acessos. Tabela 2. Resultados das posições. FONTE: Elaboração Própria, 2016
Primeira Posição P1 P2 Segunda Posição P1 P2 Terceira Posição P1 P2
X -2 X -2 X 2 -
Y 2 Y 0 Y 2 -
Média 0.264 0.366 Média 0.366 0.366 Média 0.305 0.183
6. Conclusão Este trabalho teve como objetivo estabelecer um estudo comparativo entre os Métodos WiFi RSSI e TDOA em ambientes fechados, a fim de fornecer o melhor a ser instalado em sistemas de localização indoor com baixo custo de implantação. Após os experimentos realizados é possível destacar que o TDOA se mostrou com mais vantagens em ambientes de constante mudança, enquanto o RSSI possui mais benefícios em locais estáticos. O TDOA pôde detectar tentativas de acesso de dispositivos com sinal amplificado mais distante. Outra vantagem é que este método não necessita de um pré-mapeamento do ambiente em que será implantado, como é o caso do RSSI. A desvantagem reside na sua efetivação onde é muito mais complexa em relação à técnica de mapeamento do RSSI. Espera-se que com esse estudo comparativo de métodos traga benefícios para ampliação do uso dessa tecnologia em ambientes fechados. Desta forma, para trabalhos futuros, pode-se sugerir o desenvolvimento de uma aplicação mobile utilizando o Método TDOA para localizar objetos ou pessoas em ambientes fechados.
Referências ABREU, R. F. P. (2014). Localização Indoor em Ambientes Inteligentes. PhD thesis, Universidade do Minho. ALMEIDA, W. R. d. (2011). Uma Metodologia de Localização utilizando Perfis para Ambientes Indoor em redes 802.11. PhD thesis, Universidade Federal de Viçosa, Minas Gerias. BERZ, E. L. (2015). Sistema híbrido de localização indoor baseado em rfid e análise visual. CISCO (2014). Wi-fi location-based services 4.1 design guide. http://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Mobility/WiFiLBSDG/wifich2.html. KUROSE, J. F. (2006). Redes de computadores e a internet. São Paulo: Person. LAMARCA, A., Chawathe, Y., Consolvo, S., Hightower, J., Smith, I., Scott, J., Sohn, T., Howard, J., Hughes, J., Potter, F., et al. (2005). Place lab: Device positioning using Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
166
radio beacons in the wild. In International Conference on Pervasive Computing, pages 116–133. Springer. MENEGOTTO, J. L. (2015). Sensoriamento da edificação: Um sistema de localização baseado em beacons ble. Blucher Engineering Proceedings, 2(2):264–274. PAULA, E. (2008). Redes wi-fi. http://www.webartigos.com/artigos/redes-wi-fi/5669/. SILVA, V. J., Silva, G. L., and De Lucena Jr, V. F. (2014). Arquitetura experimental para automação e integração de ambientes inteligentes com dispositivos móveis. Anais do II Workshop de Comunicação em Sistemas Embarcados Críticos (WoCCES2014), pages 24–37. SOARES, E. E. d. M. (2013). Localização Indoor via KDE em assinaturas de RSSI. PhD thesis, Universidade Federal do Rio de Janeiro.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
167
Anais do Encontro Regional de Computação e Sistemas de Informação
Política de Gerenciamento de Buffer com Naive Bayes para Redes Tolerantes a Atrasos e Desconexões José Amaral Santos1, Sergio Cleger Tamayo12, Camilo Souza2 1 2
Instituto de Ensino Superior FUCAPI – Manaus – AM – Brasil
Universidade do Estado do Amazonas – Manaus – AM – Brasil. {filho.amaral,sergio.cleger,kmilosouza}@gmail.com
Abstract. One of the major challenges found in Delay-and-Disconnect-Tolerant Networks (DTNs) is buffer management of network devices. Several strategies are found in the literature to increase network efficiency. This paper presents the application of Naive Bayes algorithm as buffer management policy for DTNs network. The performance evaluation is conducted in a simulation environment with three sets of human mobility and two routing protocols. The results obtained presented a moderate performance in relation to other policies, providing in some cases, an increase in the delivery rate of 1% to 2% and a statistically equivalent performance as the average delay. Resumo. Um dos principais desafios encontrados em Redes Tolerantes a Atrasos e Desconexões (DTNs) é o gerenciamento de buffer dos dispositivos da rede. Diversas estratégias são encontradas na literatura a fim de aumentar a eficiência da rede. Este trabalho apresenta a aplicação do algoritmo Naive Bayes como política de gerenciamento de buffer em rede DTNs. A avaliação de desempenho é realizada em um ambiente de simulação com três conjuntos de mobilidade humana e dois protocolos de roteamento. Os resultados obtidos apresentaram um desempenho moderado em relação as outras políticas, proporcionando em alguns casos, aumento na taxa de entrega de 1% a 2% e com uma performance estatisticamente equivalente quanto ao atraso médio.
1. Introdução O uso da pilha de protocolos TCP/IP torna-se ineficiente em certos tipos de redes, como a comunicação submarina, rurais e entre dispositivos móveis, visto que o seu bom funcionamento necessita de algumas premissas, tais como: comunicação fim-a-fim, baixa latência e baixa perda de pacotes [Miranda 2006]. Devido a essas características, surgiu a necessidade de criar um novo paradigma de comunicação, capaz de armazenar e encaminhar as mensagens posteriormente na ausência de um caminho fim-a-fim. Redes Tolerantes a Atrasos e Desconexões (Delay and Disruption Tolerant Networks - DTNs) foi o nome dado às redes [Oliveira et al. 2007]. As DTNs são formadas por nós, dispositivos que utilizam tecnologia sem fio e possuem um espaço em memória (buffers) para o armazenamento de mensagens de forma persistente, com o intuito de encaminhar as mensagens em uma oportunidade de contato com outro nó, que pode ser ou não o nó de destino. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
O projeto SeNDT (Sensor Networking with Delay Tolerance) [McDonald 2007], é um exemplo de sua aplicabilidade, no qual utiliza este tipo de rede para monitorar a qualidade da água em lagos rurais e a poluição sonora em áreas urbanas e rodoviárias. Mas [Oliveira et al. 2007] pontua itens que necessitam ser investigados para o aperfeiçoamento da rede, tais como: algoritmos de roteamento, replicação e de gerenciamento de buffer. Até então, existem na literatura algoritmos que apresentam soluções parciais para o controle de armazenamento no buffer, esses trabalhos utilizam critérios como: mensagens antigas, relações de afinidade e até a probabilidade de entrega. Mas qual é a melhor forma de manipular um conjunto de critérios em uma única política? Neste artigo é apresentado um estudo em que se aplica um classificador de aprendizagem de máquina como política de gerenciamento de buffer, que utiliza um conjunto de critérios para predizer qual mensagem deverá ser eliminada do buffer. Para avaliar o desempenho do classificador, foram realizados experimentos em um simulador para criar cenários que pudessem incluir traces de mobilidade real e protocolos de roteamentos. Com a finalidade de comparar os resultados com outras políticas encontradas na literatura, que segundo os resultados apresentou um desempenho moderado. Assim, este artigo está organizado da seguinte forma: Na Seção 2, os trabalhos relacionados são descritos. Na Seção 3, detalhes da política de gerenciamento de buffer são apresentados. Na Seção 4, o ambiente de avaliação é descrito. Na seção 5, são apresentados e discutidos os resultados obtidos nos experimentos. Por fim, na Seção 6, as conclusões obtidas e os trabalhos futuros. Do ponto de vista acadêmico, este trabalho é importante para futuras consultas sobre o tema aqui pesquisado.
2. Trabalhos Relacionados Na literatura investigaram-se estudos que referenciavam o uso do gerenciamento de buffer nas redes DTNs e foram encontradas diferentes estratégias de descarte de mensagem, os quais podem ser divididos em duas categorias: as que utilizam informações locais e as que trabalham com informações da rede. Para as políticas que adotam as informações locais, muitas vezes, utilizam apenas um simples atributo para o descarte de uma mensagem, como no caso de [Rashid e Ayub 2010], que compararam sua política Drop Largest (DLA), que elimina uma mensagem com o maior tamanho, e a Drop Oldest (DO), que descarta mensagens com menor tempo de vida. DLA foi superior à DO com relação a taxa de entrega e o atraso médio. Os autores [Mansuri, Shah e Kosta 2012] fizeram uma análise de performance com quatro políticas: First-In First-Out (FIFO), Last-In First-Out (LIFO), Evict most forwarded first (MOFO) e Drop Largest (DLA), sendo que a política MOFO obteve uma performance de 38% na taxa de entrega sobre a política FIFO. Já as políticas que utilizam as informações da rede como: número de nós, cópias das mensagens e taxa de encontro entre dois nós; apresentam dificuldades de obter informações completas para a tomada de decisão de descarte, devido a constantes mudanças de topologia [Tang et al. 2012]. Em [Naves, Moraes e Albuquerque 2012] são propostos dois tipos de gerenciamento de buffer. O primeiro descartava do buffer a mensagem que estava há mais tempo sem ser encaminhada, Least Recently Forwarded (LRF). O outro, Less Probable Sprayed (LPS), estimava a quantidade de réplicas da mensagem na rede e explorava uma particularidade do protocolo PROpHet. Os resultados
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
169
mostraram que as polĂticas LPS e LRF proporcionaram uma taxa de entrega de atĂŠ 75% e 37% em comparação com as polĂticas avaliadas. Drop Less Known (DLK) [Souza 2013] trouxe uma proposta diferenciada, que se fundamentava no relacionamento social entre os nĂłs da rede. Os resultados mostraram que a DLK gerou resultados promissores em relação as polĂticas comparadas: DO, MOFO e Least Recently Received (LRR). Tendo como ganho 15% na taxa de entrega e um menor atraso na entrega das mensagens. Enquanto que [Rahmouni et al. 2014] aplicou o modelo matemĂĄtico de Processo de DecisĂŁo de Markov Parcialmente Observada (Partially Observed Markov Decision Process - POMDP). Com intuito de que os nĂłs possam atuar de forma otimizada levando em conta o histĂłrico prĂŠvio de observaçþes e açþes, ao invĂŠs de apenas o estado atual em que o nĂł se encontra. Os resultados obtidos apresentaram eficĂĄcia com diminuição de 4% no consumo de recursos e 6% no custo de transmissĂŁo. Mas em contrapartida a polĂtica DF obteve uma taxa de entrega com 35,63%, em quanto a POMDP 29,85%. Este trabalho propĂ´s estudar o algoritmo de aprendizagem de mĂĄquina Naive Bayes como polĂtica de gerenciamento de buffer para as redes DTNs. Adiante serĂĄ apresentado detalhes do funcionamento deste algoritmo e sua aplicabilidade como gerenciador de buffer.
3. Classificador Naive Bayes como Gerenciador de Buffer A polĂtica de gerenciamento de buffer estudada neste artigo utiliza como motor de classificação o algoritmo de aprendizagem de mĂĄquina Naive Bayes, no qual foi capaz de classificar as mensagens da lista de buffer que foram eliminadas. Este algoritmo foi escolhido pelo fato de ser um classificador que foi aplicado em uma grande variedade de ĂĄreas e problemas, alĂŠm de ser eficaz e de fĂĄcil construção, pois assume que todas as caracterĂsticas sĂŁo independentes uma das outras [Pinto, 2005; Cheng e Greiner, 2001]. 3.1 Classificador Naive Bayes O algoritmo de aprendizagem de mĂĄquina Naive Bayes ĂŠ um classificador supervisionado, que segundo [Faceli 2011], ĂŠ um modelo que pode prever a partir dos dados de treinamento um valor que caracteriza uma nova instância. Ă&#x2030; um algoritmo que se baseia no Teorema de Bayes, o qual utiliza cĂĄlculos probabilĂsticos para classificar novas instâncias. Pode-se definir o teorema da seguinte forma: seja uma đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; e đ??´ uma amostra desconhecida, denotamos que đ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; |đ??´) a probabilidade condicionada do evento đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; , quando đ??´ tiver ocorrido e onde đ??´ = đ?&#x2018;&#x17D;1 , đ?&#x2018;&#x17D;2 , đ?&#x2018;&#x17D;3 , â&#x20AC;Ś đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; onde đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; (i=1,...n) sĂŁo valores dos atributos de uma instância e deseja-se predizer sua classe, conforme a equação 1. đ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; |đ??´) =
đ?&#x2018;&#x192;(đ??´|đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; ) Ă&#x2014; đ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; ) đ?&#x2018;&#x192;(đ??´)
(1)
Reescrevendo a equação 1 com os atributos da instância A: đ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; |đ?&#x2018;&#x17D;1 , â&#x20AC;Ś , đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; ) =
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
(đ?&#x2018;&#x17D;1 , â&#x20AC;Ś , đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; |đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; ) Ă&#x2014; đ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; ) đ?&#x2018;&#x192;(đ?&#x2018;&#x17D;1 , â&#x20AC;Ś , đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; )
(2)
170
Segundo [Faceli 2011] o denominador, đ?&#x2018;&#x192; = (đ??´) na equação 2, pode ser ignorado, uma vez que ĂŠ o mesmo para todas as classes, nĂŁo afetando os valores relativos de suas probabilidades. Com isso o Teorema de Bayes fica resumido na equação 3. Mas para este trabalho houve a necessidade de aplicar a distribuição gaussiana, pois alguns atributos dos dados de treinamento envolvem atributos com quantidade contĂnua. A distribuição ĂŠ definida na equação 4, onde đ?&#x2018;&#x17D;đ?&#x2018;§ ĂŠ o atributo da instância a ser đ?&#x2018;&#x17D;đ?&#x2018;&#x;đ?&#x2018;&#x201D;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľđ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; ) Ă&#x2014; ŕˇ&#x2018; đ?&#x2018;&#x192;(đ?&#x2018;&#x17D;1 , â&#x20AC;Ś , đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; |đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; )
(3)
đ?&#x2018;&#x2013;
classificada, đ?&#x153;&#x2021;đ?&#x2018;&#x17D; e đ?&#x153;&#x17D;đ?&#x2018;&#x17D; sĂŁo respectivamente a mĂŠdia e a variância do đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; . (đ?&#x2018;&#x17D;đ?&#x2018;§ â&#x2C6;&#x2019; đ?&#x153;&#x2021;đ?&#x2018;&#x17D; )2 đ?&#x2018;&#x192;(đ?&#x2018;Ľ = đ?&#x2018;&#x17D;1 , â&#x20AC;Ś , đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; |đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; ) = exp á&#x2030;&#x2020;â&#x2C6;&#x2019; á&#x2030;&#x2021;ŕľ&#x2014;ඥ2đ?&#x153;&#x2039;đ?&#x153;&#x17D;đ?&#x2018;&#x17D;2 2đ?&#x153;&#x17D;đ?&#x2018;&#x17D;2
(4)
3.2. Dados de treinamento para o classificador De acordo com [Faceli 2011], o objetivo dos algoritmos de aprendizagem de mĂĄquina ĂŠ aprender a partir de um conjunto de treinamento ou base de conhecimento, um modelo capaz de relacionar os atributos de entrada com os atributos de saĂda. Neste trabalho foram escolhidos os atributos que sĂŁo usados pelas polĂticas MOFO [Mansuri, Shah e Kosta 2012], LPS [Naves, Moraes e Albuquerque 2012] e DLK [Souza 2013], sĂŁo eles: nĂşmero de rĂŠplicas da mensagem gerada pelo nĂł (nLocal), nĂşmero de rĂŠplicas da mensagem gerada na rede (nGlobal), estimativa de entrega da mensagem (probPara) e nĂvel de laço social (forte, mĂŠdio, fraco). JĂĄ as classes empregadas foram: eliminar e acumular. PolĂtica LPS
Buffer
Base de conhecimento
Figura 1. Esquema da criação da base de conhecimento [elaborado pelo autor]
Nesta pesquisa, a base de conhecimento utilizada foi obtida ao aplicar a polĂtica LPS no simulador de Ambiente de Rede Oportunista com roteamento PROpHet e trĂŞs conjuntos de mobilidade humana: Rollernet, Cambridge e Infocom 2006, que segundo a literatura representam formas de mobilidade humana em ambiente real. Foi implementada uma interface que pudesse coletar os dados da mensagem que era eliminada pela polĂtica e de uma que permanecia no buffer, como ilustrado na Figura 1. JĂĄ a Tabela 1 apresenta 11 instâncias retiradas da base de conhecimento utilizada nesta pesquisa, como tambĂŠm as açþes que a polĂtica LPS adotou para cada mensagem. A subseção a seguir apresentarĂĄ um exemplo da aplicação do algoritmo Naive Bayes no problema abordado na presente pesquisa.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
171
Tabela 1 â&#x20AC;&#x201C; Modelo da base de conhecimento
nLocal 1 2 3 1 1 5 1 3 4 6 1
nGlobal 1 28 4 28 7 29 4 29 8 30 7
probPara 0.1978666635 0.1939254374 0.1973343884 0.1934037645 0.1968035452 0.1928834949 0.1941791125 0.1923646249 0.1936950245 0.1918471507 0.1910037645
laçoSocial mÊdio mÊdio forte fraco forte mÊdio forte fraco forte mÊdio forte
Ação acumular eliminar acumular eliminar acumular eliminar acumular eliminar acumular eliminar acumular
3.3. Exemplo de funcionamento do classificador Com o intuito de esclarecer a abordagem utilizada nesta pesquisa, ĂŠ apresentado um exemplo onde a polĂtica com Naive Bayes ĂŠ acionada para classificar uma mensagem do buffer com a seguinte instância: nLocal = 5, nGlobal = 26, probPara = 0.1954989141 e laçoSocial = fraco, utilizando a Tabela 1 como base de conhecimento. Para esse fim o classificador segue as seguintes etapas: 1 Etapa â&#x20AC;&#x201C; Calcular a probabilidade de ocorrĂŞncia para cada classe: (5)
đ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013;đ?&#x2018;&#x2013; ) = đ?&#x2018;&#x192;â &#x201E;đ?&#x2018;&#x2021;
onde đ?&#x2018;&#x192; ĂŠ o nĂşmero de casos de đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013;đ?&#x2018;&#x2013; , e đ?&#x2018;&#x2021; ĂŠ o total de nĂşmeros de casos, temos entĂŁo: đ?&#x2018;&#x192;(đ??´Ă§ĂŁđ?&#x2018;&#x153; = đ?&#x2018;&#x17D;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;&#x161;đ?&#x2018;˘đ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018;&#x;) = 6â &#x201E;11 = 0.54
đ?&#x2018;&#x192;(đ??´Ă§ĂŁđ?&#x2018;&#x153; = đ?&#x2018;&#x2019;đ?&#x2018;&#x2122;đ?&#x2018;&#x2013;đ?&#x2018;&#x161;đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;đ?&#x2018;&#x17D;đ?&#x2018;&#x;) = 5â &#x201E;11 = 0,45
2 Etapa â&#x20AC;&#x201C; Calcular a probabilidade de cada um dos atributos da instância em relação a cada possĂvel classe: (6)
đ?&#x2018;&#x192;(đ?&#x2018;&#x17D;đ?&#x2018;Ąđ?&#x2018;&#x;đ?&#x2018;&#x2013;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;Ąđ?&#x2018;&#x153;đ?&#x2018;&#x2013; |đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013;đ?&#x2018;&#x2013; ) = đ?&#x2018;&#x17D;đ?&#x2018;&#x2013;đ?&#x2018;? â &#x201E;đ?&#x2018;&#x192;
đ?&#x2018;&#x192;(đ?&#x2018;Ľ = đ?&#x2018;&#x17D;đ?&#x2018;Ąđ?&#x2018;&#x;đ?&#x2018;&#x2013;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;Ąđ?&#x2018;&#x153;đ?&#x2018;&#x2013; |đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013;đ?&#x2018;&#x2013; ) = exp ŕľâ&#x2C6;&#x2019;
(đ?&#x2018;&#x17D;đ?&#x2018;§ â&#x2C6;&#x2019; đ?&#x153;&#x2021;đ?&#x2018;&#x17D;đ?&#x2018;&#x2013;đ?&#x2018;? )2 2đ?&#x153;&#x17D;đ?&#x2018;&#x17D;2đ?&#x2018;&#x2013;đ?&#x2018;?
ŕľąŕľ&#x2DC;ට2đ?&#x153;&#x2039;đ?&#x153;&#x17D;đ?&#x2018;&#x17D;2đ?&#x2018;&#x2013;đ?&#x2018;?
(7)
a equação 6 ĂŠ aplicada para o atributo discreto, como o laçoSocial, onde đ?&#x2018;&#x17D;đ?&#x2018;&#x2013;đ?&#x2018;? ĂŠ o nĂşmero total de caos da classe đ?&#x2018;? em relação ao atributo đ?&#x2018;&#x17D;đ?&#x2018;Ąđ?&#x2018;&#x;đ?&#x2018;&#x2013;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;Ąđ?&#x2018;&#x153;đ?&#x2018;&#x2013; . JĂĄ a equação 7 aplica-se nos atributos contĂnuos: nLocal, nGlobal e probPara. Para solucionar a Ăşltima equação, utilizasse a tabela 2 como as mĂŠdias e as variâncias dos atributos đ?&#x2018;&#x17D;đ?&#x2018;&#x2013;đ?&#x2018;? . Tabela 2 â&#x20AC;&#x201C; MĂŠdia e variância dos atributos
nLocal Ação đ?? đ?&#x2019;&#x201A; acumular 1,833 eliminar 3,4
nGlobal đ??&#x2C6;đ?&#x;?đ?&#x2019;&#x201A;
1,7667 4,3
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
đ?? đ?&#x2019;&#x201A;
5 28,8
đ??&#x2C6;đ?&#x;?đ?&#x2019;&#x201A;
6,9667 0,7
probPara đ?? đ?&#x2019;&#x201A; đ??&#x2C6;đ?&#x;?đ?&#x2019;&#x201A; 0,1953 7,0273E-6 0,1929 6,7488E-7
172
đ?&#x2018;&#x192;(đ?&#x2018;&#x203A;đ??żđ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;&#x17D;đ?&#x2018;&#x2122;|đ?&#x2018;&#x17D;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;&#x161;đ?&#x2018;˘đ?&#x2018;&#x2122;đ?&#x2018;&#x17D;) = 0,0451476 đ?&#x2018;&#x192;(đ?&#x2018;&#x203A;đ??şđ?&#x2018;&#x2122;đ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;&#x17D;đ?&#x2018;&#x2122;|đ?&#x2018;&#x17D;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;&#x161;đ?&#x2018;˘đ?&#x2018;&#x2122;đ?&#x2018;&#x17D;) = 0,0006093 đ?&#x2018;&#x192;(đ?&#x2018;?đ?&#x2018;&#x;đ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;&#x192;đ?&#x2018;&#x17D;đ?&#x2018;&#x;|đ?&#x2018;&#x17D;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;&#x161;đ?&#x2018;˘đ?&#x2018;&#x2122;đ?&#x2018;&#x17D;) = 5,9351â&#x2C6;&#x2019;170 đ?&#x2018;&#x192;(đ?&#x2018;&#x201C;đ?&#x2018;&#x;đ?&#x2018;&#x17D;đ?&#x2018;?đ?&#x2018;&#x153; |đ?&#x2018;&#x17D;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;&#x161;đ?&#x2018;˘đ?&#x2018;&#x2122;đ?&#x2018;&#x17D;) = đ?&#x2018;&#x203A;ĂŁđ?&#x2018;&#x153; đ?&#x2018;&#x2019;đ?&#x2018;Ľđ?&#x2018;&#x2013;đ?&#x2018; đ?&#x2018;Ąđ?&#x2018;&#x2019;
đ?&#x2018;&#x192;(đ?&#x2018;&#x203A;đ??żđ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;&#x17D;|đ?&#x2018;&#x2019;đ?&#x2018;&#x2122;đ?&#x2018;&#x2013;đ?&#x2018;&#x161;đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;đ?&#x2018;&#x17D;đ?&#x2018;&#x;) = 0,865719 đ?&#x2018;&#x192;(đ?&#x2018;&#x203A;đ??şđ?&#x2018;&#x2122;đ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;&#x17D;đ?&#x2018;&#x2122;|đ?&#x2018;&#x2019;đ?&#x2018;&#x2122;đ?&#x2018;&#x2013;đ?&#x2018;&#x161;đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;đ?&#x2018;&#x17D;đ?&#x2018;&#x;) = 0,000191 đ?&#x2018;&#x192;(đ?&#x2018;?đ?&#x2018;&#x;đ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;&#x192;đ?&#x2018;&#x17D;đ?&#x2018;&#x;đ?&#x2018;&#x17D;|đ?&#x2018;&#x2019;đ?&#x2018;&#x2122;đ?&#x2018;&#x2013;đ?&#x2018;&#x161;đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;đ?&#x2018;&#x17D;đ?&#x2018;&#x;) = 2,6658â&#x2C6;&#x2019;300 đ?&#x2018;&#x192;(đ?&#x2018;&#x201C;đ?&#x2018;&#x;đ?&#x2018;&#x17D;đ?&#x2018;?đ?&#x2018;&#x153; |đ?&#x2018;&#x2019;đ?&#x2018;&#x2122;đ?&#x2018;&#x2013;đ?&#x2018;&#x161;đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;đ?&#x2018;&#x17D;đ?&#x2018;&#x;) = 2â &#x201E;5 = 0,4
3 Etapa â&#x20AC;&#x201C; Calcular a probabilidade para cada uma das classes junto com as probabilidades calculadas. đ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; |đ?&#x2018;&#x17D;1 , â&#x20AC;Ś , đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; ) = đ?&#x2018;&#x192;(đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013;đ?&#x2018;&#x2013; ) Ă&#x2014; ŕˇ&#x2018; đ?&#x2018;&#x192;(đ?&#x2018;&#x17D;1 , â&#x20AC;Ś , đ?&#x2018;&#x17D;đ?&#x2018;&#x203A; |đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2013;đ?&#x2018;&#x2013; )
(8)
đ?&#x2018;&#x2013;
đ?&#x2018;&#x192;(đ?&#x2018;&#x17D;đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;&#x161;đ?&#x2018;˘đ?&#x2018;&#x2122;đ?&#x2018;&#x17D;đ?&#x2018;&#x;|đ??´) = 0,0451476 Ă&#x2014; 0,0006093 Ă&#x2014; 5,9351â&#x2C6;&#x2019;170 = 1,6327â&#x2C6;&#x2019;174 đ?&#x2018;&#x192;(đ?&#x2018;&#x2019;đ?&#x2018;&#x2122;đ?&#x2018;&#x2013;đ?&#x2018;&#x161;đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;đ?&#x2018;&#x17D;đ?&#x2018;&#x;|đ??´) = 0,865719 Ă&#x2014; 0,000191 Ă&#x2014; 52,6658â&#x2C6;&#x2019;300 Ă&#x2014; 0,4 = 1,7632â&#x2C6;&#x2019;304 Este exemplo mostra que a mensagem deve ser acumulada, ou seja, a mensagem deve permanecer no buffer.
4. Experimentos Realizados Para a implantação do algoritmo de classificação como polĂtica de gerenciamento, utilizou-se a interfase de programação de aplicação Waikato Environment for Knowledge Analysis (WEKA) [Bouckaert et al. 2015], pois tratasse de um software de cĂłdigo aberto que ĂŠ usado em pesquisas de aprendizagem de mĂĄquina devido a uma vasta coleção de algoritmos de aprendizagem de mĂĄquina. A fim de avaliar o desempenho da polĂtica estudada em comparação as polĂticas FIFO, LRF, MOFO, LPS e DLK, optou-se por usar o simulador de Ambiente de Rede Oportunista (Opportunistic Network Environment â&#x20AC;&#x201C; ONE). [Naves, Moraes e Albuquerque 2012] citam que este simulador ĂŠ utilizado para validação de protocolos de roteamento e aplicaçþes nas redes DTNs, alĂŠm de ser bastante difundido pela literatura. Considerando os cenĂĄrios criados na simulação, foram aplicados os conjuntos de mobilidade humana Rollernet, Cambridge e Infocom 2006, alĂŠm dos protocolos de roteamento EpidĂŞmico e PROpHet. Como tambĂŠm o empregado de diferentes tamanhos de buffer, 10 a 80 megabytes (MB), que contribuĂram na anĂĄlise do comportamento do gerenciador em diferentes situaçþes de espaço em memĂłria. Para este trabalho foram escolhidas duas mĂŠtricas, que segundo os autores [Naves, Moraes e Albuquerque 2012 e Souza 2013], sĂŁo usadas na avaliação de protocolos da rede DTN. Essas mĂŠtricas sĂŁo: ď&#x201A;ˇ ď&#x201A;ˇ
Taxa de entrega: ĂŠ a razĂŁo entre o conjunto de todas as mensagens criadas, e das mensagens entregues. Atraso mĂŠdio de entrega: ĂŠ a mĂŠdia aritmĂŠtica do intervalo entre o perĂodo de entrega e de criação de todas as mensagens entregues.
5. Resultados Nesta seção sĂŁo abordados resultados obtidos nos cenĂĄrios de avaliação da polĂtica Naive Bayes - NB e outras cinco polĂticas. As simulaçþes foram divididas em 16 rodadas para cada polĂtica e os dados foram coletados durantes os experimentos, sendo representados em forma de grĂĄficos e disponĂveis nas subseçþes a seguir.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
173
5.1. Resultados acerca da taxa de entrega A taxa de entrega é definida pela proporção de mensagens recebidas pelos nós de destino que estão em função do tamanho do buffer e varia entre 10 a 80MB. À primeira vista na Figura 2, pode-se observar que os valores da taxa de entrega crescem à medida que o buffer aumenta, pois, os nós podem carregar um número maior de mensagens, e assim, aumentado a probabilidade de entrega.
(a) Trace Cambridge - Epidêmico
(b) Trace Cambridge - PROpHET
(c) Trace infoCom2006 - Epidêmico
(d) Trace infoCom2006 - PROpHet
(e) Trace RollerNet - Epidêmico
(f) Trace RollerNet - PROpHet
Figura 2. Resultados da taxa de entrega
Na Figura 2(a), é interessante notar que a política NB, no trace de Cambridge com o protocolo Epidêmico, se equiparou com a política LRF. Entretanto, tendo um pequeno aumento de desempenho nos buffers de 30 até 50MB. Quanto a Figura 2(b), que representa os resultados de Cambridge com protocolo PROpHET, é possível observar uma diferença de desempenho da política NB, que manteve 1 a 2 pontos percentuais acima das políticas LRF e LPS. As Figura 2(c) e 2(d) ilustram o desempenho no trace infoCom2006. Pode-se perceber que a política NB, na Figura 2(c), obteve a melhor taxa de entrega. Curioso notar que as três políticas FIFO, LRF e NB tiveram reações semelhantes com diferentes tamanhos de buffers. Já na Figura 2(d), NB não obteve um bom desempenho, ficando como terceira melhor política, superando apenas FIFO, MOFO e DLK. Neste caso a Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
174
política LPS alcançou destaque com uma variação de 5 a 10 pontos percentuais em relação a NB. Na Figura 2(e) e 2(f), os dados de taxa de entrega para o trace RollerNet são apresentados. E ao observá-los na figura 2(e), é possível notar uma variação de desempenho nos cenários com menor tamanho de buffer. Como no caso da política NB que superou as demais políticas nos buffers de 10 a 40MB, com as taxas percentuais entre 74% a 88%. Já nos demais tamanhos, a LRF obteve os melhores resultados com taxas de 92% de mensagens entregues. As políticas FIFO e MOFO tiveram desempenhos, respectivamente de 57% e 30% no buffer de 10MB, mas ao atingir os 80MB de espaço em buffer as políticas se aproximam dos 89% de taxa de entrega da política NB. Para a Figura 2(f), é possível notar que a política NB atingiu um desempenho abaixo do esperado, ficando em terceiro lugar entre as demais, embora tenha alcançado 85% de taxa de entrega nos 80MB de buffer em comparação a Figura 2(d), que obteve 57%. Neste trace, a LPS atingiu taxas superiores à 85% no buffer de 20MB, enquanto que a política LRF ficou entre 84% e 88% nos buffers de 30 a 80MB. 5.2. Resultados acerca do atraso médio de entrega Outra métrica escolhida para avaliar o desempenho da política NB é o atraso médio de entrega, consiste no intervalo de tempo médio entre o envio e o recebimento das mensagens. Isso quer dizer que, quanto menor o tempo, mais eficiente é a política. A Figura 3 mostra os resultados do atraso médio de entrega das mensagens em função ao tamanho do buffer, que varia entre 10 a 80MB. Para essa métrica, é comum que o tempo de entrega aumente à medida que o tamanho de buffer expande. [Naves, Moraes e Albuquerque 2012] explicam que isso ocorre porque os nós passam a entregar mais mensagens e, por consequência, mensagens mais antigas. Nas Figuras 3(a) e 3(b) as políticas LRF, FIFO, NB e LPS obtiveram desempenhos estatisticamente equivalentes. Com exceção do roteador Epidêmico, Figura 3(a). Onde a política LRF obteve, em relação a NB, um atraso de 1.830 a 2.859 segundos para entregar as mensagens, equivalente à 30 e 48 minutos de atraso nos buffers de 50 a 70MB. Além disso, a política NB obteve uma média de atraso pouco menor nos buffers de 20 e 30MB (Figura 3[a]), e a política LPS nos buffers de 50 e 60MB (Figura 3[b]). As Figuras 3(c) e 3(d) apresentam os resultados do trace infoCom2006. Observase que tanto a política FIFO como NB apresentam bons resultados no buffer igual a 10 e 20MB na Figura 3(c). No entanto FIFO manteve seu desempenho até os 50MB perdendo apenas para DLK, que permaneceu com uma média de 21.229 segundos (5 horas, 53 minutos e 49 segundos) de atraso para entregar das mensagens. Na Figura 3(d), a política NB iniciou como a segunda melhor e finalizou como terceira, com diferença de 4.782 segundos (1 hora, 19 minutos e 42 segundos) para a DLK no buffer de 80MB. A Figura 3(e), ilustra os resultados do protocolo Epidêmico para o trace RollerNet, onde é possível notar que as políticas MOFO e NB tiveram um baixo rendimento neste cenário, entre os buffers de 20MB e 60MB. Diferente das políticas FIFO e DLK, que ficaram entre as primeiras, mas com uma pequena margem de diferença: 9% e 11% em comparação a política NB. Assim como no cenário do protocolo Epidêmico, a política FIFO repetiu seu desempenho como a melhor política, porém, com uma média de 92 segundo de diferença da política NB no cenário PropHet, Figura 3(f). Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
175
(a) Trace Cambridge - Epidêmico
(b) Trace Cambridge - PROpHET
(c) Trace infoCom2006 - Epidêmico
(d) Trace infoCom2006 - PROpHet
(e) Trace RollerNet - Epidêmico
(f) Trace RollerNet - PROpHet
Figura 3. Resultados do atraso médio de entrega
6. Conclusões e Trabalhos Futuros Partindo do princípio em que as relações entre os nós da rede podem ser tão complexas que as interações poderiam ser mais bem capturadas utilizando o modelo probabilístico, segundo este princípio, foi proposto adaptar o modelo de classificação Naive Bayes como política de gerenciamento, em caso de overflow, as mensagens seriam classificadas de forma estocástica para serem eliminada do buffer. Mas para avaliar a política, empregou-se o uso de simulação em três cenários de mobilidade humana, sendo que, cada ambiente aplicou-se dois algoritmos de roteamento. Dos dados coletados, foram gerados métricas de entrega de mensagens, que ao analisalas detectou-se um desempenho regular em relação as outras políticas testadas. A política desenvolvida obteve um leve desempenho na taxa de entrega em dois, dos seis cenários gerados, com uma média de 1% e 2% a mais do que a segunda. Já na métrica que avaliava o atraso médio não foi diferente. Obteve-se desempenho estatisticamente equivalente à primeira colocada no cenário de Cambridge, enquanto que nos outros traces encontraram-se abaixo da melhor política.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
176
Em trabalhos futuros, pretende-se investigar o uso de outros artefatos, como também elaborar novas abordagem para coletar os dados da base de conhecimento. Além disso, pretende-se implementar algoritmos de aprendizagem de máquina diferentes deste trabalho para avaliar seus desempenhos com intuito de melhorar a eficiência da rede.
Referências Bouckaert, R.R. et al. (2015) WEKA manual for version 3-7-3. University of Waikato. Cheng, J., Greiner, R. (2001) “Learning bayesian belief network classifiers: Algorithms and system”, In: Conference of the Canadian Society for Computational Studies of Intelligence. Springer Berlin Heidelberg, p. 141-151. Faceli, K. et al. (2011) Inteligência Artificial: Uma abordagem de aprendizado de máquina, Rio de Janeiro: LTC. Mansuri, S., Shah, H., and Kosta, Y. (2012) "Performance Analysis of Drop Policies for Different Mobility Models in DTN", In: International Journal of Computer Applications, 59(14). McDonald, P. et al. (2007) “Sensor network with delay tolerance (SeNDT)”, In: Computer Communications and Networks, 2007. ICCCN 2007. Proceedings of 16th International Conference on. IEEE, 2007. p. 1333-1338. Miranda, W. J. (2006) “IPv6-A nova geração de comunicação”, Monografia (PósGraduação de Administração em Redes Linux) - Universitário Federal de Lavras Naves, J. F., Moraes, I. M., Albuquerque, C. V. (2012) “LPS e LRF: Políticas de Gerenciamento de Buffer Eficientes para Redes Tolerantes a Atrasos e Desconexões”, In: SBRC Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos. Oliveira, C. T. et al. (2007) “Redes tolerantes a atrasos e desconexões”, In: SBRC Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos, p. 203-256. Pinto, C. M. S. (2005) “Algoritmos Incrementais para Aprendizagem Bayesiana”, Tese (Doutorado em Inteligência Artificial e Computação) - Universidade do Porto. Rahmouni, I., et al. (2014) “Optimal buffer management policies in DTNs: A POMDP approach”, In: Communications (ICC), 2014 IEEE International Conference on Rashid, S., and Ayub, Q. (2010) “Effective buffer management policy DLA for DTN routing Protocols under congestion” In: International Journal of Computer and Network Security, 2(9), p. 118–121. Souza, C. B. (2013) “Inserindo aspectos sociais na gerência de buffer para redes tolerantes ao atraso e desconexões”. Dissertação (Mestrado em Informática) - Universidade Federal do Amazonas Tang, L. et al. (2012) “Buffer Management Policies in Opportunistic Networks” In: Journal of Computational Information Systems, 8(12), p. 5149–5159.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
177
Anais do Encontro Regional de Computação e Sistemas de Informação
Proteção Híbrida para Redes Ópticas de Alta Capacidade Rodrigo C. de Freitas1, Valdenir Silva1, Silvia O. da Costa2, 1
Universidade do Estado do Amazonas (UEA) Manaus – AM – Brasil 2
Força Aérea Brasileira (FAB) Manaus – AM – Brasil
{rcfreitas,vassi.mat}@uea.edu.br,silvia.sodc@gmail.com
Abstract. In this paper we propose an algorithm that integrates two classics optical networks survivabilibilty stratetegies (protection e restoration). The simulations performed consider single and double link failures scenarios. The robustness of the new algorithm is evaluated through the block probability and failure rate metrics. Resumo. Neste artigo é proposto um algoritmo que realiza a integração entre duas estratégias clássicas (proteção e restauração) que garantem a sobrevivência de uma rede óptica. As simulações realizadas consideram cenários com falhas simples e falhas duplas em enlaces. A robustez do novo algoritmo é avaliada por meio das métricas de probabilidade de bloqueio e taxa de insucesso à recuperação de falha.
1. Introdução A Internet tem transformado o cenário das comunicações como nenhuma outra tecnologia ou paradigma foi capaz de realizar antes. O advento do telégrafo, do telefone, do rádio e do computador possibilitou esta integração de capacidades, sem precedentes. A Internet é, ao mesmo tempo, um mecanismo de disseminação da informação e um meio para colaboração e interação entre indivíduos via seus respectivos computadores, independentemente de suas localizações geográficas [Ramaswami et al. 2010]. O aumento contínuo e crescente de demanda por recursos de rede e, também, pela necessidade de maiores taxas de transmissão, faz com que o uso de tecnologias de comunicações capazes de atender a estas características seja indispensável [Pinheiro 2005] [Grenn 2001] [Dutta et al. 2004] [Mukherjee 2006]. Portanto, contar com infraestrutura de alta capacidade, comum a uma variedade de serviços e que seja flexível quanto ao controle de largura de banda a ser alocada a um cliente, é um requisito mandatório [Freitas et al. 2015] [Bouillet et al. 2007]. Neste cenário, prover resiliência contra falhas é um importante e fundamental requisito para as atuais redes ópticas de alta capacidade, pois estas transportam um grande volume de dados e, caso algum problema ocorra e que não possa ser solucionado imediatamente, uma perda volumosa de informação é inevitável, provocando transtornos técnicos e, sobretudo, econômicos. Um requisito comum é que o sistema esteja disponível 99,999% do tempo, o que corresponde a uma inatividade de menos de 5 minutos por ano. Além disso, na ocorrência de uma falha, o tempo de restabelecimento de uma conexão deve ser em torno de 50ms [Ramaswami et al. 2010]. Portanto, a única maneira prática de se atingir esse índice de disponibilidade de serviço é dotar a rede óptica de mecanismos de Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
sobrevivência que garantam a continuidade dos serviços na ocorrência de falhas [Ramaswami et al. 2010] [Mukherjee 2006] [Freitas et al. 2015]. Neste artigo é proposto um novo algoritmo que integra dois fundamentais mecanismos de sobrevivência em redes ópticas (proteção compartilhada por caminho e restauração por caminho). A robustez da proposta é avaliada a partir de simulação computacional por meio de duas topologias de redes ópticas conhecidas na literatura. O restante deste artigo está organizado da seguinte maneira: na Seção 2, é apresentada uma visão geral dos conceitos fundamentais de sobrevivência em redes ópticas. Na Seção 3, são elencados trabalhos anteriores e que possuem relação com este. Na Seção 4, são definidos os cenários de simulação. Na Seção 5, é descrito o algoritmo proposto neste artigo. Na Seção 6, são apresentados os resultados obtidos pelo novo algoritmo. Na Seção 7, discussões e conclusões acerca dos resultados são realizadas.
2. Sobrevivência em Redes Ópticas Como mencionado na seção anterior, uma falha em uma rede óptica pode causar transtornos perda de dados, prejuízos financeiros e insatisfação dos usuários [Bicudo 2005]. Portanto, as redes ópticas precisam implementar mecanismos de recuperação para garantir que conexões afetadas por falhas sejam recuperadas de maneira rápida e eficiente [Ramaswami et al. 2010]. Esta capacidade da rede de permanecer operacional, mesmo quando ocorrem problemas em algum de seus componentes, é conhecida como sobrevivência a falhas. 2.1. Mecanismos de Sobrevivência Em termos gerais, a sobrevivência em redes ópticas transparentes é alcançada com o uso de mecanismos de proteção e/ou restauração. Tais mecanismos proporcionam às conexões da rede óptica uma capacidade de sobreviver a situações de falha. 2.1.1 Restauração O mecanismo de restauração tem o objetivo de descobrir dinamicamente uma nova rota para cada conexão interrompida no exato momento em que ocorrer a falha [Ou e Mukherjee 2005]. O processo de restauração a uma falha ocorre em duas fases [Ramamurthy et al. 2003], a saber: 1ª. Fase: dada a ocorrência de uma falha, o nó-origem envia mensagens de difusão a todos os seus enlaces de saída, propagando a informação de que há uma falha e que o tráfego deve ser comutado da rota de trabalho para uma rota alternativa. Simultaneamente, a cada enlace percorrido pela mensagem de difusão, é reservado um respectivo comprimento de onda. Essa operação ocorre em cascata entre os nós intermediários até que o nó-destino seja alcançado. 2ª. Fase: no momento em que a mensagem de difusão chega ao nó-destino, o caminho óptico alternativo é reservado e uma mensagem de acknowledgement (ack) é enviada ao nó-origem da conexão. A. Restauração por Caminho Nesta abordagem do mecanismo de restauração, os nós adjacentes à falha enviam uma mensagem de falha aos nós origem e destino das respectivas conexões que utilizam o elemento que falhou, conforme observado na Figura 1. Os comprimentos de onda Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
179
utilizados pelas conexões comprometidas com a falha podem ser liberados para reuso em outras conexões [Ramamurthy et al. 2003]. A busca por uma rota alternativa é realizada por meio do processo de restauração em duas fases, visto anteriormente.
Figura 1. A principal característica da restauração por caminho é que os nós origem e destino da chamada interrompida participam do seu processo de restabelecimento, isto é, eles precisam tomar conhecimento da falha por meio de mensagens.
2.1.2 Proteção O método de proteção assim como a restauração garante a continuidade de transmissão de dados mesmo na ocorrência de falhas, porém a rota alternativa é definida antes da ocorrência da falha. O mecanismo de proteção é proativo e, portanto pré-aloca recursos que serão usados em caso de falha. Essa pré-alocação resulta na diminuição da eficiência da rede e acarreta um aumento do bloqueio de circuitos, uma vez que os recursos reservados de forma redundante para a proteção não podem ser mais disponibilizados [Soares et al. 2005]. A. Proteção Compartilhada Neste esquema, um comprimento de onda destinado à proteção pode ser compartilhado por diversas chamadas. O princípio fundamental da proteção compartilhada é que rotas principais que compartilham recursos garantidores de sobrevivência não tenham enlaces ou nós intermediários em comum [Ramaswami et al. 2010] B. Limite de Compartilhamento O limite de compartilhamento (LC) define quantas vezes os comprimentos de onda serão compartilhados. Esse compartilhamento de recursos ocorre apenas nas rotas alternativas das chamadas que utilizam o mecanismo de proteção de modo que os recursos sejam alocados de uma maneira otimizada, pois esta alternativa consegue reduzir significativamente o número de recursos necessários para prover sobrevivência nas redes ópticas [Freitas et al. 2012].
3. Revisão da Literatura Em 2011, foram implementadas três estratégias que garantem a resiliência de uma rede óptica de alta capacidade, dada a ocorrência de falhas [Leitão 2011] . As três estratégias utilizam o conceito de restauração por caminho: a primeira considera a existência de Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
180
falha em um enlace; a segunda leva em consideração a existência de falha dupla em enlaces, e a terceira estratégia considera a existência de uma falha em algum no da rede. Outro trabalho relacionado foi o desenvolvido por [Santos 2011], no qual propõe um método aperfeiçoado de proteção compartilhada por caminho, considerando a existência de falhas simples em enlaces. Neste trabalho, foram introduzidas duas estratégias: proteção relaxada e proteção restrita. A proteção relaxada permite que duas chamadas compartilhem, ao mesmo tempo, enlaces em suas rotas principais e rotas alternativas. Por outro lado, a proteção restrita limita esse compartilhamento apenas às rotas principais ou às rotas alternativas, e nunca a ambas simultaneamente.
4. Ambiente e Configurações de Simulação Os resultados obtidos neste artigo foram gerados no simulador SIMTON (Simulator for Transparent Optical Networks), desenvolvido pelo Laboratório de Redes Ópticas da Universidade Federal de Pernambuco e evoluído, no que concerne aos aspectos de sobrevivência, pelo Grupo de Redes Ópticas da Universidade do Estado do Amazonas [Freitas et al. 2015]. O SIMTON, construído na linguagem de C++, emula um tráfego de dados, a partir de uma distribuição uniforme baseado no processo de Poisson. Para a realização das simulações foram utilizadas duas topologias de rede clássicas, a Finlândia e a Pacific Bell apresentadas, respectivamente, nas Figuras 2 e 3. A carga de rede considerada foi de 60 erlangs para 20 e 40 comprimentos de onda.
Figura 2. Topologia Finlândia.
Figura 3. Topologia Pacific Bell.
A robustez do algoritmo proposto neste artigo é medida pelas seguintes métricas:
Taxa de Insucesso na Recuperação de Falha – TIRF, obtida pela seguinte fórmula: (%)
(
=1−
) (
)
,
em que, qtd (restauradas) indica a quantidade de chamadas que obtêm sucesso no processo de restauração qtd (afetadas) representa a quantidade de chamadas interrompidas devido à falha.
Probabilidade de Bloqueio – PB, obtida pela seguinte fórmula: (%)
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
=
(
) (
)
,
181
em que, qtd(bloqueadas) indica a quantidade de chamadas que não puderam ser estabelecidas qtd(geradas) representa a quantidade de chamadas solicitadas.
5. Proteção Híbrida O algoritmo proposto neste artigo apresenta uma abordagem de integração entre dois mecanismos de sobrevivência em redes ópticas: a Proteção Compartilhada e a Restauração. A este novo esquema é dado o nome de Proteção Híbrida. Esta nova estratégia tem o objetivo principal de aumentar a possibilidade de recuperação das chamadas em caso de falhas utilizando, conjuntamente, os aspectos vantajosos dos esquemas de proteção e restauração para possibilitar que a rede atinja maior eficiência. Para avaliação de desempenho do novo algoritmo, são considerados dois cenários: falha simples em enlace e falha dupla em enlace. No primeiro cenário, a falha é simulada sequencialmente para cada enlace da topologia, enquanto que no cenário de falha dupla, ocorre uma primeira falha na topologia e, em um momento posterior, enquanto a primeira falha ainda não fora restabelecida, ocorre uma segunda falha.
5.1. Pseudocódigo da Proteção Híbrida O Algoritmo 1 apresenta o funcionamento do esquema de proteção híbrida falha simples (uma falha). Após determinar a origem e o destino de uma chamada, é necessário verificar quais chamadas não se encontram mais ativas, pois com o encerramento das conexões é possível que os recursos alocados para garantir sua sobrevivência fiquem indisponíveis, gerando bloqueio às novas solicitações. Ao liberar esses recursos, deve-se obter rota principal para as novas conexões e fazer uso da estratégia proteção compartilhada para garantir sua sobrevivência. Entretanto, nem todas as chamadas conseguirão uma rota alternativa, ficando vulneráveis. No momento em que for simulada uma falha, as chamadas vulneráveis ou interrompidas serão restabelecidas pela estratégia de restauração. Algoritmo 1: Proteção Híbrida (Falha Simples) 1. para cada chamada solicitada faça 2. Determinar origem e destino das chamadas requisitadas; 3. Liberar recursos de chamadas encerradas; 4. Encontrar a rota principal para as chamadas requisitadas; 5. Proteger as chamadas requisitadas [Proteção Compartilhada]; 6. fim para 7. Identificar chamadas ativas 8. para cada enlace da rede faça 9. Simular falha no enlace; 10. Restaurar as chamadas vulneráveis e não protegidas [Restauração] 11. fim para
No Algoritmo 2 é apresentado o funcionamento do esquema de proteção híbrida falha dupla.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
182
Algoritmo 2: Proteção Híbrida (Falha Dupla) 1. para cada chamada solicitada faça 2. Determinar origem e destino das chamadas requisitadas; 3. Liberar recursos de chamadas encerradas; 4. Encontrar a rota principal para as chamadas requisitadas; 5. Proteger as chamadas requisitadas [Proteção Compartilhada]; 6. fim para 7. Identificar chamadas ativas; 8. para cada enlace da rede faça 9. Simular primeira falha no enlace; 10. Restaurar as chamadas vulneráveis e não protegidas [Restauração]; 11. fim para 12. Identificar chamadas ativas remanescentes; 8. para cada enlace da rede faça 9. Simular segunda falha no enlace; 10. Restaurar as chamadas vulneráveis e não protegidas [Restauração] 11. fim para
6. Resultados O algoritmo de proteção híbrida tem seu desempenho avaliado para as topologias Finlândia e Pacific Bell, considerando 20 e 40 comprimentos de onda, carga de rede 60 erlangs, falha simples em enlace e falha dupla em enlace. Na Figura 4 é apresentada a TIRF em função da probabilidade de bloqueio para o cenário considerando a topologia Pacific Bell com 20 comprimentos de onda por enlace e carga de rede 60 erlangs. As duas primeiras curvas (parte superior do gráfico) indicam, respectivamente, o desempenho do algoritmo OSNR-PP para falha dupla em enlace e falha simples em enlace. A terceira e quarta curvas indicam o desempenho do esquema de proteção híbrida para falha dupla em enlace e falha simples em enlace, respectivamente. Os dois pontos avulsos (à esquerda do gráfico) representam o desempenho do algoritmo PROTON na ocorrência de falha dupla e falha simples. Analisando o gráfico da Figura 4, observa-se que para os cenários com falha dupla a TIRF é superior. Outra observação importante é que por mais que o limite de compartilhamento seja elevado, ainda assim a probabilidade de bloqueio apresentada pelos algoritmos de proteção é superior à apresentada pelo esquema de restauração. Considerando que um comprimento de onda de reserva possa ser compartilhado por até 30 chamadas, é possível notar que a TIRF apresentada pelo algoritmo de proteção híbrida é no máximo igual à TIRF apresentada pelo esquema de restauração, nunca superior. Na Figura 5 é apresentada a TIRF em função da probabilidade de bloqueio para o cenário considerando a topologia Pacific Bell com 40 comprimentos de onda por enlace e carga de rede 60 erlangs. Para as curvas (falha simples e falha dupla) do esquema de proteção é verificado que à medida que o limite de compartilhamento é elevado, a TIRF também se eleva. Por outro lado, para as curvas do esquema de proteção híbrida, as curvas da TIRF se mantêm constante à medida que o limite de compartilhamento se eleva. Até LC = 29, a proteção híbrida apresenta TIRF inferior à Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
183
apresentada pelo esquema de restauração, tanto para falha simples quanto para falha dupla.
Figura 4. TIRF em função da probabilidade de bloqueio para a topologia Pacific Bell com 20 comprimentos de onda por enlace e carga de rede 60 erlangs.
Figura 5. TIRF em função da probabilidade de bloqueio para a topologia Pacific Bell com 40 comprimentos de onda por enlace e carga de rede 60 erlangs.
Na Figura 6 é apresentada a TIRF em função da probabilidade de bloqueio para o cenário considerando a topologia Finlândia com 20 comprimentos de onda por enlace e carga de rede 60 erlangs. Neste cenário também é observado que para o esquema de proteção, à medida que o limite de compartilhamento é aumentado, a TIRF também aumenta. Por outro lado, para o esquema de proteção híbrida, à medida que o limite de compartilhamento é elevado, a TIRF permanece constante. Deve-se notar também que a proteção híbrida, em todos os limites de compartilhamento, apresenta menor TIRF do que o esquema de restauração.
Figura 6. TIRF em função da probabilidade de bloqueio para a topologia Finlândia com 20 comprimentos de onda por enlace e carga de rede 60 erlangs.
Figura 7. TIRF em função da probabilidade de bloqueio para a topologia Finlândia com 40 comprimentos de onda por enlace e carga de rede 60 erlangs.
Na Figura 7 é apresentada a TIRF em função da probabilidade de bloqueio para o cenário considerando a topologia Finlândia com 40 comprimentos de onda por enlace e carga de rede 60 erlangs. Neste cenário, a probabilidade de bloqueio para os esquemas de proteção e proteção híbrida cai para menos de 1%, a partir de LC = 3. E, para LC = 29 a proteção híbrida alcança a magnitude da probabilidade de bloqueio gerada pelo esquema de restauração, além de gerar menor TIRF.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
184
É importante destacar que as variações na TIRF verificadas nos gráficos das Figuras 6 e 7 são devidas ao processo de simulação, gerando flutuações estatísticas. Na Figura 8 é apresentado o gráfico boxplot da TIRF para cada dos esquemas de proteção simples, restauração e proteção híbrida, considerando limite de compartilhamento igual a 10, topologia Finlândia e 20 comprimentos de onda. O objetivo desse gráfico é mostrar a relevância estatística dos resultados obtidos em 30 simulações independentes. É possível notar que 75% (índice representado pela caixa) dos valores gerados pelo algoritmo de proteção híbrida oscilam entre 1% e 2%, denotando uma variância pequena nas taxas obtidas e indicando confiabilidade nos resultados gerados. Para os resultados obtidos pelos algoritmos de proteção simples e de restauração, a variância também é pequena. Na Figura 9, a variância entre os 30 resultados obtidos pelo algoritmo de proteção híbrida oscilam próximo a zero. Comportamento semelhante pode ser observado pelo algoritmo de restauração. Na Figura 10, os resultados obtidos pelo algoritmo de proteção h brida oscilam entre 5% e 8%, com uma TIRF media de 6,5%. O algoritmo de proteção simples apresenta menor variância nos resultados gerados. Na Figura 11, a TIRF da proteção híbrida varia entre 4% e 7%. A variância dos algoritmos de proteção simples e restauração também oscila entre 3 e 4 pontos percentuais.
Figura 8. Gráfico da TIRF em função da PB, topologia Finlândia, 20 lambda.
Figura 10. Gráfico da TIRF em função da PB, topologia Pacific Bell, 20 lambda.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Figura 9. Gráfico da TIRF em função da PB, topologia Finlândia, 40 lambda.
Figura 11. Gráfico da TIRF em função da PB, topologia Pacific Bell, 40 lambda.
185
7. Conclusões Neste artigo é proposta uma nova estratégia para prover sobrevivência em redes ópticas capaz de garantir com maior eficiência a disponibilidade de uma rede dada a ocorrência de uma ou mais falhas. Com base nos resultados apresentados, é possível afirma que a proteção híbrida apresenta desempenho sensivelmente superior quando comparada à proteção simples e à restauração por caminho. Com esta nova estratégia, a rede passa a ter dois esquemas de sobrevivência trabalhando em conjunto. Nas simulações para a topologia Finlândia, por exemplo, a diferença de PB entre os cenários de 20 e 40 comprimentos de onda significativa. Porém, nesse cenário, a TIRF da proteção híbrida para falha dupla é praticamente a mesma que a TIRF da restauração. Já para a falha simples, a partir de limite de compartilhamento 1, a TIRF da proteção híbrida é sempre menor que a TIRF da restauração. Outro ponto importante a se levar em consideração é o desempenho das estratégias de simulação de falhas em relação à conectividade da rede. As simulações realizadas com a topologia Finlândia apresentaram melhores resultados, visto que as possibilidades de caminhos alternativos são muito maiores quando comparadas com a topologia Pacific Bell.
Referências Ramaswami, R., Sivarajan, K. N., Sasaki, G. H. (2010) “Optical Networks: A Practical Perspective”, 3ª ed. Morgan Kaufmann. Pinheiro, J. M. S. (2005) “Cabeamento Óptico”, 1ª ed. Campus. Grenn, P. (2001) “Progress in Optical Networking”, IEEE Communications Magazine, v. 39, n. 1, p. 54–61, Janeiro 2001. Dutta, A. K., Dutaa, N. K., Fujiwara, M. (2004) “WDM Technologies - Optical Networks”, 1ª ed.Elsevier - Academic Press. Mukherjee, B. (2006) “Optical WDM Networks”, 1ª ed., Optical Networks Series. Springer. Freitas, R. C., Martins-Filho, J. F., Bastos-Filho, C. J. A. (2015) “Redes Ópticas Estratégias de Sobrevivência a Falhas”. 1ª ed. Manaus: UEA Edições. Bouillet, E., Ellinag, G., Labourdette, J. F., Ramamurthy, R. (2007) “Path Routing in Mesh OpticalNetworks”. Wiley-Interscience. Bicudo, M. D. D. (2005) “Sobrevivência em Redes Ópticas Transparentes”. Universidade Federal do Rio de Janeiro. Acessado em: 02/02/2017. Disponível em: www.gta.ufrj.br/ftp/gta/TechReports/Bicudo05/Bicudo05.pdf. Ou, C., Mukherjee, B. (2005) “Survivable Optical WDM Networks”, 1ª ed., ser. Optical Networks Series. Springer. Ramamurthy, S., Sahasrabuddhe L., Mukherjee, B. (2003) “Survivable WDM Mesh Networks, Journal of Lightwave Technology, v. 21, n. 4, p. 870–883. Soares, A. and Durães, G. e Maranhão, J (2005) “Sobrevivência em Redes Ópticas WDM sob Influência de Algoritmos de Alocação de Rota e de Comprimento de
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
186
Onda”. XXII Simpósio Brasileiro de Telecomuincações - SBrT05, 04-08 de setembro de 2005, Campinas, SP. Freitas, R.C., Santos, E.C.O., Chaves, D.A.R., Pereira, H.A., Bastos-Filho, C.J.A., Martins-Filho, J.F (2012) “Path Protection Algorithm Based on OSNR for AllOptical Networks with Wavelength Sharing Limitation. In 14th International Conference on Transparent Optical Networks (ICTON), v. 1. p. 1-4. Santos, E.C.O. (2011). “Proteção de Caminho Compartilhado”. 49p. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação). Universidade do Estado do Amazonas. Leitão, E.S. (2011). “Estratégias de Sobrevivência em Redes Ópticas de Alta Capacidade”. 52p. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação). Universidade do Estado do Amazonas.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
187
Anais do Encontro Regional de Computação e Sistemas de Informação
Identificação e Análise das Principais Falhas em Sites Empresariais Utilizando Scanner de Vulnerabilidades Open Source Ane Priscila S. Souza1, Clayton Santos1 1
Centro Universitário Luterano de Santarém - Universidade Luterana do Brasil (CEULS/ULBRA) Av. Sérgio Henn, 1787 - Diamantino, Santarém - PA, 68025-000 anepriscilasantos@gmail.com, maia.csmayer@gmail.com
Abstract. Web applications are targeted by numerous attacks because of their vulnerabilities. From this scenario, the objective of this work is to identify and analyze the main vulnerabilities in business websites in Santarém city, state of Pará, based on concepts and characteristics of web applications, principles, security mechanisms, and also the main Web vulnerabilities The final product was the identification of the ten main Web vulnerabilities in order to contribute to local society and to draw their attention. The methodology has a bibliographic research and an exploratory field research for the study of case and measurement of the number of corporate websites in the place of study. Resumo. Aplicações Web são alvos de inúmeros ataques, devido as suas vulnerabilidades. A partir desse cenário, o objetivo desse trabalho é identificar e analisar as principais vulnerabilidades em websites empresariais na cidade de Santarém, estado do Pará, tomando como base conceitos e características das aplicações web, princípios, mecanismos de segurança, e também as principais vulnerabilidades Web. O produto final foi a identificação das dez principais vulnerabilidades Web, com intuito de contribuir para sociedade local, e chamar atenção dos mesmos. A metodologia conta com uma pesquisa bibliográfica e uma pesquisa de campo exploratória para o estudo de caso e mensuração da quantidade de websites empresariais no local de estudo.
1. Introdução Nos últimos anos, é notório perceber o crescimento da demanda em Tecnologias da Informação (TI). Com isso, pessoas dos mais diversos setores acessam todos os dias um sistema Web, onde são armazenados dados do cliente, senhas, entre outras informações. O grande problema é que muitas vezes esses sistemas, nomeados como aplicações Web, são vulneráveis, devido em sua maioria, as tecnologias adotadas na concepção. Aplicações Web tendem a esconder problemas, pois o código pode aparecer em diversos lugares e os scripts tendem a ocultar falhas [Mueller 2016]. São inúmeras vulnerabilidades existentes. Os dados coletados pelo The Open Web Application Security Project (OWASP) abrangem mais de 500.000 vulnerabilidades em centenas de organizações e milhares de aplicações. Diante disso, os invasores estão agora interessados diretamente nos usuários Web, invadindo todo e qualquer mecanismo de segurança desenvolvido nos últimos dez anos para Aplicações Web [Pauli 2014]. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
A segurança em aplicações Web não é mais opcional. Ataques são cada vez mais frequentes e, por esse motivo, torna-se uma necessidade que as organizações estabeleçam um programa ativo de segurança de suas aplicações. Isso se deve ao grande número de aplicações e linhas de código, onde muitas organizações estão tendo dificuldades em controlar o número elevado de vulnerabilidades [OWASP 2013]. Em decorrência disso, pode ser indispensável o uso de medidas para prevenção de invasões e soluções de falhas de segurança em aplicações Web. Existem vários tipos de recursos envolvidos e várias plataformas tecnológicas, tornando-se primordial possuir uma estrutura para identificar vulnerabilidades e definir de prioridades para implementação de controles [Fontes 2008]. Diante do exposto, busca-se analisar as principais vulnerabilidades que podem comprometer a segurança da informação de um sistema Web empresarial na cidade de Santarém. Esta pesquisa é motivada devido à necessidade de buscar aspectos gerais sobre a segurança em aplicações Web, para que possa contribuir com a sociedade local com informações quanto à prevenção de invasões e apresentar conhecimentos para a academia e profissionais no âmbito de segurança em aplicações Web. O restante do artigo está organizado da seguinte forma. A Seção 2 apresenta os trabalhos relacionados. Na Seção 3 são apresentados conceitos e características de aplicações Web. A Seção 4 contém conceitos de vulnerabilidades e riscos envolvendo segurança, bem como, ferramentas open source e alguns exemplos das mesmas, baseadas em relatórios da OWASP. A Seção 5 apresenta a metodologia, bem como o cenário de pesquisa e a ferramenta utilizada. A Seção 6 exibe os resultados e discussão desse trabalho. Por fim, a Seção 7, apresenta as conclusões e propostas de trabalhos futuros, dificuldades e contribuições. 2. Trabalhos Relacionados Falhas de segurança em aplicações Web tem sua origem principalmente devido ao não tratamento das entradas de informações nas aplicações. Nesta seção são apresentados alguns trabalhos que tratam da análise de vulnerabilidades em Aplicações Web. Oliveira (2012) realizou um estudo com o objetivo de colocar em prática a metodologia de testes de segurança de aplicações Web da OWASP. Foram realizadas análises em três aplicações de e-commerce (e-commerce real, e-commerce PrestaShop e e-commerce básico). Como resultados as três aplicações apresentaram fraquezas similares, nenhuma delas possuía algum mecanismo para diferenciar ações humanas de ações automatizadas, um CAPTCHA por exemplo. Não havia mecanismos para avaliar a força das senhas dos usuários, detecção de senhas fracas ou senhas padrões. Carvalho et al,. (2013) analisou as vulnerabilidades Web utilizando três ferramentas Open Source: a Skipfish, ZAP e IronWASP. Houveram duas fases de escaneamento. Na primeira versão foram relatados um total de 142 erros. Esses erros foram analisados e foram encontradas soluções para maior parte deles. A aplicação foi corrigida para que um novo escaneamento pudesse ser feito. Feitas as devidas correções, a aplicação foi hospedada em outro servidor. Após o escaneamento na nova versão da aplicação, versão esta com o tratamento dos erros encontrados na primeira versão, foram relatados um total de apenas 17 erros. Monteverde e Campiolo (2014) realizaram uma pesquisa para análise de websites de vários segmentos, sendo eles nacionais e regionais, desde lojas virtuais e websites informativos de pequenas empresas ou órgãos públicos e uma rede social conhecida. Para Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
189
isso, eles consideraram que as aplicações Web que utilizam estrutura de desenvolvimento, bem como Content Management System (CMS) como gerenciadores de conteúdo e os que foram desenvolvidos por programadores. O estudo utilizou o Top 10 riscos OWASP e aplicaram dois scanners Web, o W3af e VEGA. Foram digitalizados 16 websites e em todos foram encontradas vulnerabilidades abordadas no OWASP Top 10, sendo que 33% das vulnerabilidades foram classificadas como severas pelo grau de classificação de risco da OWASP, 90% das falhas classificadas como severas foram de Injeção de código SQL. O presente trabalho apresenta o estudo e exploração das principais vulnerabilidades Web em um conjunto variado de sítios empresariais de Santarém para apresentar informações quanto à prevenção de invasões e apresentar conhecimentos para a academia e profissionais no âmbito de segurança em aplicações Web. 3. Aplicações Web A Web pode ser definida como um depósito de informações interligadas de pontos espalhados pelo mundo, possuindo uma combinação única de flexibilidade, portabilidade e recursos amigáveis para o usuário que a distingue de outros serviços fornecidos pela Internet [Forouzan 2009]. Aplicação Web pode ser qualquer aplicativo que usa um navegador da Web como um cliente [Muniz e Lakhani 2013]. A Figura 1 exibe os mecanismos de transferências de informações entre a Web e Internet.
Figura 1. Mecanismos de transferência de informações entre aplicações Web e Internet.
De modo simples, as aplicações Web podem ser caracterizadas em três camadas. A primeira é o navegador do usuário, que realiza a leitura das páginas HTML, scripts e plugins. Na segunda há um mecanismo de construção de páginas dinâmicas, e na última o banco de dados [Murarolli 2015]. A Web usa o protocolo HTTP para promover a transferência de informações e depende de browsers para apresentar isso ao usuário, permitindo que ele clique em links que levam a arquivos hospedados em outros computadores [Sampaio 2007]. Desenvolver softwares seguros tornou-se necessidade, como consequência, as aplicações Web atuais são mais seguras que as versões anteriores. Mas ainda existem aplicações vulneráveis, principalmente devido aos programadores objetivarem mais as funcionalidades da aplicação do que a segurança [Pauli 2014]. 4. Vulnerabilidades na Web As aplicações Web possuem vulnerabilidades que são exploradas por invasores para causar danos a empresas ou a usuários comuns. Para entender melhor o que é uma vulnerabilidade, pode-se a conceituar como uma condição que, quando explorada por um atacante, pode resultar em uma violação de segurança [CERT.br 2012]. De fato, se os Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
190
dados da empresa são perdidos, corrompidos, modificados ou tornam-se inutilizáveis, essa empresa poderia se ver fora do mercado [Mueller 2016]. A seguir, a Figura 2 apresenta um esquema utilizado na exploração das vulnerabilidades em serviços Web.
Figura 2. Esquema de como funcionam os ataques a aplicações Web [OWASP, 2013]
Existem diversos fatores que contribuem para que invasões ocorram, como por exemplo, falhas de segurança nos sistemas operacionais utilizados em servidores e estações de trabalho, complexidade no processo de minimizar algumas vulnerabilidades e a formas sofisticadas de invasões, contribuindo de maneira direta para o aumento dos incidentes em aplicações Web. Um ataque de exploração de vulnerabilidades ocorre quando um atacante tenta executar ações maliciosas, como invadir um sistema, acessar informações confidenciais, disparar ataques contra outros computadores ou tornar um serviço inacessível [CERT.br 2012]. Quando vulnerabilidades são identificadas, deve-se levar em consideração os problemas que podem conduzir à exploração de falhas, bem como realizar uma análise e estudo cuidadoso das vulnerabilidades para em seguida corrigi-las [Weidman 2014]. 4.1. Top 10 falhas da OWASP O OWASP Top 10 Riscos de Segurança de 2013 é baseado em oito conjuntos de dados de sete empresas que se especializam em segurança de aplicações. Os itens são selecionados e priorizados de acordo com dados de prevalência, em combinação com estimativas do consenso da exploração, detecção e impacto. O objetivo principal do OWASP é educar desenvolvedores, projetistas, arquitetos, gestores e organizações sobre as consequências das mais importantes vulnerabilidades em aplicações. O Quadro 1 destaca as dez principais vulnerabilidades em aplicações Web [OWASP 2016]. Quadro 1. Riscos mais comuns OWASP 2013. [OWASP 2013] A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
Vulnerabilidades SQL Injection Autenticação Falha e Gerenciamento de Sessão Cross-Site Scripting (XSS) Referência Insegura Direta a Objetos Exposição de Dados Sensíveis Falha de Restrição de Acesso à URL Cross Site Request Forgery (CSRF) Erros de Configuração de Segurança Proteção insuficiente em nível de transporte Redirecionamento e Encaminhamentos não validados
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
191
4.2. Scanner de vulnerabilidades Existem ferramentas que podem identificar vulnerabilidades e podem ser a melhor maneira de obter proteção contra esses problemas [Mueller 2016]. Scanners de vulnerabilidade são ferramentas automatizadas que fazem a varredura de aplicações Web para procurar por vulnerabilidades de segurança conhecidas. Um grande número de ferramentas comerciais e Open Source estão disponíveis, e todas essas ferramentas têm as suas próprias forças e fraquezas [OWASP 2016]. Vale ressaltar que nenhum scanner é capaz de detectar problemas em potencial em um site com 100% de precisão. Os scanners fazem um trabalho notável em localizar problemas existentes, mas não podem encontrar tudo [Mueller 2016]. 5. Metodologia O atual projeto tem por objetivo geral identificar, analisar e estudar as 10 principais vulnerabilidades em aplicações Web na cidade de Santarém, estado do Pará, com o intuito de avaliar a segurança empregada em websites empresariais. Os objetivos específicos são: realizar o levantamento das principais vulnerabilidades Web em aplicações; escolher um scanner de vulnerabilidades Web Open Source para implementação; identificar as vulnerabilidades evidenciando as 10 principais. Para melhor avaliar este estudo foi realizada uma pesquisa de campo, de cunho exploratória, cujo objetivo é a formulação de questões ou de um problema, com tripla finalidade: desenvolver hipóteses, aumentar a familiaridade do pesquisador com um ambiente, fato ou fenômeno, para realização de uma pesquisa futura mais precisa, ou modificar e clarificar conceitos. 5.1. Cenário da Pesquisa Em dados fornecidos pela Prefeitura Municipal de Santarém, o local da pesquisa de campo está situado ao norte do Brasil. Constitui-se em centro polarizador, pois oferece uma infraestrutura econômica e social para a região (escolas, hospitais, universidades, estradas, portos, aeroporto, comunicações, indústria e comércio etc.), além disso possui um setor de serviços mais desenvolvidos. Para realização do estudo foi necessário possuir conhecimento sobre o número aproximado de empresas atuantes em Santarém. Segundo o Instituto Brasileiro de Geografia e Estatística (IBGE), o número de empresas chegou a 4.413 no ano de 2014. Já os dados disponibilizados pelo SEBRAE, em 2015, o número aumentou para 6.109. Considerando essas informações, com base em pesquisas realizadas em sites de busca, foram constatadas cerca de 70 empresas locais que possuem sites, sendo eles apenas para informação e websites de compra e venda, atuantes nos segmentos de Entretenimento, Construção, Imobiliárias, Alimentos e Bebidas, Entretenimento, Comunicação Visual, Tecnologia da Informação, e etc. Essas empresas equivalem a 7,3% de 100% das empresas atuantes em Santarém. 5.2 Ferramenta Utilizada Para escolher uma ferramenta de scanner Web, deve-se estar familiarizado com a funcionalidade do seu scanner e saber como aproveitar a sua configuração. Além disso, deve-se estar ciente dos tipos de vulnerabilidades que scanners podem detectar e aquelas Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
192
que eles não podem. Considerando as informações acima, a ferramenta escolhida foi o scanner VEGA [Mcclure 2014]. O scanner Vega é uma ferramenta de teste de segurança automatizada que rastreia um site, analisando o conteúdo da página para encontrar links e parâmetros de formulário. Vega encontra pontos de injeção, chamados nodos de estado de caminho, e executa módulos escritos em Javascript para analisá-los. O Vega também executa módulos Javascript em todas as respostas enviadas do servidor durante a verificação. 6. Resultados e Discussões Para identificação das vulnerabilidades foi utilizada a ferramenta VEGA discutida na Seção 4. Diante disso, os resultados obtidos identificaram 11.864 vulnerabilidades. Vale ressaltar que nem todas as vulnerabilidades encontradas serão citadas nesse trabalho, pois tornaria o trabalho demasiadamente extenso. Para isso, foi necessário listar as TOP 10, para que pudessem ser comparados com a OWASP. O scanner VEGA permite a visualização dos caminhos de diretórios, ou seja, o recurso utilizado pela aplicação (Figura 3) e com isso pode-se notar que a maioria das aplicações foram desenvolvidas em Wordpress.
Figura 3. Exemplo de Lista de Diretório (Diretory Listing Detected), mostrando a “Classification”, classificação da vulnerabilidade, o “Resource”, recurso, e o “Risk”, risco, “Low”, baixo sobre vulnerabilidade.
A seguir, no Quadro 2, são listadas as 10 principais falhas de segurança detectadas nos sistemas Web, bem como a quantidade de vulnerabilidades encontradas. Quadro 2. Top 10 principais vulnerabilidades encontradas em aplicações Web em sites empresariais na cidade de Santarém. Vulnerabilidade
Qtd
A1
Email Addresses Found
1611
A2
Shell Injection
1536
A3
Insecure Cross-Origin Resource Access Control
1344
A4
Form Password Field With Autocomplete Enabled
1129
A5
Possible Social Insurance Number Detected
887
A6
Internal Addresses Found
838
A7
Integer Overflow
835
A8
Diretory Listing Detected
801
A9
SQL Injection
703
A10
Cleartext Password Over HTTP
661
O quadro 3 mostra um comparativo das vulnerabilidades em relação ao Projeto dos Top 10 riscos da OWASP 2013 citadas na seção 3, na qual cada uma das falhas encontrada Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
193
é relativa a um dos riscos exposto pelo projeto. Quadro 3. Referência da vulnerabilidade em relação ao risco. Vulnerabilidades Encontradas
TOP 10 riscos OWASP 2013
A1
Email Addresses Found
A6 – Exposição de Dados Sensíveis
A2
Shell Injection
A1 – Injeção
A3
Insecure Cross-Origin Resource Access Control
A7- Falta de Função para Controle do Nível de Acesso
A4
Form Password Field With Autocomplete Enabled
A2 - Quebra de Autenticação e Gerenciamento de Sessão
A5
Possible Social Insurance Number Detected
A6 – Exposição de Dados Sensíveis
A6
Internal Addresses Found
A5 – Configuração Incorreta de Segurança
A7
Integer Overflow
A4 - Referência Insegura e Direta a Objetos
A8
Diretory Listing Detected
A5 – Configuração Incorreta de Segurança
A9
Injeção SQL (SQL Injection
A1 – Injeção
A10
Cleartext Password Over HTTP
A6 – Exposição de Dados Sensíveis
A seguir são detalhadas algumas dessas vulnerabilidades encontradas neste trabalho, bem como a justificativa para a ocorrência nesse cenário. 1.
Endereços de email encontrados (Email Addresses Found)
Houve uma grande quantidade de emails encontrados, o qual tomou a posição de A1 (Ameaça 1) que se comparado ao Top 10 da OWASP, possui risco A6- Exposição de Dados Sensíveis, onde os emails dos clientes são expostos. Isso deve-se a partir do grande fluxo de informações, como opção para cadastro de email que são inseridas nos sites pelos usuários, um exemplo são os sistemas de Newsletter, que fornece a comunicação entre empresas e clientes, enviando conteúdo sobre assunto específico juntamente com ofertas de produtos e serviços. 2.
Injeção Shell (Shell Injection)
Esse resultado tomou segunda posição A2, o qual se insere ao Top 10 da OWASP, como risco A1 - Injeção. Às vulnerabilidades de injeção de comando, ocorrem quando dados são fornecidos indevidamente, podem ser parte de um comando de sistema executado por meio de um interpretador de comandos Shell. [Vega 2016] vulnerabilidades como essas podem ser exploradas usando metacaracteres de Shell para executar comandos adicionais que não foram destinados a serem executados pela aplicação [OWASP 2013]. 3. Controle de acesso de recursos cruzados inseguros (Insecure Cross-Origin Resource Access Control) Essa vulnerabilidade A3 pode ser parte do risco A7 - Falta de Função para Controle do Nível de Acesso. Isso se deve porque esse tipo de ameaça fornece instrumentos que permitem que um servidor delimite o acesso a recursos para solicitações entre sites a determinados domínios que são confiáveis. Ou seja, alguns dos servidores deste estudo permitiram acesso a recursos de qualquer origem. Dessa forma, qualquer site pode emitir solicitações para acessar recursos, independente da origem. Além disso, pode
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
194
disponibilizar ao invasor a utilização de vazamentos ou falhas nas funções de autenticação e gerenciamento de sessão, por exemplo, contas expostas, senhas, para assumir a identidade de outro usuário [OWASP 2013]. 4. Campo de senha de formulário com o preenchimento automático ativado (Form Password Field with Autocomplete Enabled) Essa falha pode ser parte do risco A2 - Quebra de Autenticação e Gerenciamento de Sessão. Nesse caso, o usuário fica vulnerável devido as credenciais de autenticação do mesmo não estarem protegidas quando armazenadas. As credenciais podem ser encontradas por meio de funções fracas de gerenciamento de contas, por exemplo, criação de conta, alteração de senha, recuperação de senha [OWASP 2013]. 5. Possível número de seguro social detectado (Possible Social Insurance Number Detected) A vulnerabilidade de posição A5 faz parte do risco A6 - Exposição de Dados Sensíveis. Um banco de dados usando a criptografia automática pode criptografar números de cartão de crédito em uma aplicação. Apesar disso, pode descriptografar os dados automaticamente quando recuperados, criando uma falha de injeção SQL para resgatar os números de cartão de crédito em texto claro [OWASP 2013]. 6.
Acesso Interno Encontrado (Internal Addresses Found)
Essa vulnerabilidade pode fazer parte do risco A5 – Configuração Incorreta de Segurança. Descobriu-se referências a hosts ou redes internas em conteúdo disponível ao público. Esses endereços podem revelar informações a um invasor sobre a estrutura de rede, possibilitando ataques envolvendo outras vulnerabilidades [OWASP 2013]. 7.
Estouro de Inteiro (Integer Overflow)
A vulnerabilidade Integer Overflow se enquadra no risco A4 - Referência Insegura e Direta a Objetos. Isso ocorre devido os tipos de dados inteiros excederem seu valor máximo. O impacto na segurança pode depender da maneira como o valor inteiro é usado. Se for usado como o tamanho de um buffer de dados para forçá-lo a envolver a um valor menor, pode resultar em ignorar verificações de tamanho, introduzindo possíveis condições de estouro de buffer [OWASP 2013]. 8.
Lista de Diretório Detectada (Diretory Listing Detected)
Diretory Listing Detected pode ser uma vulnerabilidade conjunta ao A5 - Configuração Incorreta de Configuração de Segurança, pode ocorrer quando nenhum arquivo de índice está presente em uma configuração incorreta comum. O conteúdo do diretório pode fornecer informações úteis a um invasor, especialmente se houver arquivos que não sejam acessíveis, como código-fonte ou backups. A lista de diretórios também pode fornecer informações úteis sobre os práticas e rotinas da administração de servidores ou desenvolvedores Web, como o uso de nomenclatura de arquivos, que poderiam ser usados para aumentar o provável sucesso de ataques de força bruta ou outros [OWASP 2013]. 9.
Injeção SQL (SQL Injection)
As vulnerabilidades de injeção de comando geralmente ocorrem quando dados fornecidos externamente, são parte de um comando de sistema executado por meio de um interpretador de comandos ou shell. Vulnerabilidades como essas podem ser exploradas usando metacaracteres de shell para executar comandos adicionais que não foram Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
195
destinados a serem executados pelo desenvolvedor de aplicativos. A função system (), e derivados, são muitas vezes responsáveis, uma vez que estas funções são muito simples de usar. Essas vulnerabilidades podem conceder acesso remoto a invasores, se explorados com êxito. No CMS Wordpress, essa vulnerabilidade pode ser causada pela instalação de uma extensão que altera o tema padrão do mesmo, deixando a aplicação vulnerável a ataques de injeção. 10.
Senha de texto explícito por HTTP (ClearText Password Over HTTP)
Houve uma grande quantidade de emails encontrados, o qual tomou a posição de A10 e se comparado ao Top 10 da OWASP, possui risco A6 - Exposição de Dados Sensíveis. Isso ocorre devido, por exemplo, um formulário com um campo de entrada de senha que envia para um destino inseguro (HTTP). Os valores de senha nunca devem ser enviados de forma clara em canais inseguros. Essa vulnerabilidade pode resultar na divulgação não autorizada de senhas a invasores passivos da rede. Segundo a OWASP (2013) uma aplicação criptografa números de cartão de crédito em um banco de dados usando a criptografia de banco de dados automático. No entanto, isso significa que também decodifica esses dados automaticamente quando recuperado, permitindo uma falha de injeção SQL para recuperar números de cartão de crédito em Cleartext. O sistema deve ter criptografado os números de cartão de crédito usando uma chave pública, e só permitiu aplicativos de back-end para decifrá-los com a chave privada. Diante do exposto, foi possível perceber que nos sites analisados, há uma grande quantidade de falhas consideradas de nível crítico que necessitam urgente correção. Infelizmente, nota-se que não há preocupação por parte de desenvolvedores quanto à segurança das aplicações. Vale ressaltar que para que o estudo fosse realizado, houve um termo de consentimento junto às empresas investigadas, e os dados coletados foram repassados às mesmas, como forma de conscientizar os desenvolvedores em relação à Segurança em Aplicações Web.
7. Conclusões e Trabalhos Futuros A análise das vulnerabilidades Web por meio da exploração de falhas revelam os principais pontos críticos das aplicações Web. Projetos, como os da OWASP, com objetivo de conscientização sobre falhas de segurança não fazem parte da cultura por parte das empresas de desenvolvimento, percebeu-se que não há atenção voltada ao fator segurança. Este estudo de caso, gerou algumas dificuldades em relação a aplicação da ferramenta, pois a conexão regional não disponibilizou uma velocidade adequada, mas o fator não foi empecilho para desenvolvimento dos resultados. De acordo com o que foi exposto neste trabalho, há a urgência de conscientizar e treinar os desenvolvedores de software sobre a importância do desenvolvimento seguro com o intuito de mitigar as vulnerabilidades nas aplicações Web. Para trabalhos futuros busca-se analisar sites governamentais do Estado do Pará, para analisar o quão vulneráveis essas aplicações Web estão. Além disso, será criado um grupo de discussão com desenvolvedores Web da região, como forma de disseminar o tema em questão, e ampliar os estudos tanto nas organizações, quanto nas empresas do ramo, para que assim alcance a excelência na segurança empregada nesses meios e corrigir possíveis falhas em tempo hábil.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
196
Referências Carvalho, F. R. D., Pereira, G. E. S.; Ribeiro, L. S.; Alves, T. C. L. (2013) Vulnerabilidades em Aplicações Web. RE3C - Revista Eletrônica Científica de Ciência da Computação v. 8, n. 1. CERT.br. (2016) “Recomendações para Notificações de Incidentes de Segurança”. Fontes, E. (2008) “CISM; CISA. Praticando a Segurança da Informação”. 1a ed. Rio de Janeiro: Brasport. 308 p. Forouzan, B. A. and Fegan, S. C. (2009) “Protocolo TCP/IP”. 3a ed. São Paulo: McGrawHill. 896 p. G1 Santarém. (2016) “Número de microempreendedores cresce em Santarém, aponta Sebrae. 2016”, http://g1.globo.com/pa/santarem-regiao/noticia/2016/02/numero-demicroempreendedores-cresce-em-santarem-aponta-sebrae.html, Novembro. Mcclure, S; Scambray, J.; Kurtz, G. (2014) “Hackers Expostos: Segredos e Soluções para a Segurança de Redes”. 7 ed. Porto Alegre: Bookman. 754 p. Monteverde, W. A.; Campiolo, R. (2014) Estudo e Análise de Vulnerabilidades Web. XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais, Campo Mourão: Universidade Tecnológica Federal do Paraná, 2014. Mueller, J. (2016) “Segurança para Desenvolvedores Web: usando JavaScript, HTML e CSS”. 1a ed. São Paulo: Novatec Editora. 412 p. Muniz, J. and Lakhani, A. (2013) “Web Penetration Testing with Kali Linux”. Birmingham: Packt Publishing. 342 p. Murarolli, P. L. (2015) “Inovações tecnológicas nas perspectivas computacionais”. 1a ed. Seven System Internacional. São Paulo. 164 p. Oliveira, T. S. T. de. (2012) Testes de segurança em aplicações web segundo a metodologia OWASP. 2012. 126 p. Monografia (Graduação em Ciência da Computação) - Universidade Federal de Lavras, Lavras. OWASP. (2013) “Top 10–2013. Os dez riscos de segurança mais críticos em aplicações web”. Pauli, J. (2014) “Web Hacking: Ferramentas e técnicas para invasão de aplicações web”. 1a ed. São Paulo: Editora Novatec. 224 p. Sampaio, C. (2007) “Web 2.0 e Mashups: Reinventando a Internet”. 1a ed. Rio de Janeiro: Brasport. 268 p. Weidman, G. (2014) “Testes de Invasão: Uma introdução prática ao hacking”. 1a ed. São Paulo: Novatec Editora. 576 p. Oliveira, T. S. T. de. (2012) Testes de segurança em aplicações web segundo a metodologia OWASP. 2012. 126 p. Monografia (Graduação em Ciência da Computação) - Universidade Federal de Lavras, Lavras.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
197
Anais do Encontro Regional de Computação e Sistemas de Informação
Reflexões sobre a utilização de jogos virtuais no processo de avaliação e reabilitação fisioterapêutica. Andrew Gama Branches1 1
Fundação Centro de Análise, Pesquisa e Inovação Tecnológica (FUCAPI) Manaus – AM – Brazil andrew.branches@icloud.com
Abstract. This work sought to reflect from the point of view of modern physiotherapy regarding the use of virtual games, exposing the importance of these computational resources in the physical therapy evaluation and rehabilitation process. He also aimed to make an approach regarding the credibility of these tools when used during physical therapy activities. The methodology used was a bibliographical research that allowed to understand the relevance of this technological support in sessions of physical therapy, noting the potentiality of some virtual games, as well as the understanding of their limitations. Finally, the research sought to show that these tools are promising alternatives to optimize physiotherapeutic treatments. Resumo. Este trabalho buscou refletir sob o ponto de vista da fisioterapia moderna no que se refere a utilização de jogos virtuais, expondo a importância desses recursos computacionais no processo de avaliação e reabilitação fisioterapêutica. Ele visou também fazer uma abordagem com relação a credibilidade dessas ferramentas quando usadas durante as atividades de fisioterapia. A metodologia utilizada foi uma pesquisa bibliográfica que permitiu compreender a relevância desse apoio tecnológico em sessões de fisioterapia, constatando a potencialidade de alguns jogos virtuais, assim como o entendimento de suas as limitações. Enfim, a pesquisa feita procurou mostrar que essas ferramentas são alternativas promissoras para otimizar os tratamentos fisioterapêuticos.
1. Introdução Desde atividades básicas praticadas no cotidiano como tomar banho, vestir-se, andar e comer até certas ações exercidas na vida profissional, torna-se necessário que o ser humano tenha uma boa saúde e esteja fisicamente bem. Entretanto, muitas pessoas ao nosso redor se encontram em situações adversas, onde a saúde está debilitada de tal forma que as mesmas precisam de ajuda para executar atividades físicas que antes eram simples de fazer. Nessas condições, o ser humano fica vulnerável, sensível e em muitas ocasiões até sem estímulo para enfrentar um processo de recuperação física. Historicamente, sabe-se que a tecnologia é tão antiga quanto a história da humanidade. Todavia, atualmente, essa teoria avançou de tal modo que hoje ela se subdivide em outros ramos. E um desses ramos é a tecnologia educacional cujo estudo se baseia na facilitação do aprendizado e na melhoria da performance através da criação, uso e organização de processos e recursos tecnológicos. Então, sabendo que a mente tem grande poder Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
de influência com relação ao bem estar do corpo, é justificável pelo menos de forma alternativa o uso de um ambiente virtual em procedimentos fisioterapêuticos, uma vez que um paciente mais motivado e alegre corresponde melhor aos procedimentos de reabilitação física. Segundo [Adamovich et al. 2009], a realidade virtual pode ser definida como uma abordagem à interface usuário-computador que envolve simulação em tempo real de um ambiente, cenário ou atividade que permite a interação do usuário através de múltiplos canais sensoriais. Logo, a introdução de sistemas de realidade virtual como jogos virtuais, torna-se uma ferramenta promissora na criação e execução de exercícios de fisioterapia que busquem melhorar o processo de avaliação e reabilitação fisioterapêutica. E o avanço tecnológico nos permite ir longe no que diz respeito a fisioterapia, pois estudos pioneiros recentes demonstraram que os pacientes que usam jogos virtuais possuem um desempenho cinco vezes melhor daqueles que utilizam métodos convencionais. Pois de acordo com o site [g1.globo.com 2011], os jogos de realidade virtual são amplamente recomendados por médicos e fisioterapeutas para reabilitação de jovens a idosos com problemas vasculares, degenerativos ou lesões após acidentes. Contudo, acredita-se ser relevante refletir quanto ao uso de jogos virtuais em atividades de fisioterapia, investigando o potencial desse recurso tecnológico quando empregado nessas condições. Desta forma e, sabendo que a geração atual valoriza bastante a tecnologia, torna-se importante pesquisar e analisar minuciosamente quanto à utilização de jogos virtuais em fisioterapias. Pois, ter a disposição um ambiente virtual que permita ao terapeuta ver com clareza as dificuldades que o paciente apresenta, seria uma excelente maneira de propor uma melhor comparação dos resultados obtidos em sessões anteriores tal que este possa fazer um diagnóstico de evolução mais detalhado, além de deixar o paciente mais estimulado e confortável para efetuar o processo de reabilitação.
2. Caracterização do Problema Com base em [Albuquerque and Scalabrin 2007], o uso da tecnologia em diversas áreas do conhecimento vem crescendo nos últimos anos e possibilitando um considerável progresso nas descobertas científicas. No que diz respeito a saúde, a tecnologia tem permitido a ampliação das possibilidades diagnósticas e terapêuticas porque por meio de seus recursos computacionais, facilita o acesso à reabilitação de pacientes com diferentes tipos de danos cerebrais, sejam eles de ordem cognitiva ou motora. Os tratamentos convencionais em fisioterapia são, na sua maioria, de longa duração e repetitivos. Deste modo, eles são percebidos pelo paciente como algo cansativo e entediantes, então as novas tecnologias, através de ambientes virtuais, surgem como boas alternativas para solucionar essas dificuldades e ampliar as chances de eficácia das técnicas de avaliação e reabilitação fisioterapêutica. Tais alternativas supracitadas são interessantes, pois focam em tarefas virtuais e não somente sobre uma habilidade motora isolada. Isso torna os desafios experimentados na vida diária uma maneira de buscar ideias inovadoras como a construção de novos jogos virtuais em prol da saúde. Atualmente, diversas clínicas vêm obtendo resultados positivos no uso dos jogos do Nintendo Wii em tratamentos, mas a grande maioria dos jogos utilizados foram projetados apenas para entretenimento dos usuários, sem nenhum intuito específico ligado à reabilitação. Baseado nesse contexto o estudo visa determinar se o paciente será ou não Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
199
elegível ao tratamento com gameterapia, determinando os jogos que serão aplicados em cada paciente e em cada sessão, e fazer o acompanhamento da evolução do paciente durante o tratamento, por meio de instrumentos avaliativos disponíveis no sistema para cada paciente.
3. Utilização dos jogos virtuais nos tratamentos fisioterapêuticos Atualmente, os jogos virtuais fazem parte em diversos tratamentos fisioterapêuticos. O console Wii por exemplo, usado em países como o Canadá e os Estados Unidos, chegou ao Brasil em 2007 e, simula atividades como futebol e tênis, entre outras. Esse recurso usa o Kinect que é um multissensor de entrada de dados do sistema em questão. Há algum tempo esses jogos vinham sendo usados apenas para a diversão de crianças, jovens e adultos, porém, hoje, eles têm contribuído significativamente para reabilitação de pacientes idosos. Os benefícios da utilização do Kinect na Fisioterapia, como ferramenta terapêutica na literatura, incluem as correções da postura e do equilíbrio, o aumento da capacidade de locomoção, da amplitude de movimento dos membros superiores e inferiores, além da motivação do paciente. [Merians et al. 2002]
No século vigente, é fácil constatar que a tecnologia está a disposição da grande maioria da população, visto que em muitos lugares da sociedade, pode-se ver uma criança, jovem ou adulto manuseando um equipamento eletrônico como um celular, tablet ou notebook. Diante disso, torna-se uma interessante o emprego desses recursos computacionais na fisioterapia, os quais podem otimizar o processo de avaliação e reabilitação fisioterapêuticas. 3.1. GenVirtual O GenVirtual é um jogo musical que possibilita seguir uma sequência de cores e sons emitidos a partir dos objetos virtuais projetados no mundo real. Segundo a musicoterapeuta da AACD, uma possibilidade de uso seria relacioná-lo com a iniciação musical, desde que contenha um número considerável de sons ou notas musicais. Na música grega ou lira, por exemplo, é possível trabalhar com várias músicas utilizando apenas quatro notas musicais. Entretanto, com apenas estas notas não é possível reproduzir músicas populares brasileiras que são muito utilizadas, tanto em musicoterapia quanto no aprendizado em geral. Na iniciação musical, trabalha-se muito com as cores relacionadas aos sons, e esta característica está sendo explorada no GenVirtual. Os testes preliminares com a musicoterapeuta mostraram que o GenVirtual pode estar a serviço de suas intervenções terapêuticas por permitir estimular a musicalidade contribuindo para a manutenção motora e cognitiva de seus pacientes auxiliando na melhoria de sua qualidade de vida. [Corrêa et al. ]
Esse software musical também pode ser implementado em sessões de musicoterapia, terapia ocupacional e fisioterapia. Seu desenvolvimento foi realizado durante uma pesquisa de Doutorado realizada na Escola Politécnica da Universidade de São Paulo (USP) para investigar o uso dos Meios Eletrônicos Interativos na Reabilitação. O funcionamento deste software é simples. Por meio de uma webcam, capturam-se imagens que Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
200
contem o desenho das sete notas musicais que estão dispostas ao alcance das mãos do paciente, a partir dessas imagens, o programa cria na tela do computador cubos 3D, que respondem tocando as notas das respectivas cartas como se observa na figura 1.
Figura 1. Utilização do GenVirtual.
Tal ferramenta tecnológica é chamada por muitos de jogo virtual e tem se mostrado bastante útil no tratamento musicoterápico de crianças com distrofia muscular e que, por suas limitações físicas, ficam impossibilitadas de manusear um instrumento musical conforme se verifica na figura 2.
Figura 2. Pacientes utilizando o Genvirtual.
Esse jogo estimula a atenção, concentração e memorização de cores e sons emitidos a partir de objetos virtuais projetados no mundo real. Em termos físicos, o jogo proporciona um aprendizado motor, que ocorre de acordo com o planejamento da ação motora feito previamente pelo terapeuta. À vista disso, a atividade desenvolvida neste tópico é apenas uma das ações que pode ser realizada com a utilização desses jogos virtuais cujo foco vise otimizar a reabilitação de pacientes que necessitem de respostas positivas após sessões de fisioterapia. 3.2. Physiojoy O Physiojoy é uma ferramenta tecnológica alternativa para o tratamento fisioterapêutico, possuindo um sistema que consiste em um conjunto de jogos que colocam o paciente frente a desafios que podem ser ajustados de acordo com sua necessidade. Esse recurso foi projetado para avaliação e reabilitação de déficit motor e neurológico em pacientes de fisioterapia usando o Kinect. Ele, assim como Genvirtual, além de contribuir para com as atividades terapêuticas, estimula o paciente a continuar o tratamento, tornando-se uma opção dinâmica e divertida para complementar as sessões de fisioterapia convencionais. Existem vários acessórios que podem ser acoplados ao Physiojoy e com eles podem ser trabalhados diversos grupos musculares. Desta maneira, o fisioterapeuta avalia Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
201
melhor as limitações do paciente antes de traçar novas metas para o mesmo alcançar. No entanto, o diferencial deste tratamento se inicia na escolha de suas ferramentas, a qual deve estar baseada na lesão do paciente e no tipo de exercício que ele precisará realizar. A figura 3 ilustra um pouco de como ocorrer a execução de exercícios com o auxílio desse jogo.
Figura 3. Paciente utilizando o Physiojoy como terapia motora.
Após o término de uma sessão de fisioterapia que use tal ferramenta, o sistema gerará relatórios de desempenho através de dados como o tempo levado para que o paciente cumprisse determinado desafio e a assertividade do paciente durante o desafio. Essas informações serão agrupadas e salvas para que o fisioterapeuta possa monitorar o tratamento com precisão figura. E Com o auxílio do physiojoy o paciente saberá gradativamente as limitações que ele deverá superar para uma boa reabilitação.
Figura 4. Resultados obtidos durante a fisioterapia com o physiojoy.
A adaptação da utilização desses jogos e seus acessórios para atender os objetivos propostos na rotina do processo de reabilitação é fator decisivo para o sucesso desta abordagem, onde pode-se perceber mais uma vez a importância de refletir o quanto o uso dessas ferramentas são importantes, pois ambas destacadas neste trabalho enriquecem os desenvolvimentos de projetos lúdicos fisioterapêuticos do ponto de vista pedagógico. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
202
3.3. Jogos virtuais Existem diversos softwares voltados aos jogos virtuais que estão relacionados com a reabilitação fisioterapêutica e estão aguardando a exploração de sua utilidade neste ramo ou são usados apenas de forma lúdica e experimental. Entretanto, têm videogames com grande potencial para auxiliar a fisioterapia tanto na avaliação quanto na reabilitação. Neste caso, temos um possível benefício do uso do videogame como recurso terapêutico que é o biofeedback visual, o qual fornece informações com a finalidade de permitir aos pacientes o desenvolvimento da capacidade de autocorreção. A realidade virtual se mostra um recurso que pode auxiliar em tal deficiência, pois através de jogos virtuais o paciente pode interagir com o ambiente virtual proposto, recebendo um feedback visual imediato em relação às mudanças de seu movimento e, desta forma, criar estratégias para recuperar e/ou manter o equilíbrio. [Schiavinato et al. 2010]
Daí em diante, percebe-se que ainda há muito a ser feito e explorado em favor da fisioterapia, pois o avanço da tecnologia educacional proporciona novas ferramentas tecnológicas de realidade virtual e, assim estudos importantes relacionados a reabilitação cuja finalidade seja construir procedimentos atuais e melhorados daqueles utilizados na fisioterapia convencional.
4. Resultados esperados A utilização de softwares que apresentam uma realidade virtual através de jogos ainda é uma novidade em clínicas especializadas em fisioterapia, porém, a cada década, esses recursos computacionais moldam-se e se transformam em ferramentas mais avançadas e com boas expectativas de melhorar o processo de reabilitação dos pacientes que necessitam desses cuidados. Como consequência, [Sousa 2011] sugere uma investigação científica quanto a possibilidade de realização do tratamento de pacientes de forma domiciliar, pois os resultados do estudo em questão apresentam ferramentas virtuais mediante a ideia de um sistema simples sob o ponto de vista da aplicabilidade e com relação ao custo benefício favorável. Então, a utilização da realidade virtual em jogos interativos estimula movimentos específicos na recuperação motora de pacientes, permitindo inclusive adaptações às limitações do paciente para uma melhor eficiência do tratamento. [...] a investigação é necessária para compreender os processos básicos de Reabilitação, nomeadamente o modo como os indivíduos adquirem as suas capacidades e o modo como os tecidos do organismo (por exemplo, os músculos ou as vias neuronais no sistema nervoso central) poderão recuperar dos/ adaptar-se aos efeitos do traumatismo ou da doença. A investigação pode também delinear a incidência e prevalência das incapacidades, bem como identificar os factores determinantes tanto da recuperação como da capacidade de mudar, de adquirir novas capacidades e de responder à Reabilitação. Estão a emergir novas tecnologias, que deverão ser adaptadas para aplicação nos indivíduos incapacitados. A tecnologia de Reabilitação constitui um dos campos mais importantes e promissores tanto no presente como no futuro. [Des Médecins Spécialistes and de Réadaptation 2009]
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
203
Desta forma, espera-se que pacientes mais estimulados e satisfeitos com os tratamentos de fisioterapia reduzam os índices de desistência da terapia, o que contribui para uma melhora na qualidade de vida tanto do paciente como de seus cuidadores e na redução do aparecimento de doenças secundárias a sequela neurológica como escaras e pneumonias; fisioterapeutas com maior controle na configuração dos games para que eles possam ser abrangentes às necessidades individuais dos pacientes e assim, ter maior controle na avaliação dos resultados obtidos por cada paciente.
5. Considerações finais As reflexões apresentadas neste trabalho mostram que a fisioterapia vem utilizando os recursos computacionais, especialmente os jogos virtuais, para a avaliação e reabilitação de pacientes que passam por tratamento de lesões físicas e neurológicas. Dessa maneira, o uso de uma realidade virtual cria condições mais favoráveis no processo de reabilitação fisioterapêutica, visando técnicas diferenciadas que possam ir mais além das expectativas pré-estabelecidas em fisioterapias convencionais. No entanto, a cada década, a Ciência da Computação faz descobertas científicas importantes, dando margem a novos estudos de pesquisa que permitam implementar estratégias mais eficazes nas atividades referente ao processo de reabilitação citado por muitas vezes, anteriormente. Vale citar também que o objetivo desse estudo é apontar possíveis alternativas mais eficientes de reabilitação na busca de uma boa qualidade de vida desse tipo de paciente. Contudo, a forma como esses jogos virtuais são utilizados em muitas clínicas faz com que potencial destes não seja explorado ao máximo. Então, analisar tais ferramentas de modo investigativo é fundamental para compreender suas as limitações e potencialidades.
Referências Adamovich, S. V., Fluet, G. G., Tunik, E., and Merians, A. S. (2009). Sensorimotor training in virtual reality: a review. NeuroRehabilitation, 25(1):29–44. Albuquerque, E. C. and Scalabrin, E. E. (2007). O uso do computador em programas de reabilitação neuropsicológica. Psicol Argum, 25(50):267–73. Corrêa, A. G. D., Assis, G. A., do Nascimento, M., and Lopes, R. D. Capítulo 17 genvirtual: um jogo musical, em realidade aumentada, para auxílio à reabilitação física e cognitiva de indivíduos com necessidades especiais. Des Médecins Spécialistes, U. E. and de Réadaptation, A. E. d. M. (2009). Livro branco de medicina física e de reabilitação na europa. g1.globo.com (2011). Videogame vira tratamento médico para vítimas de acidentes e derrames. http://g1.globo.com/ciencia-e-saude/noticia/2011/07/videogame-viratratamento-medico-para-vitimas-de-acidentes-e-derrames.html. Julho 26, 2011. Merians, A. S., Jack, D., Boian, R., Tremaine, M., Burdea, G. C., Vadamovich, S., Recce, M., and Poizner, H. (2002). Virtual reality-augmented rehabilitation for patients following stroke. Physical therapy, 82(9):898–915. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
204
Schiavinato, A. M., Baldan, C., Melatto, L., and Lima, L. S. (2010). Influência do wii fit no equilíbrio de paciente com disfunção cerebelar: estudo de caso. J Health Sci Inst, 28(1):50–2. R wii Sousa, F. H. (2011). Uma revisão bibliográfica sobre a utilização do nintendo como instrumento terapêutico e seus fatores de risco. Revista Espaço Acadêmico, 11(123):155–160.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
205
Anais do Encontro Regional de Computação e Sistemas de Informação
DBOA – Um Repositório para Objetos de Aprendizagem com Foco nos Metadados Pedagógicos Elismar Andrade de Oliveira Filho, Carlos Eduardo Paulino Silva, Márcio Assis Miranda Departamento da Computação – Instituto Federal de Minas Gerais (IFMG) 36420000 – Ouro Branco – MG – Brasil elismar_andrade@hotmail.com, carlos.paulino@ifmg.edu.br, marcio.miranda@ifmg.edu.br
Abstract. Digital Learning Object (DLO) is any digital resource that can be reused to support learning. Considering the need to include technology in education, the development of software for storage and search for DLOs has been the subject of several papers. This work focuses on developing a software for this purpose, but filling a gap found, which is the focus on the pedagogical characteristics of this object. The software was developed using the Spiral and Prototyping method of Software Engineering. Resumo. Objeto de Aprendizagem Digital (OAD) é qualquer recurso digital que pode ser reusado para apoiar a aprendizagem. Tendo em vista a necessidade de incluir a tecnologia na educação, o desenvolvimento de um software para armazenamento e busca de OADs tem sido tema de diversos trabalhos. Este trabalho tem como foco desenvolver um software com este fim, mas preenchendo uma lacuna encontrada, que é o foco nas características pedagógicas deste objeto. O software foi desenvolvido utilizando o método Espiral e Prototipação, de Engenharia de Software.
1. Introdução A tecnologia está cada dia mais presente na vida das pessoas. Com isso, é essencial a inserção da mesma na educação. Uma forma de incluir a tecnologia na sala de aula é utilizando objetos de aprendizagem (OA) que auxiliam no conteúdo que é visto nas disciplinas regulares do ensino fundamental, médio, técnico e superior. Segundo Dias et al. (2009, p.1) apud IEEE/LTSC, “os Objetos de Aprendizagem são considerados como qualquer tipo de recurso, digital ou não, que possui o intuito de auxiliar o processo de ensino aprendizagem, podendo ser reutilizado em diferentes contextos”. Este software tem como público alvo educadores que possuem formação em licenciatura, com um vasto conhecimento pedagógico, mas não estão muito familiarizados com termos técnicos de um OAD. Segundo Braga (2014, p.39), professores encontram dificuldades em selecionar um OAD e utilizá-lo em sala de aula, pois geralmente os materiais não são organizados e catalogados de forma que facilite a pesquisa. Tendo em vista esta dificuldade, este trabalho justifica-se por criar um software que tem como função armazenar e indexar OADs em um banco de dados,
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
focando no armazenamento de suas características pedagógicas, de forma que seja fácil para educadores buscarem por estes materiais e utilizá-los. A partir de uma revisão bibliográfica sobre trabalhos acadêmicos que tratam da construção e discussão de OADs, vislumbra-se a seguinte questão: como armazenar os objetos de aprendizagem digitais dos mais diversos conteúdos focando principalmente em suas características pedagógicas para uma busca e utilização dos mesmos adequados por qualquer educador? Tendo como principal objetivo desenvolver um software para armazenamento de OAD, visando à qualidade do armazenamento e da busca destes objetos e levando em consideração aspectos pedagógicos, objetiva-se, mais especificamente: investigar quais características um software deve ter para ser considerado um repositório de OAD com qualidade, discutir aspectos pedagógicos a serem utilizados para armazenamento de OADs, analisar e definir as melhores metodologias de armazenamento de OADs, realizar o levantamento dos requisitos e implementar o software e desenvolver um sistema de busca, que levará em consideração informações armazenadas nos metadados dos OADs, com foco nos aspectos pedagógicos. Postula-se, através da organização dos OADs em questão, que o software desenvolvido apresente uma interface amigável e uma boa opção de busca avançada, que traz características pré-definidas do OAD para escolha do educador, onde este possa depositar e recuperar OADs, dos mais diversos conteúdos, sem encontrar problemas em relação ao uso do software. Para que os procedimentos sejam bem sucedidos, focar-se-á nos aspectos pedagógicos dos OADs, tanto no armazenamento quanto na busca destes. 2. Referencial Teórico Nesta seção serão apresentados conceitos e padrões necessários para o entendimento do tema proposto e o desenvolvimento do trabalho. 2.1. Repositório de Objetos de Aprendizagem Os OADs precisam ser armazenados em locais de fácil acesso, onde possam ser encontrados juntamente com as informações necessárias para seu uso (metadados). Estes locais são os ROADs (Repositório de Objetos de Aprendizagem Digitais). ROADs, segundo Santos e Melo (2012, p.2), “são ambientes online nos quais as instituições de pesquisa mantêm e compartilham sua produção intelectual em formato digital”. Braga (2014, p.36) afirma que “os banco de dados mais adequados para se encontrar um OAD são os repositórios especializados no armazenamento de objetos de aprendizagem ou ROADs”. 2.2. Padrão OBAA de Metadados Segundo Vicari et. al (2010, p.1) “no Brasil, a primeira iniciativa na busca de um padrão para objetos de aprendizagem foi o projeto Objetos de Aprendizagem Baseados em Agentes (OBAA)”. Vicari et. al (2010, p1 e 2) prosseguem afirmando que a principal ideia da proposta de metadados OBAA é o “estabelecimento de uma especificação padronizada para os requisitos técnicos e funcionais de uma plataforma de produção, edição e distribuição de conteúdos digitais interativos”. 2.3. Metadados Pedagógicos de um OA
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
207
Abaixo serão listados e analisados alguns metadados pedagógicos, conforme o padrão OBAA, acrescidos de alguns citados por Braga (2014). 2.3.1. Cooperação Segundo Frantz (2001, p.1) cooperação é um “processo social, embasado em relações associativas, na interação humana, pela qual um grupo de pessoas busca encontrar respostas e soluções para seus problemas comuns”. A cooperação é um tema muito discutido na educação, e para muitos autores é essencial para um bom ensino-aprendizagem. Segundo Boiko e Zamberlan (2001, p.1) apud Vygotsky “a aprendizagem é um resultado adaptativo que tem natureza social, histórica e cultural”. A natureza social da aprendizagem é facilmente percebida na cooperação, onde alunos trocam conhecimento com outros alunos e com professores. Vygotsky define a Zona de Desenvolvimento Proximal (ZDP), relacionada ao trabalho colaborativo. Segundo Salvador et al. (1999, p.108) apud Vygotsky, ZDP é ”a distância entre o nível real de desenvolvimento, determinada pela capacidade de resolver independentemente um problema, e o nível de desenvolvimento potencial, determinado mediante a resolução de um problema com a colaboração de um companheiro mais capaz”. Segundo Braga (2014), o metadado cooperação “indica se há suporte para os alunos trocarem opiniões e trabalhar coletivamente sobre o conceito apresentado”. Fazendo um paralelo entre o conceito de ZDP de Vygotsky e a definição do metadado cooperação citada por Braga, conclui-se que um OAD pode estimular o trabalho cooperativo, trazendo a troca de conhecimentos entre aluno-aluno, professor-aluno e OAD-aluno. Este metadado é de extrema importância, pois através dele o educador saberá se o OAD é recomendado para este tipo de trabalho e o quanto ele influenciará na aprendizagem do aluno. 2.3.2. Cognição – Faixa Etária Este metadado mede o quanto o OAD pode interferir no processo cognitivo do aluno. Cognição será chamado faixa etária neste trabalho, pois através da teoria do desenvolvimento cognitivo desenvolvida por Piaget, tem-se uma base para definir a faixa etária que o OAD é indicado. Conforme Salvador et al. (1999) apud Piaget, o desenvolvimento cognitivo humano é dividido nas etapas sensório motor, préoperacional e operacional. a) sensório motor (0 a 2 anos): neste estágio o bebê deixa de ser indiferente em relação ao mundo externo e a própria ação perceptiva e motriz e cria um universo estável de objetos permanentes. É elaborado um primeiro nível de noções básicas, como o espaço e o tempo. A função simbólica aparece no final deste estágio, onde o bebê pode atuar sobre objetos mentalmente. b) pré-operacional (2 a 10/11 anos): corresponde às operações concretas. A criança desenvolve o pensamento racional, podendo classificar, ter noção de ordem, espaço e medida e conservar o número. Avança também na compreensão de fenômenos do mundo externo. c) operacional (11 anos em diante): amplia-se o potencial cognitivo das operações. O adolescente já é capaz de raciocinar sobre o que é real e o que é hipotético, sobre o que
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
208
é possível e o que não é. Inicia-se o conhecimento científico, e desenvolve-se a lógica matemática. 2.3.3. Interatividade Neste campo, o autor poderá descrever como ele vislumbra a interatividade do OA com o usuário. Conforme Salvador et al. apud Piaget (1999, p.88), o conhecimento não é uma cópia da realidade por parte do sujeito nem é originado de um objeto, mas surge da interação ente sujeito e objeto. Segundo Braga (2014, p.29) quanto mais o OA permite que o aluno se aproprie de informações, reflita e seja ativo em seu processo de aprendizagem, mais interativo ele é. Vicari et al. (2010, p.4) afirmam “é necessário disponibilizar uma interface que possibilite interação oferecendo atividades de aprendizagem que exijam do aluno interação com conteúdos, ferramentas e com outras pessoas”. A interatividade pode ocorrer com maior facilidade quando o aluno já possui um conhecimento prévio sobre o conteúdo (BRAGA, 2014). 2.3.4. Tipo de conteúdo Segundo Vicari et al. (2010), este elemento “pode ser classificado em conteúdos fatuais, conteúdos referentes a conceitos, conteúdos procedimentais, conteúdos atitudinais”. Conteúdos fatuais são a contextualização de uma explicação ou definição, conteúdos referentes a conceitos trazem a formulação de uma ideia através de texto, procedimentais segue uma linha de raciocínio de um procedimento preestabelecido e atitudinais trazem a ideia de um pensamento operacional. 2.3.5. Estratégia Didática Vicari et al. (2010) afirmam “uma estratégia didática é definida como um conjunto de ações planejadas e conduzidas pelo professor para promover o envolvimento e o comprometimento dos alunos com um conjunto maior de atividades”. 2.3.6. Contexto Para definir o contexto de aplicação de um OAD, vários fatores devem ser levados em consideração. Deve-se analisar o publico alvo, onde, segundo Braga (2014, p.59), deve ser levado em consideração “número de alunos, fluência tecnológica dos alunos, nível de conhecimento que os alunos possuem sobre o tema a ser trabalhado, se existem alunos com algum tipo de limitação física ou psicológica etc”. A estrutura disponível também é de suma importância, onde Braga (2014, p.59) afirma que devem ser verificados “necessidade de algum equipamento, tipo de equipamento que será necessário, se o OA será aplicado em sala de aula virtual ou presencial, se há necessidade de acesso à Internet etc”. 2.4. Trabalhos Relacionados Dentre os trabalhos relacionados, foram escolhidos os que possuem maior semelhança com este, ou seja, o desenvolvimento de um repositório para objetos de aprendizagem onde existe a preocupação com as características do mesmo. Kemczinski et al. (2011) desenvolveram um Repositório para Objetos de Aprendizagem na área da computação e informática (ROAI). Foi utilizado o padrão de metadados Dublin Core, que é composto por 15 metadados com a intenção de fornecer um conjunto básico de elementos de descrição do OAD. Foi utilizado também o sistema gerenciador de repositório DSpace, que é um sistema de código aberto e possui um Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
209
sistema de busca compatível com o padrão de metadados utilizado. Os OADs são avaliados de acordo com questionários pedagógicos e técnicos, e podem ser excluídos do ROAI caso não aprovados. Santos e Melo (2012) desenvolveram um repositório para objetos de aprendizagem utilizando APIs do Facebook para este fim. Em estudos realizados por eles, foi constatado que existem inúmeros objetos de aprendizagem e repositórios para os mesmos espalhados pela internet, mas em muitos casos não são bem aproveitados. Foi feito um questionário com professores e chegou-se a conclusão que autor, título, tipo de material, área de conhecimento e marcadores com número de votos acima da média, seriam parâmetros de pesquisa para os objetos de aprendizagem. Em testes, foram cadastrados 50 objetos de aprendizagem de três disciplinas do curso de computação e uma entrevista com os participantes foi realizada, chegando-se a conclusão que a maioria considera o repositório eficiente, bastante satisfatório, mas não totalmente eficaz, por problemas com o servidor durante o teste. Cordeiro et al. (2013) citam que normalmente os mecanismos de busca dos repositórios de objetos de aprendizagem não utilizam os metadados para auxiliar na busca por estes objetos. O trabalho desenvolvido por eles comprova esta ineficiência, mostra maneiras para solucioná-la e propõe um framework de persistência de objetos de aprendizagem. Neste framework, é proposto que a busca por OADs deve ser livre, sem a necessidade de cadastro. Eles propõem também que uma busca simples no sistema deve analisar os conteúdos textuais de todos os OADs cadastrados em busca de uma palavra-chave. Não notam testes com o usuário, mas é esperado que a reusabilidade do OAD, ou seja, a capacidade do OAD de ser usado e reusado para diferentes contextos, seja potencializada e, através da otimização da busca, os OADs sejam utilizados na educação mais facilmente. Kemczinski et al. (2011) propõem o armazenamento de metadados pedagógicos, mas este não é o foco do repositório, onde são utilizados apenas os metadados pedagógicos presentes no padrão Dublin Core, que possui um total de 15 metadados, incluindo técnicos e pedagógicos. Santos e Melo (2012) preocupam-se com a usabilidade do repositório, focando em características específicas do OAD, como autor, título e marcadores de número de votos. Cordeiro et al. (2013) focam na busca dos OADs no repositório, onde indicam que esta deve ser feita utilizando todas as informações presentes nos metadados. Após analisar estes trabalhos, nota-se uma lacuna, que é o diferencial do DBOA, o foco nos metadados pedagógicos dos OADs.
3. Metodologia Para uma melhor compreensão do objeto de pesquisa, foi necessário fazer uma pesquisa bibliográfica sobre objetos de aprendizagem digitais e não digitais (desplugados), padrões de metadados de objeto de aprendizagem digital, repositório para objetos de aprendizagem digitais, aspectos pedagógicos de um OAD e trabalhos relacionados. Para o desenvolvimento do software foi essencial leitura sobre Banco de Dados, Engenharia de Software, Interação Humano Computador (IHC) e Programação Web. A Figura 1 ilustra as etapas da metodologia deste trabalho.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
210
Figura 1. Fluxograma da metodologia
O desenvolvimento do software seguiu o modelo espiral. Este modelo foi escolhido pela facilidade de transição entre as etapas de desenvolvimento do software. Conforme Sommervile (2011), este modelo foi proposto por Bohem, em 1988. Segundo Sommerville (2011, p.32), “o processo de software é apresentado como uma espiral [...]. Cada volta na espiral representa uma fase no processo de software”. A implementação foi dividida em três etapas, onde foram criados o layout, as funcionalidades e o banco de dados do software. Foram utilizadas a linguagem de marcação HTML5, a linguagem de folha de estilo CSS, a linguagem de programação PHP, a linguagem de consulta estruturada SQL e o framework bootstrap. Após a implementação de cada etapa e testes realizados em cada uma, estas foram unificadas e testadas em conjunto. Pretende-se, em trabalhos futuros, realizar os procedimentos de coleta e apuração de dados, utilizando a Heurística de Nielsen adaptada ao contexto educacional. Segundo Furgeri (2005, p.12), a Heurística de Nielsen possui dez etapas e cada etapa pode ser uma pergunta no formulário, onde uma das perguntas está presente no Quadro 1. Testes serão realizados com pedagogos de diferentes contextos educacionais e com alunos do curso de Licenciatura em Computação, utilizando este formulário. Mais informações sobre as etapas de Projetos de Software, Implementação e Operação e Manutenção se encontram no capítulo 4. Quadro 1. Heurística de Nielsen
1. Visibilidade do status do sistema Verificação: Grau de severidade Os usuários são mantidos informados sobre o progresso do sistema com apropriado feedback em um tempo razoável? Problema:
( ) Sem importância - 0 ( ) Cosmético - 1 ( ) Simples - 2 ( ) Grave - 3 ( ) Catastrófico - 4
4. DBOA O software DBOA é um repositório para objetos de aprendizagem com foco nos metadados pedagógicos dos mesmos. Seu nome faz uma analogia à gíria “de boa”, e é
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
211
uma sigla da junção dos termos Data Base e Objeto de Aprendizagem. Suas funcionalidades estão detalhadas conforme o diagrama de caso de uso visto na Figura 2.
Figura 2. Diagrama de caso de uso
Conforme a Figura 2, os itens destacados em verde estão presentes nesta versão do protótipo do software, e os marcados em amarelo serão implementados em versões futuras. No caso de uso Cadastrar Dados de Usuário, o usuário comum poderá criar uma conta, tornando-se usuário comum cadastrado. Após isto, ele poderá armazenar OADs no repositório e consequentemente editá-los e deletá-los, tanto o arquivo do OAD quanto seus metadados. O usuário também poderá editar seus dados e excluir sua conta a qualquer momento. Em versões futuras, o usuário que estiver cadastrado e logado no repositório receberá recomendações de OADs de seu interesse e também poderá avaliar OADs presentes no repositório, além de cadastrar as categorias de metadados de seu interesse. Na Figura 3 está presente o menu do DBOA, contendo as opções que estão presentes no caso de uso Acessar Menu.
Figura 3. Menu
O caso de uso Buscar OAD traz dois tipos de busca, a comum e a avançada. Na busca comum, o usuário pode digitar uma palavra chave e o software lhe retornará os OADs correspondentes. Na busca avançada, é apresentada uma lista de metadados pedagógicos, com alguns técnicos básicos, pré-selecionados, onde o usuário apenas escolhe as opções de seu interesse (Figura 4).
Figura 4. Busca avançada
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
212
Os requisitos do software foram estabelecidos por meio de pesquisas bibliográficas, por não haver um cliente que o solicitou. Através destas pesquisas, foram analisados os trabalhos relacionados, verificadas algumas lacunas e definido o conteúdo do software. O padrão de metadados escolhido foi o OBAA, porém a categoria pedagógica deste foi modificada, visando refina-la. Estão sendo aplicados no software os metadados pedagógicos citados na subseção 2.3, da seguinte maneira: Cooperação: o usuário avançado poderá escolher entre três opções no momento do cadastro deste metadado, são elas: OAD individual, OAD cooperativo e OAD misto. OAD individual indica que o objeto em questão só deve ser usado individualmente, cooperativo indica que só pode ser usado para trabalho em grupo e misto define que o OAD pode ser usado tanto para trabalho em grupo quanto individual (Figura 5).
Figura 5. Metadado Cooperação
Cognição: o metadado cognição será nomeado Faixa Etária no repositório. Ao preencher este metadado, o usuário definirá o público alvo para o OAD em questão, selecionando a idade adequada, de acordo com as etapas do desenvolvimento cognitivo de Piaget. As opções disponíveis serão: 0 a 2 anos (sensório motor), 2 a 10/11 anos (préoperacional) e 12 anos em diante (operacional). Interatividade: neste campo será definido o quanto o OAD é interativo, ou seja, o quanto o aluno pode trocar informações com o OAD e o quanto o OAD possibilita a troca de informações entre os alunos. O usuário avançado poderá escolher entre uma das seguintes opções: apenas perguntas e respostas, permite a troca de informações OADaluno, permite a troca de informações aluno-aluno e permite a troca de informações OAD-aluno-aluno. Tipo de conteúdo: será definido o tipo do conteúdo do OAD, que poderá ser fatuais, referentes a conceitos, procedimentais e atitudinais. Estratégia didática: o usuário definirá a melhor estratégia didática a ser utilizada com o OAD, que será armazenada em forma de texto corrido no software. Contexto: o metadado contexto será uma subcategoria dos metadados pedagógicos, por ser considerado de alta complexidade. Será apresentado ao usuário avançado conforme o Quadro 2.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
213
Quadro 2. Metadado contexto
Metadado
Contexto
Sub-metadado
Como serão aplicados
Público alvo
Menu de lista - Ensino fundamental, médio, técnico ou superior
Número de alunos
Inteiro
Necessidade de acesso a internet?
Sim / Não
Tipo de sala de aula
Virtual / Presencial
Em cada metadado visto no DBOA, tanto no momento do preenchimento quanto da busca do OAD, existe um ícone que traz informações sobre o metadado em questão, por exemplo, no metadado faixa etária, é exibido para o usuário a teoria do desenvolvimento cognitivo de Piaget e suas etapas. O repositório se encontra no servidor do IFMG campus Ouro Branco. Apesar de não ter um domínio, um acesso temporário é possível, através do endereço 200.18.128.77/Dboa. Para acesso ao repositório, foi criado um usuário de teste, com Login: Teste@teste e Senha: 12345678. Para acessa-lo, é necessário um computador com acesso a internet. Os arquivos de código-fonte estão disponíveis no link https://github.com/fsifmgob/dboa. Em trabalhos futuros, pretende-se criar um campo recuperação de senha para o usuário, um sistema de recomendação de objetos de aprendizagem para o usuário cadastrado, de acordo com a área de atuação e o perfil do mesmo. Almeja-se que apenas usuários cadastrados realizarão busca de OADs no repositório, para assim ser possível enviar e-mails de recomendações, novidades e informações sobre possíveis OADs modificados pelos autores que o mesmo tenha baixado do repositório. Com isto, também será possível controlar a quantidade de vezes que um OAD foi baixado e acessado no repositório.
5. Considerações Finais Durante o desenvolvimento do protótipo do software, decisões foram tomadas, a fim de melhorar a qualidade do mesmo. O usuário, a princípio, poderia excluir sua conta no repositório, e com isso, excluía também todos os OADs cadastrados por ele, o que causava uma perda de todas as informações relacionadas a este objeto e um prejuízo para quem já havia baixado aquele OAD e precisava de alguma informação. Decidiu-se então apenas desativar a conta daquele usuário, onde as informações do mesmo e dos OADs cadastrados por ele continuam no banco de dados, e um possível retorno deste usuário seria mais simples. Para uma busca mais precisa, que auxilie ao usuário a encontrar o OAD que deseja sem ter que ficar pensando como pesquisar da maneira correta, foi criada a busca avançada, onde o usuário escolhe por informações pré-definidas para realizar a busca. A escolha dos metadados pedagógicos foi difícil, pois são mais complexos que os metadados técnicos. Através de pesquisas bibliográficas, foi possível criar ideias para
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
214
a inclusão destes metadados no software, de maneira que facilite o entendimento ao usuário. Muitas são as discussões sobre a inclusão da computação como disciplina regular do ensino básico, mas no momento de aplicar conceitos em sala de aula, surgem muitas dúvidas e dificuldades. Através de experiências vividas no projeto PIBID (Programa Institucional de Bolsas de Iniciação à Docência) e no estágio do curso de Licenciatura em Computação, nota-se que o DBOA poderá ser uma solução para boa parte destes problemas, onde OADs presentes no mesmo podem ser usados em sala de aula, sem dificuldade de serem utilizados por educadores com formação pedagógica, devido às informações desta área contidas nos metadados.
Referências Boiko, V. and Zamberlan, M. (2001) “A perspectiva sócio-construtivista na psicologia e na educação: o brincar na pré-escola”, Psicologia em Estudo, v. 6, n. 1, p. 51-58. Braga, J. (2014) “Objetos de aprendizagem: Volume 1 - Introdução e fundamentos”, Santo André: UFABC, 153 p. Cordeiro, R. et al. (2013) “Desenvolvimento de um repositório de Objetos de Aprendizagem utilizando Bancos de Dados NoSQL”, In: Centro Interdisciplinar de Novas Tecnologias na Educação, 3., 2013, Porto Alegre. Anais... . Porto Alegre: Ufrgs, p. 1 - 10. Dias, C. et al. (2009) “Padrões abertos: aplicabilidade em Objetos de Aprendizagem (OAs)”, In: XX Simpósio Brasileiro de Informática na Educação (2009), 20., 2009, Joinvile. Anais... . Florianópolis: UDESC, p. 1 - 11. Frantz, W. et al. (2001) “Educação e cooperação: práticas que se relacionam”, Sociologias, v. 3, n. 6. Furgeri, S. (2005) “Metodologias para avaliação Computador”, Itu: Ceunsp, 70 slides, color.
de
Interfaces
Humano
Kemczinski, A. et al. (2011) “Repositório de Objetos de Aprendizagem para a Área de Computação e Informática – ROAI”, In: Simpósio Brasileiro de Informática na Educação, 22., 2011, Aracajú. Anais... . Joinvile: Udesc, p. 1 - 10. Salvador, C. et al. (1999) “Psicologia da Educação”, Porto Alegre: Artmed. Santos, I. and Melo, L. (2012) “Repositório de objetos de aprendizagem em redes sociais: uma aplicação no Facebook”. Sommerville, I. (2011) “Engenharia de Software”, Edited by São Paulo: Pearson Prentice Hall, 529 p. Vicari, R. et al. (2010) “Proposta brasileira de metadados para objetos de aprendizagem baseados em agentes (OBAA)”.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
215
Anais do Encontro Regional de Computação e Sistemas de Informação
Cariogame: gamificac¸ao ˜ para estudo de cariotipo ´ com alterac¸oes ˜ num´ericas e estruturais Felipe G. L. do Nascimento2,3 , Juliany R. Raiol2,3 , Lucivana P. de S. Mourao ˜ 1 , Maria da C. F. Santos1 , Jonh M. C. Silva2,3 1
Escola Superior de Ciˆencias da Saude ´ (ESA) 2 Escola Superior de Tecnologia (EST) 3 Samsung Ocean Center (OCEAN) Universidade do Estado do Amazonas (UEA) Manaus, AM – Brasil
{felipegetulio15,julianyraiol}@gmail.com lpsouza@uea.edu.br, concyfreitas@yahoo.com.br, john.silva@oceanbrasil.com
Abstract. For the Genetics subject, it’s fundamental to understand that the academic knowledge is dynamic and its consolidation does not exclusively depend on the teacher and their teaching style, but also does depend on the insertion of new pedagogical tools, which should be in accordance with the technological reality known for the students. In addition to contribute for the teaching-learning process in Genetics field knowledge, this survey provides the elaboration of a digital educational game, as a tool for Human cytogenetics teaching, which is a study field that teaches about the chromosomes and its correlation between Genetic syndromes. In this scenery, the idea is the creation of a 2D game to turn the learning process of these concepts more effective and dynamic. Resumo. Para o ensino de Gen´etica, e´ fundamental compreender que o conhecimento acadˆemico e´ dinamico ˆ e sua consolidac¸ao ˜ nao ˜ depende apenas do professor e sua didatica ´ mas tamb´em da inserc¸ao ˜ de novas ferramentas pedagogicas ´ que estejam em sintonia com a realidade tao ˜ informatizada dos estudantes. Visando contribuir para o processo ensino-aprendizagem na a´ rea de gen´etica humana, este produto se propoe ˜ a elaborar um jogo educativo digital, como ferramenta para o ensino de Citogen´etica Humana, a´ rea que estuda os cromossomos e suas correlac¸oes ˜ com s´ındromes gen´eticas. Neste sentido, a ideia e´ criar um jogo em 2D para tornar o processo de fixac¸ao ˜ destes conceitos mais efetivo e dinamico. ˆ
1. Introduc¸ao ˜ A Gen´etica e´ a ciˆencia que estuda o material gen´etico e sua importˆancia e´ notoria ´ para a compreens˜ao de muitos aspectos biologicos ´ dos seres vivos, especialmente nos humanos. Na a´ rea da saude, ´ a gen´etica humana tem uma importante aplicac¸ao, ˜ pois muitas doenc¸as e condic¸oes ˜ humanas tem sua origem em alterac¸oes ˜ no material gen´etico. Devido a essa particularidade, e´ importante que cursos na a´ rea da saude,incluam ´ em sua matriz o componente curricular Gen´etica Humana, visando proporcionar ao futuro profissional conhecimentos b´asicos para a compreens˜ao de aspectos gen´eticos humanos. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Entretanto, pesquisas no ensino superior demonstraram que os alunos possuem dificuldades relacionadas a alguns conceitos da a´ rea de gen´etica, refletindo na dificuldade da compreens˜ao de termos abstratos, ressaltado no m´etodo tradicional de ensino, onde boa parte dos conteudos ´ e´ exposta atrav´es de esquemas [MARRERO e MAESTRELLI 2001]. Neste contexto, a citogen´etica, a´ rea que estuda os cromossomos, possui conceitos de compreens˜ao complexa, como por exemplo cariotipo, ´ o conjunto cromossomico ˆ padr˜ao de uma esp´ecie. No entanto, essa an´alise cromossomica ˆ padr˜ao de um indiv´ıduo e´ um procedimento diagnostico ´ cada vez mais importante em v´arias a´ reas cl´ınicas e por isso, esses conceitos s˜ao importantes para a compreens˜ao de diversos disturbios ´ humanos de interesse cl´ınico, como as cromossomopatias que s˜ao determinadas por alterac¸oes ˜ cromossomicas ˆ num´ericas e/ou estruturais. Estudar as alterac¸oes ˜ cromossomicas ˆ por meio da montagem de um cariotipo ´ humano com dispositivos para lig´a-lo a` s principais caracter´ısticas fenot´ıpicas (cl´ınicas) dentro de um “jogo” configura-se em utilizar uma inovac¸ao ˜ tecnologica ´ para aperfeic¸oar uma das pr´aticas adotadas no ensino da disciplina de Gen´etica Humana. Para [Miranda 2002], o fato de o jogo ser ludico, ´ divertido e prazeroso, o torna uma das formas mais eficazes de ensino, sendo uma estrat´egia para melhorar o desempenho dos alunos em conteudos ´ de dif´ıcil aprendizagem. Na proposta deste artigo, o jogo desenvolvido sintetizar´a uma soma consider´avel de informac¸oes ˜ gen´eticas e cl´ınicas, criando um ambiente prop´ıcio para uma aprendizagem densa, impulsionada pela descontrac¸ao ˜ e por uma competic¸ao ˜ sadia. Trabalhando, desta forma, com as seguintes alterac¸oes: ˜ 1. Alterac¸oes ˜ Num´ericas: S´ındrome de Down, S´ındrome de Edwards, S´ındrome de Patau, S´ındrome de Klinefelter, S´ındrome de Turner, S´ındrome do Duplo Y, Trissomia do X. 2. Alterac¸oes ˜ Estruturais: S´ındrome de Cri du Chat, Leucemia Mieloide Cronica, ˆ S´ındrome de Down com translocac¸ao ˜ e Linfoma de Burkitt.
2. Fundamentac¸ao ˜ Teorica ´ 2.1. O Cariotipo ´ humano e as alterac¸oes ˜ cromossomicas ˆ Cariotipo ´ ou Cariograma e´ o conjunto de cromossomos de uma de uma pessoa, caracter´ıstico da esp´ecie (neste caso 46 cromossomos), que est˜ao ordenados segundo a classificac¸ao ˜ padr˜ao, isto e´ , de acordo com o tamanho e a posic¸ao ˜ do centromero ˆ de cada par cromossomico ˆ [Maluf e Riegel 2011]. O cariotipo ´ apresenta-se organizado em sete grupos que compreendem uma nomeac¸ao ˜ de A a` G, sendo que os cromossomos sexuais pode ser ordenados separadamente ou junto ao grupo a que pertencem (X, pertence ao grupo C e Y ao grupo G). Dentre as alterac¸oes ˜ cromossomicas ˆ num´ericas de maior incidˆencia s˜ao as que ocorrem com os cromossomos autossomicos ˆ 13, 18, 21 e no cromossomo sexual ou X. Essas alterac¸oes ˜ s˜ao chamadas de S´ındromes Gen´eticas, caracterizadas por muitas malformac¸oes ˜ no indiv´ıduo que por vezes s˜ao t˜ao severas levando ao o´ bito nos primeiros meses de vida [Borges-Osorio ´ e Robinson 2001]. As alterac¸oes ˜ cromossomicas ˆ estruturais correspondem a modificac¸oes ˜ na sequˆ ¨ encia dos genes ao longo do filamento. Elas podem ser provocadas, por exemplo, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
217
Figura 1. Exemplo de alterac¸ao ˜ cromossomica ˆ numerica ´ (S´ındrome de Down).[dos Santos ]
por v´ırus, radiac¸ao ˜ e substˆancias qu´ımicas. Quando ocorrem durante a mitose, seus efeitos s˜ao m´ınimos, pois apenas algumas c´elulas ser˜ao atingidas, embora, em alguns casos, a c´elula alterada possa se transformar em c´elula cancerosa e formar um tumor. Se acontecerem na meiose, como resultado, por exemplo, de uma permutac¸ao ˜ anormal, elas podem ser transmitidas aos descendentes, que ter˜ao cromossomos anormais em todas as c´elulas. Ocorre quando os cromossomos ocasionalmente se quebram e os fragmentos resultantes se unem de qualquer maneira, so´ n˜ao se prendendo as extremidades (telomeros) ˆ dos cromossomos normais. Quando os fragmentos n˜ao se unem exatamente como estavam antes, originam-se cromossomos estruturalmente alterados. As consequˆ ¨ encias variar˜ao de acordo com o tipo de alterac¸ao, ˜ que pode ser: invers˜ao, deficiˆencia ou delec¸ao, ˜ duplicac¸ao ˜ e translocac¸ao. ˜ 2.2. Serious games na a´ rea da saude ´ Os Serious Games apresentam uma proposta que vai al´em do entretenimento.Principalmente, pois, permite ao jogador obter experiˆencia de aprendizado de conteudos ´ espec´ıficos e treinamento de habilidades, proporcionando experiˆencias diferenciadas [Carryberry 2008] . Em atividades de aprendizado, os Serious Games permitem que o usu´ario evolua constantemente atrav´es da reproduc¸ao ˜ de situac¸oes ˜ aliadas a tomada de decisoes ˜ que envolvem o conhecimento sobre conteudos ´ .J´a em atividades de treinamento na saude, ´ eles podem simular diferentes ambientes, comuns ou cr´ıticos, variando o grau do risco e tipos de instrumentos dispon´ıveis. Este fato e´ importante na formac¸ao ˜ dos estudantes e profissionais da saude, ´ pois fornece aos alunos um aprendizado de alto n´ıvel relacionado ao desempenho profissional. Desta forma, os Serious Games, auxiliam a inovac¸ao ˜ educacional atrav´es da utilizac¸ao ˜ de tecnologias. O uso destas na educac¸ao ˜ mostra-se promissora para a formac¸ao ˜ diferenciada dos acadˆemicos da a´ rea de saude, ´ pois propicia o desenvolvimento do trabalho em equipe, da inteligˆencia multiangular aliadas aos conhecimentos e tecnologias para servir propositos ´ humanos. Para a realizac¸ao ˜ de um projeto eficaz, a construc¸ao ˜ de serious games para aprendizado e treinamento na saude ´ requer a compreens˜ao dos aspectos cognitivos,do objeto Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
218
de estudo e da possibilidade de ser jogado, sendo importante que a equipe de desenvolvimento possua especialistas nas teorias, no conteudo ´ e no projeto, respons´aveis pelos aspectos pedagogicos ´ e afetivos,pelas informac¸oes ˜ para o aprendizado e pelo envolvimento da equipe respons´avel pelo design e programac¸ao ˜ do jogo,respectivamente. Assim, a elaborac¸ao ˜ de jogos desse tipo necessita de uma relac¸ao ˜ bem elaborada entre as equipes respons´aveis. Um dos trac¸os mais caracter´ısticos do ensino superior nas sociedades contemporˆaneas e´ a preocupac¸ao ˜ em fornecer aos alunos uma qualificac¸ao ˜ de alto n´ıvel relacionada ao desempenho profissional. Isso explica por que, no aˆ mbito do ensino superior atual, se ampliou o discurso articulado sobre a educac¸ao ˜ ao longo da vida, empregabilidade e versatilidade profissional. Nesse contexto, e´ relevante a ideia de que a aprendizagem deve ser orientada para a aquisic¸ao ˜ de habilidades ou competˆencias e a formac¸ao ˜ para o desempenho dos processos. Em paralelo, tem emergido como um novo vetor ou eixo de interesse educativo o conceito de ”competˆencia”[Alonso et al. 2009]. Assim, o emprego de recursos computacionais no ensino e´ uma realidade que tem se intensificado nos u´ ltimos anos. As novas possibilidades tecnologicas ´ vˆem sendo incorporadas a` s pr´aticas de ensino, destacando-se com iniciativas junto a` s universidades, seja como apoio ao ensino presencial ou no desenvolvimento de atividades a` distˆancia [Cogo et al. 2009].
3. Trabalhos Relacionados Segundo [Martinez et al. 2008], no ensino de Gen´etica s˜ao necess´arias atividades pr´aticas que auxiliem no aprendizado dos alunos como complementac¸ao ˜ dos conceitos teoricos. ´ Com a finalidade de exemplificar este ponto, h´a o jogo “Show da Gen´etica”. Este configura-se um material did´atico constitu´ıdo de perguntas e respostas produzidas em CD-ROM multim´ıdia e totalmente desenvolvido por meio do software Microsoft Office PowerPoint (W indows). O jogo configurou-se em um recurso did´atico para aulas de Gen´etica e tem como finalidade transmitir conceitos destas a´ reas de forma criativa, ludica ´ e interativa. Contudo, e´ poss´ıvel encontrar trabalhos de Serious Games que utilizaram outras abordagens. Tais como o Touching Triton, um jogo para a plataforma web, que possui contexto relacionado a` s missoes ˜ espacias realizadas pela NASA. Os alunos usam informac¸oes ˜ gen´eticas para ajudar a manter seis membros da tripulac¸ao ˜ vivos em sua miss˜ao de 20 anos, em uma viagem de ida e volta para Triton, uma lua de Netuno. Os jogadores s˜ao desafiados com atrav´es de registros m´edicos, genomas e dados de historia ´ familiar para determinar o risco de um membro da tripulac¸ao ˜ adquirir doenc¸as complexas. [Triton ]
4. Objetivo Desenvolver um produto tecnologico ´ em formato de jogo virtual para ser utilizado como recurso pedagogico ´ na disciplina de Gen´etica Humana, ministrada nos cursos de Enfermagem, Odontologia e Medicina da Universidade do Estado do Amazonas. 4.1. Objetivos Espec´ıficos 1. Construir o desenho dos cromossomos, a partir de uma representac¸ao ˜ gr´afica, considerando o numero ´ extra ou falta de cromossomos caracter´ıstico da s´ındrome gen´etica a ser abordada. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
219
2. Desenvolver a fase de programac¸ao ˜ do produto com os dois modulos ´ de jogo, estrutural e num´erico, e realizar o teste unit´ario de funcionalidade.
5. Justificativa Na Escola Superior de Ciˆencias da Saude ´ (UEA), e´ dada previamente a aula pr´atica de montagem e an´alise de cariotipo. ´ Antes desse momento, os alunos j´a passaram por uma aula teorica ´ sobre o assunto e j´a realizaram apresentac¸oes ˜ orais sobre as cromossopatias humanas (s´ındromes gen´eticas). Esta aula pr´atica consiste em montar um cariotipo ´ ´ de forma manual. E dada ao aluno uma fotocopia ´ em preto e branco de uma met´afase cromossomica. ˆ Eles recortam os cromossomos e comec¸am a organiz´a-los aos pares correspondentes. Em seguida passam a colar o arranjo determinado dos cromossomos, em uma folha de papel A4 com a sinalizac¸ao ˜ dos grupos (A a` G) de como os cromossomos s˜ao ordenados. Feito isso, eles analisam e indicam a nomenclatura para tal cariotipo ´ e inferem o diagnostico. ´ Frequentemente, durante o manuseio, os estudantes perdem os cromossomos cortados em papel e isso interfere no diagnostico ´ achado. Muitos deles, tamb´em levam tempo superior ao da aula para finalizar o trabalho, n˜ao podendo discutir pessoalmente com a professora os seus resultados. Com a proposta desse trabalho, pretendemos substituir todo este procedimento manual, por digital, com muito mais recursos tais como: visualizac¸ao ˜ colorida, mobilidade digital e dispositivo para associar o diagnostico ´ encontrado com as caracter´ısticas cl´ınicas. Al´em disso, com a moldagem do produto em forma de jogo, permitir´a que cada deslocamento correto ou errado de um cromossomo ou escolha da caracter´ıstica cl´ınica implicar´a em um acr´escimo ou decr´escimo de pontuac¸ao, ˜ ou seja, um atrativo de competic¸ao, ˜ para um publico ´ alvo jovem.
6. Metodologia O presente estudo teve car´ater anal´ıtico e experimental. Sua parte inicial foi terminada no per´ıodo de 07 (sete) meses, sendo iniciada em julho de 2016. 6.1. Publico ´ Alvo O publico ´ alvo para a utilizac¸ao ˜ deste produto tecnologico ´ ser˜ao os graduandos dos cursos de Enfermagem, Odontologia e Medicina. Por´em, n˜ao fica restrito apenas a estes, mas tamb´em aos alunos do curso de Licenciatura em Ciˆencias Biologicas ´ que tenha em seus curr´ıculos pedagogicos ´ a disciplina Gen´etica e o conteudo ´ contemplado. 6.2. Aplicac¸ao ˜ educacional do jogo digital Para compor as telas do jogo, foram utilizados a representac¸ao ˜ gr´afica dos cromossomos metaf´asicos dispon´ıveis em [Borges-Osorio ´ e Robinson 2001], para desenho gr´afico. Os cromossomos apresentar˜ao bandas transversais ao longo do seu comprimento, representando a t´ecnica de bandeamento G, que permitir´a ao aluno a identificac¸ao ˜ de cada par cromossomico ˆ e consequentemente a alterac¸ao ˜ cromossomica ˆ intr´ınseca na tela do jogo. Para o desenho gr´afico, ser˜ao disponibilizados esquemas das principais alterac¸oes ˜ cromossomicas ˆ estruturais observadas nas s´ındromes gen´eticas. O jogo ser´a desenvolvido para que, durante a montagem do cariotipo, ´ o aluno identifique que tipo de alterac¸ao ˜ cromossomica ˆ estrutural e´ observada e a relacione a uma s´ındrome gen´etica, identificando tamb´em as respectivas caracter´ısticas fenot´ıpicas. O cariotipo ´ ser´a montado de acordo com as convenc¸oes ˜ citogen´eticas. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
220
6.3. O Game Concept - Definindo a Ideia Inicial Para iniciarmos a materializac¸ao ˜ do projeto, o primeiro passo e´ definir o conceito do jogo. Segundo [Schuytema 2008] e´ proposto a seguinte estrutura: Nome do jogo, Jogadores, quantidade, Gˆenero, tipo do jogo, High Concept (conceito geral do jogo, aquele que divulgar´a o jogo aos jogadores), Conte um pouco da historia, ´ miss˜ao do jogador, ac¸oes ˜ que podem ser feitas, objetivo (qual o objetivo para vencer no game), Recursos (detalhe tudo que o jogador pode fazer), recursos dispon´ıveis, missoes, ˜ dinˆamica do jogo. Esses conceitos s˜ao modelados de acordo com a estrutura e tipo de jogo que est´a sendo desenvolvido. Depois de sua aprovac¸ao, ˜ partimos para o chamado Game Design Document. Abaixo, na figura 2, e´ motrado o conceito inicial das telas de interac¸ao ˜ do jogo e o gameplay.
Figura 2. Conceito de telas Cariogame
6.4. Ludificac¸ao ˜ A ludificac¸ao, ˜ ou termo mais popularmente conhecido como gamification, e´ um conceito recente, antecipando-se como uma tendˆencia tecnologica ´ a implementar nas escolas at´e 2017. Atualmente a generalidade dos exemplos de aplicac¸ao ˜ de gamification, incluindo o contexto educativo, consiste na utilizac¸ao ˜ de Crach´as/Badges, Leaderboards e pontuac¸oes. ˜ V´arios autores como [Burke 2014], [Deterding et al. 2011], [Kapp 2012], [Zichermann e Linder 2013] realc¸am que a ludificac¸ao ˜ n˜ao pode ser restringida a` mera aplicac¸ao ˜ destes mecanismos de jogo a certos contextos. E´ necess´ario conhecer os interesses do publico, ´ pois a ludificac¸ao ˜ e´ um conceito ao qual devemos dar atenc¸ao, ˜ anali´ sando a sua aplicac¸ao ˜ em diversas a´ reas. Area educacional e´ a que est´a em foco neste artigo. 6.5. UX Design O termo vem de User Experience Design ou Design de Experiˆencia do Usu´ario e´ um conceito antigo agora aplicado com esse novo termo. Essas pr´aticas sempre s˜ao focadas em melhorar a experiˆencia do usu´ario, por´em, esse novo contexto cada vez mais amplo em aplicac¸oes ˜ mobile demonstram a evoluc¸ao ˜ do design em qualquer meio. No Cariogame a imers˜ao no jogo e´ amplificada pela usabilidade de seus menus. Como mostrado na figura 3. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
221
Figura 3. Alguns exemplos dos elementos de interface do Cariogame
Existem v´arios meios em que uma interface pode reforc¸ar a experiˆencia de um jogador, no Cariogame essa imers˜ao e´ causada pelo tempo em que o jogador e´ desafiado em terminar sua tarefa, proporcionando um engajamento desejado. O objetivo do UX design e´ de olhar para frente buscando sempre filtrar a experiˆencia desejada do jogador corrigindo erros e melhorando os aspectos positivos, trabalhando o conjunto de animac¸oes, ˜ sons de efeito, trilha sonora e recompensas para o jogador, reforc¸ar a ambientac¸ao ˜ atrav´es da est´etica. A progress˜ao no jogo e´ respons´avel pelo engajamento do jogador e trabalhar os aspectos de narrativa. 6.6. Desenvolvimento do Jogo Para o desenvolvimento do jogo, foi primeiramente adotado e posteriormente constru´ıdo o GDD (Game Developer Document). Segundo [Rogers 2014], GDD e´ um documento instrutivo, como uma receita, que indicar´a tudo o que vai existir dentro do jogo e a forma como ser´a desenvolvido. Feito o GDD, o processo de desenvolvimento foi um ciclo onde primeiro desenvolveu-se a parte gr´afica e depois a parte programacional, para ent˜ao darmos prosseguimento ao teste unit´ario de funcionalidade. Em seguida, passamos para o sistema web de notificac¸ao ˜ para os professores respons´aveis e finalmente, o desenvolvimento do fluxo de telas do jogo. Grande parte do jogo foi desenvolvida por meio do ´ m´etodo Agil, utilizado para desenvolvimento de software, mas com algumas modificac¸oes ˜ para desenvolvimento de jogos. Tamb´em foi utilizada a Game Engine Unity, que consiste em um ambiente de desenvolvimento de jogos 3D e 2D para diversas plataformas como Windows, Linux, Android, IOS entre outros [Unity ] .
7. Resultados Foi idealizado e desenvolvido um jogo virtual batizado de Cariogame, na Unity Engine, onde foi utilizada a linguagem C# em sua programac¸ao. ˜ Foi definido que o jogo seria desenvolvido para Desktop, mas para que mais testes fossem realizados, a vers˜ao para Tablets tamb´em foi desenvolvida, no entanto, ainda n˜ao dispon´ıvel para download. Para o Cariogame, foi desenhada uma tela inicial (Figura 4a) e a partir de fotografias e esquemas de cariotipos ´ montados dispon´ıveis em livros acadˆemicos, foi realizado o desenho dos cromossomos em arranjo metaf´asico e com animac¸ao ˜ para compor a segunda tela do jogo (Figura 4b). Esta tela, chamada gameplay, apresenta, de acordo com as convenc¸oes ˜ citogen´eticas, os grupos sinalizados para ordenac¸ao ˜ dos cromossomos, ou seja, local (em forma de c´apsulas) para onde o jogador deve arrastar os cromossoManaus, 25 a 27 de maio de 2017 ISSN 2238-5096
222
mos, apresentando tamb´em o bot˜ao para avanc¸ar de fase quando a tarefa (montagem do cariotipo) ´ for conclu´ıda. Prosseguindo o fluxo de telas, a proxima ´ programada, compreende a tela de nomenclatura (Figura 4c), na qual o jogador (aluno) dever´a escolher a nomenclatura citogen´etica correspondente ao cariotipo ´ montado anteriormente, onde e´ poss´ıvel verificar uma sinalizac¸ao ˜ verde caso acerte a opc¸ao ˜ e vermelha caso seja a resposta errada. O fluxo de tela e´ autom´atico caso a resposta seja correta. O proximo ´ ambiente virtual e´ a tela Quiz (Figura 4d), na qual o jogador dever´a escolher entre as opc¸oes ˜ apresentadas, a s´ındrome gen´etica correspondente ao cariotipo ´ montado, e segue o mesmo formato da tela anterior com relac¸ao ˜ a` escolha da opc¸ao ˜ correta ou errada. A ultima tela de realizac¸oes ˜ de tarefas no jogo e´ a tela de caracter´ısticas fenot´ıpicas (cl´ınicas) que a s´ındrome gen´etica em quest˜ao compreende como principais, onde pode ser escolhida a partir de uma lista de caracter´ısticas cl´ınicas que envolvem todas as outras s´ındromes programadas no jogo. O jogo so´ e´ finalizado quando o aluno acerta todas as opc¸oes ˜ devidas, desta tela, seguido da contabilizac¸ao ˜ do tempo usado para o jogo.
(a) Tela inicial do jogo.
(b) Tela de Gameplay(montagem dos cromossomos).
(c) Tela de nomenclatura.
(d) Tela de quiz.
Figura 4. Imagens do jogo
O fluxo de telas do jogo foi desenvolvido, de modo que o aluno possa retornar as telas (fases) j´a conclu´ıdas para verificar sua pontuac¸ao ˜ referente aos erros e acertos. O teste de funcionalidade realizado por cinco docentes da Disciplina Gen´etica Humana mostrou que o jogo atente ao conteudo ´ trabalhado e representa um recurso pedagogico ´ muito interessante, criando-se uma grande expectativa para sua utilizac¸ao ˜ imediata nas aulas dos docentes. O teste parcial de funcionalidade foi realizado com 10 Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
223
acadˆemicos (5 de Medicina, 2 de Odontologia e 3 de Enfermagem) que j´a realizaram a disciplina de Gen´etica Humana e mostrou que 100% deles acharam o Cariogame divertido, de adequado manuseio e contempla informac¸oes ˜ gen´eticas importantes e de acordo com o grau de conhecimento da fase acadˆemica. Ainda realizaremos o teste de funcionalidade com um grupo maior de alunos (N=100) para validarmos o produto, uma vez que vamos comparar as duas formas de montagem de cariotipo, ´ a tradicional e usando o Cariogame. As figuras de 4 e 5 mostram os resultados preliminares j´a alcanc¸ados at´e determinada data.
Figura 5. Tela de caracter´ısticas clin´ıcas.
8. Conclusao ˜ e Testes Futuros Este projeto de pesquisa abordou o ensino da citogen´etica facilitada atrav´es de um jogo digital. Atrav´es do desenvolvimento do jogo, ainda que, oficialmente, os alunos n˜ao tenham adotado o jogo como ferramenta de aprendizagem, j´a foi poss´ıvel perceber as primeiras melhorias no aprendizado do tema atrav´es de uma interac¸ao ˜ entre a tecnologia e o ensino da medicina. O uso dessa ferramenta de ensino possibilitou uma maior aproximac¸ao ˜ de um contexto real para a compreens˜ao do diagnostico ´ em citogen´etica, em especial de disturbios ´ humanos, favorecendo, futuramente, uma melhor formac¸ao ˜ de profissionais na area ´ da saude. ´ O Cariogame foi desenvolvido dentro de uma proposta tecnologica ´ que mostrou-se eficaz e de f´acil aplicabilidade nos seus testes iniciais. Al´em disso, os primeiros testes de validac¸ao ˜ mostraram uma melhora na did´atica em sala de aula, oferecendo um meio ao professor, tornando a sua aula mais dinˆamica e interessante para seus alunos. Ele compreende consider´avel informac¸ao ˜ de conhecimento sobre cariotipo ´ humano, descontra´ıdo e incentivador ao ensino-aprendizagem. Como continuidade do trabalho est˜ao planejados experimentos controlados que evidenciem numericamente os benef´ıcios dessa abordagem j´a na parte de desenvolvimento, ser´a feita uma plataforma web em que os professores poder˜ao utilizar as pontuac¸oes ˜ dos alunos no jogo como atividade avaliativa onde haveria controle de turmas e de notas, proporcionando mais liberdade ao professor e aos alunos.
9. Agradecimentos Os autores agradecem a Universidade do Estado do Amazonas pelo apoio. Os resultados apresentados nessa publicac¸ao ˜ foram obtidos por meio das atividades de Pesquisa e Desenvolvimento do projeto SAMSUNG OCEAN, patrocinado pela Samsung Eletronica ˆ da Amazonia ˆ LTDA., apoiada pela SUFRAMA sob os termos da Lei Federal N ◦ 8.248/91. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
224
Referˆencias Alonso, L. E., Fern´andez, C. J., e Nyssen, J. M. (2009). El debate sobre las competencias. Una investigacion ´ cualitativa en torno a la educacion ´ superior y el mercado de trabajo en Espana. ˜ Madrid: ANECA. Borges-Osorio, ´ M. R. e Robinson, W. M. (2001). Gen´etica Humana. Artmed Editora, Porto Alegre, 2a edic¸ao. ˜ Burke, B. (2014). Gamify: How gamification motivates people to do extraordinary things. bibliomotion. Inc., Apr. Carryberry, A. (2008). Serious games: online games for learning. http: //www.adobe.com/products/director/pdfs/serious_games_ wp_1101.pdf. [Acesso em 21 de Maio de 2017]. Cogo, A. L. P., Pedro, E. N. R., da Silva, A. P. S. S., Schatkoski, A. M., Catalan, V. M., e Alves, R. H. K. (2009). Objetos educacionais digitais em enfermagem: avaliac¸ao ˜ por docentes de um curso de graduac¸ao. ˜ Revista da Escola de Enfermagem da USP, 43(2):295–299. Deterding, S., Dixon, D., Khaled, R., e Nacke, L. (2011). From game design elements to gamefulness: defining gamification. In Proceedings of the 15th international academic MindTrek conference: Envisioning future media environments, pages 9–15. ACM. dos Santos, V. Aberrac¸oes ˜ cromossomicas ˆ num´ericas. http://biologianet.uol. com.br/genetica/aberracoes-cromossomicas-numericas.html. Acessado em: 22/04/2017. Kapp, K. M. (2012). The gamification of learning and instruction: game-based methods and strategies for training and education. John Wiley & Sons. Maluf, S. W. e Riegel, M. (2011). Citogen´etica Humana. Artmed Editora, Porto Alegre. MARRERO, A. e MAESTRELLI, S. (2001). Qual a relac¸ao ˜ existente entre dna, cromossomos e genes? conceitos identificados entre alunos das fases iniciais de cursos da a´ rea da saude ´ na ufsc. In 47o Congresso Brasileiro de Gen´etica. Martinez, E. R. M., Fujihara, R. T., e Martins, C. (2008). Show da gen´etica: um jogo interativo para o ensino de gen´etica. Gen´etica na escola, 3(2):24–27. Miranda, S. d. (2002). No fasc´ınio do jogo, a alegria de aprender. Linhas cr´ıticas, 8(14):21. Rogers, S. (2014). Level Up! The guide to great video game design. John Wiley & Sons. Schuytema, P. (2008). Design de games: uma abordagem pratica. ´ Cengage Learning. Triton, T. Touching triton. http://triton.hudsonalpha.org. [Acesso em 21 de Maio de 2017]. Unity. Unity 3d. http://unity3d.com/pt/public-relations. [Acesso em 21 de Maio de 2017]. Zichermann, G. e Linder, J. (2013). The gamification revolution: How leaders leverage game mechanics to crush the competition. McGraw Hill Professional. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
225
Anais do Encontro Regional de Computação e Sistemas de Informação
Desenvolvimento de um sistema web de gerenciamento escolar utilizando a tecnologia JSF Primefaces. Jeferson Rocha Silva1, Sérgio Roberto C. Vieira1. 1
Instituto de Ensino Superior Fucapi Av. Gov. Danilo de Matos Areosa, 381 - Distrito Industrial – Manaus – AM – Brasil jefferson_10lp@hotmail.com, sergio.rcvieira@gmail.com
Resumo. Este artigo tem como objetivo demonstrar o desenvolvimento de um sistema web de gerenciamento escolar para uma instituição de ensino fundamental e médio, relatando a contribuição do framework JavaServer Faces (JSF) Primefaces para este trabalho. O JavaServer Faces (JSF) é uma tecnologia aplicada ao desenvolvimento de sistemas web que tem sido bastante utilizada pelos desenvolvedores de modo a facilitar o desenvolvimento destes sistemas, proporcionando uma entrega mais rápida dos produtos e opções que tornam as interfaces mais atraentes e eficientes aos usuários destes sistemas, sendo que no final do artigo são relatadas as contribuições práticas do JSF Primefaces para o desenvolvimento do sistema. Abstract.This article aims to demonstrate the development of a school management web system for a primary and secondary education institution reporting the contribution of the JavaServer Faces (JSF) Primefaces framework to this work. JavaServer Faces (JSF) is a technology applied to the development of web systems that has been widely used by developers to facilitate the development of these systems, providing faster delivery of products and options that make the interfaces more attractive and efficient to users of these systems, and at the end of the article the practical contributions of JSF Primefaces are reported for the development of the system.
1. Introdução No decorrer dos últimos anos a área de tecnologia da informação (TI) passou a exercer papel de grande importância dentro das organizações e instituições. Segundo O´Brien (2001) a TI passou a ser utilizada como vantagem competitiva e estratégica, auxiliando nos principais processos empresariais. Por sua vez, Caiçara Junior (2015), afirma que o conceito de TI se amplificou e hoje tem um papel estratégico dentro das empresas. Dentre os segmentos da TI utilizados como ferramentas que auxiliam nos processos de grandes empresas e instituições, estão os sistemas de informação. Segundo Caiçara Junior (2015), a utilização dos sistemas de informação nas organizações modernas tornou-se uma condição de sobrevivência a partir da década de 1990. Segundo Moreira (2004) a escola de todos os níveis produz serviços de ensino, no entanto para que a atividade-fim de qualquer organização possa ser realizada com eficiência, é necessário o desenvolvimento das atividades de outra natureza, que prestam apoio e suporte a atividade exercida por esta organização. Nesse contexto, nasceu a necessidade da aplicação de ferramentas que auxiliem estas escolas em seus processos administrativos, entre estas ferramentas estão os Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
sistemas de informação. Visando auxiliar na rotina administrativa de uma determinada escola de ensino fundamental e médio, foi desenvolvido um sistema de informação que teve como foco a parte educacional desta instituição, auxiliando os professores, a secretaria e gestores em suas atividades diárias como frequência de alunos, lançamento de notas, matrícula de alunos entre outras. Este trabalho teve como objetivo minimizar o problema de uma determinada instituição de ensino fundamental e médio desenvolvendo um sistema web que gerencie as atividades educacionais desta instituição. Este trabalho foi dividido em 7 seções, na seção 2 apresenta a metodologia utilizada, na seção 3 apresenta a fundamentação teórica, na seção 4 apresenta o desenvolvimento do sistema, na seção 5 apresenta a avaliação do sistema, na seção 6 apresenta as contribuições do JSF Primefaces para o desenvolvimento do sistema e na seção 7 as considerações finais.
2. Metodologia de desenvolvimento Nesta seção está descrito as atividades que foram realizadas em cada etapa de desenvolvimento do sistema proposto. Levantamento e análise de requisitos: nesta etapa foram realizadas reuniões com o cliente a fim de entender melhor o que ele queria como uma possível solução de seu problema e como se dava o funcionamento de seu processo. Definição das funcionalidades do sistema: etapa onde foi realizada definição das funcionalidades do sistema com base nos requisitos levantados. Definição da arquitetura do sistema: etapa onde se definiu qual a arquitetura seria utilizada para o desenvolvimento do sistema. Implementação do sistema: nesta etapa foi realizado o desenvolvimento do sistema com base no processo definido e os seus devidos testes funcionais para verificar se o mesmo estava funcionando corretamente. Avaliação: foi realizada a etapa de testes de aceitação do usuário, utilizando o modelo de aceitação de tecnologia (TAM) para capturar a percepção do usuário a cerca do sistema desenvolvido.
3. Fundamentação teórica Segundo Pressman (2011, p.32) “Software consiste em: (1) instruções (programas de computador) que quando executados, fornecem características, funções e desempenho desejados (2) estrutura de dados que permitem aos programas manipular informações adequadamente [...]”. Sommerville (2011) afirma que o desenvolvimento incremental de software, que é uma parte fundamental das metodologias ágeis, é melhor do que uma abordagem em cascata para a maioria dos sistemas de negócios, e-commerce e sistemas pessoais e que desenvolvimento incremental reflete o modo de como resolvemos os problemas. O modelo de processo iterativo e incremental tem seu foco voltado para a entrega de um produto operacional com cada incremento ou iteração, mas ele realmente
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
227
possui capacidade para atender o usuário e também oferecer uma plataforma de avaliação do usuário. Laudon e Laudon (2010, p.12) definem Sistema de Informação como “um conjunto de componentes inter-relacionados que coletam (ou recuperam), processam, armazenam, distribuem informações destinadas a apoiar as tomadas de decisões, a coordenação e o controle das organizações”. Caiçara Junior (2015), nos leva a compreender que a utilização dos Sistemas de Informação pelas organizações se tornou uma questão vital no cotidiano as apoiando em seus processos administrativos. Para o desenvolvimento deste trabalho foi utilizada a Linguagem Java criada originalmente para o desenvolvimento de aplicativos simples e programas de controle de aparelhos de eletrodomésticos e eletroeletrônicos. Só depois de algum tempo verificou-se que ela também seria ideal para ser usada no desenvolvimento de aplicações em rede e também para a internet (JORGE, 2004). O Eclipse não é apenas uma IDE de desenvolvimento Java, mas uma plataforma de desenvolvimento de código aberto. Por padrão, sempre que você fizer um download do Eclipse ele estará preparado para o desenvolvimento Java. (LUCKOW; MELO 2010, p, 47) O Hibernate é uma ferramenta ORM open source e é a líder de mercado, sendo a inspiração para a especificação Java Persistence API (JPA). O Hibernate nasceu sem JPA, mas hoje em dia é comum acessar o Hibernate pela especificação JPA. (Caelum, 2013) O software Apache Tomcat foi utilizado no desenvolvimento do sistema e é uma implementação open source do Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. O software Apache Tomcat é desenvolvido em um ambiente aberto e participativo e liberado sob a licença Apache. (Caelum, 2013) O MySQL é o banco de dados de código-fonte aberto mais popular do mundo, tendo mais de 70 milhões de instalações no mundo todo. É utilizado por empresas como Amazon.com, Google, Motorola, MP3.com, NASA, Silicon Graphics, Texas Instruments e Yahoo! Finance. Para que o MySQL possa ser utilizado gratuitamente, o aplicativo que o utiliza tem que seguir a licença GPL. Isso basicamente significa que, se você não obtiver lucro com o seu aplicativo, não precisará pagar pelo MySQL e que sempre deverá distribuir os códigos-fonte do MySQL junto com seu aplicativo ou pelo menos indicar onde obtê-los .(LUCKOW; MELO 2010). JPA é um framework leve, baseado em POJOS (Plain Old Java Objects) para persistir objetos Java. A Java Persistence API, diferente do que muitos imaginam, não é apenas um framework para Mapeamento Objeto-Relacional (ORM - Object-Relational Mapping), ela também oferece diversas funcionalidades essenciais em qualquer aplicação corporativa. (MEDEIROS, 2014). Sommerville (2011) nos leva a compreender que o projeto de arquitetura preocupa-se com a maneira correta de organização do sistema, assim como com sua estrutura geral.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
228
No decorrer dos anos passou-se a utilizar a ideia de padrões de projetos como uma forma de apresentar, compartilhar e reusar o conhecimento sobre sistemas de software e entre estes padrões está o conhecido padrão MVC (Model–View-Controller). A abordagem MVC é composta por três tipos de objetos. O Modelo é o objeto de aplicação, a Visão é a apresentação na tela, e o Controlador o que define a maneira como a interface do usuário reage às entradas do mesmo. O MVC separa esses objetos para aumentar a flexibilidade e a reutilização (GAMMA, 2005, p.20). Teste de software é o processo de execução de um produto para determinar se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado. Sommerville (2011) afirma que o teste é destinado a mostrar que um programa faz o que é proposto a fazer e para descobrir os defeitos do programa antes do uso. O Technology Acceptance Model (TAM), ou modelo de aceitação de tecnologia é um dos modelos comportamentais mais usados no campo dos sistemas de informação no mundo e foi projetado para entender a relação de causa entre fatores externos de aceitação dos usuários e o uso real do sistema, que através de vários testes e métodos avaliam o comportamento dos usuários de TI e SI quanto à sua aceitação a determinada tecnologia e seu uso real (DAVIS, 1989 apud DIAS; SENA JUNIOR; SILVA, 2008, p.1).
3.1. JavaServer Faces (JSF) O JavaServer Faces (JSF) é a especificação para um framework de componentes para desenvolvedores web em Java. Essa especificação foi definida por meio do Java Community Process (JCP), que é a entidade que tem como objetivo especificar a evolução da linguagem Java de acordo com o interesse do mercado e não apenas da Sun criadora da linguagem Java. (LUCKOW; MELO, 2010, p.72) Segundo Schieck (2014) o Primefaces é um popular framework para projetos JSF que pode ser usado para desenvolver rapidamente aplicações sofisticadas para empresas ou no desenvolvimento de sites padrão. Tecnicamente, o Primefaces é uma biblioteca de componentes de interface gráfica para as aplicações web baseadas em JSF. Com ele é possível aumentar a produtividade do desenvolvedor e a experiência do usuário com a aplicação. A utilização do JavaServer Faces (JSF) no desenvolvimento de um software, torna-o mais confiável e flexível fazendo com que a aplicação tenha excelentes resultados. O JSF tem um ótimo rendimento quando utilizado no desenvolvimento de um software, por concentrar-se grande parte de códigos redundantes, a transparência na separação das camadas do MVC, deixando ainda clara a ideia de trabalhar com aplicações em camadas (Decol Claro; Costa Marchi, 2013, p.2). Outra característica marcante na arquitetura do JSF é a separação feita entre as camadas de apresentação e de aplicação. Pensando no modelo MVC, o JSF possui uma camada de visualização bem separada do conjunto de classes de modelo. (Caelum, 2013) Segundo Luckow e Melo (2010), para que o JSF funcione corretamente ele precisa das classes de apoio (Managed Bean) e das paginas web, abaixo vamos ver o
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
229
funcionamento interno da pagina JSF (vide figura 1 a seguir) quando ela está sendo processada.
Figura 1. Ciclo de vida das requisições JavaServer Faces
Resumo da descrição sobre cada uma das fases do JSF segundo (LUCKOW; MELO 2010 apud PEREIRA, 2014, p. 29): Restaura visão: assim que uma requisição chega ao servidor, o JSF carregará ou restaurará a árvore de componentes e nesse momento nasce a instância da classe FacesContext. Aplica requisição: nesse momento o JSF preencherá a árvore de componentes da página com os valores que foram enviados na requisição, porém obtém os valores e os aplica ao componente em memória e não ainda à classe Bean. Processa eventos: o JSF percorre cada componente e executa os eventos registrados. Validação de processo: o JSF percorrerá os componentes e validará os valores registrados conforme as regras definidas pelo desenvolvedor. Atualiza valores de modelo: com os valores já validados e registrados nos componentes serão atribuídos à respectiva propriedade da classe Bean. Invoca aplicação: o JSF acionará (se for o caso) o método da classe Bean que acionará a requisição, por exemplo o botão salvar do formulário. Renderiza resposta: a página será montada e devolvida ao navegador. O JSF solicita que cada componente gere seu próprio HTML, formando a pagina a ser exibida. O JSF em si já nos fornece uma quantidade de componentes de tela, no entanto estes são componentes bem simples oferecendo certa limitação aos desenvolvedores para tornar as suas interfaces mais ricas e detalhadas, uma vez que a demanda por interfaces cada vez mais sofisticadas crescem e mudam muito rapidamente surge à necessidade de uma tecnologia que forneça estes componentes que atendam a essa demanda, e é nesta parte que o JSF Primefaces entra oferecendo uma extensa quantidade de componentes visuais ricos e detalhados.
4. Desenvolvimento do sistema web Para desenvolver o sistema aplicou-se um modelo de processo da engenharia de software chamado iterativo e incremental que na sua forma geral tem as iterações e no Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
230
final de cada iteração ocorre a fase do incremento, onde nesta etapa do processo ocorre a melhoria da funcionalidade entregue na iteração, no entanto para este trabalho o foco deu-se nas iterações do processo, não fazendo o uso da parte voltada para o incremento. Cada iteração do processo foi composta pelas etapas de comunicação, planejamento, modelagem, construção e testes. Primeiro foi realizado levantamento de requisitos junto ao cliente (Diretor adjunto e um (1) membro da secretaria), onde houve inicialmente uma conversa para se ter um melhor entendimento do processo da instituição e das principais atividades que eram realizadas dentro desse processo. A partir das informações obtidas no levantamento de requisitos extraiu-se uma lista de necessidades que posteriormente vieram a se tornar requisitos funcionais e casos de uso do sistema web. Nas fases de comunicação definia-se a ordem de entrega das funcionalidades da interação de acordo com o nível de dependência, e informava-se ao cliente. Na fase de planejamento levantavam-se as necessidades materiais e tecnológicas para desenvolver todas as funcionalidades da iteração no tempo aceitável. Na fase de modelagem desenvolveram-se os diagramas que modelaram o sistema estando entre esses, os diagramas de casos de uso baseado nos requisitos funcionais do sistema, o diagrama de classe e o protótipo de todas as telas que foram desenvolvidas. Na fase de construção criou-se a Persistence.XML e a classe JPAUtil que cria uma conexão com o banco de dados, após isso usou-se o JUnit Test Case para testar esta conexão, criou-se a classe usuário e posteriormente foi encapsulada a regra desta classe a uma classe utilitária do tipo DAO gerando-se uma classe de teste, onde através desta realizou-se a persistência dos dados no banco de dados. Após esta etapa de configuração e testes, iniciou-se a codificação das funcionalidades, utilizando-se a linguagem Java EE foram criadas as classes de modelo, classes de controle e de persistência de dados com base nos requisitos funcionais, diagramas de caso de uso e protótipos de tela, vide figura 2 a seguir.
Figura 2. Tela que mostra a funcionalidade manter turma
Na fase de testes as funcionalidades desenvolvidas na interação passaram pelo teste funcional para verificar se estavam atendendo aos seus propósitos, para realizar esse teste funcional foi elaborado um roteiro de teste como documento a ser seguido
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
231
pela pessoa a realizar o teste, esse teste tinha como objetivo verificar se as funcionalidades estavam funcionando corretamente.
5. Avaliação do sistema No teste realizado para avaliação e validação do sistema, utilizou-se a técnica de teste de aceitação do usuário feito através do Modelo de Aceitação de Tecnologia (TAM) que utilizou um grupo de variáveis sendo estas; utilidade percebida, facilidade percebida e intenção de uso para capturar a opinião dos usuários. Nesta estratégia de teste criou-se um roteiro das tarefas a serem executadas, como recursos físicos foram utilizado um notebook pessoal da diretora adjunta da instituição, o desenvolvedor e instrutor do sistema acompanhou o teste afim de maiores orientações e melhor acompanhamento das atividades do teste. Antes de iniciar o teste foi entregue a eles os roteiros, sendo que estes foram entregues conforme a atividade realizada pelas pessoas que estavam participando do teste, ou seja, quem trabalha na secretaria pegou o roteiro voltado para o contexto da secretaria como cadastros e matricula, o professor pegou o roteiro voltados a frequência dos alunos, e a diretora ficou com a parte mais voltada para a área de administrador do sistema. A realização do teste durou cerca de 30 minutos e após a finalização do teste de cada participante, lhes foi entregue o questionário de avaliação TAM para que eles respondessem as questões finalizando assim esta primeira etapa do teste de aceitação do usuário. A segunda etapa do teste de aceitação do usuário foi realizada no dia 21 de novembro de 2016 com 10 alunos da faculdade Fucapi, mais especificamente com os alunos da turma de técnicas gerencias, seguindo-se os mesmos passos da primeira etapa de testes.
5.1. Resultados dos testes de aceitação Nesta etapa tirou-se a moda dos resultados obtidos através do TAM, onde a partir disso foi permitido ver quais das alternativas foram as mais escolhidas pelo usuário, conforme quadro1 a seguir. Quadro 1. Contagem geral das respostas obtidas na avaliação
Contagem geral de respostas Variáveis Cálculo da MODA
Discordo Totalmente
Discordo Parcialmente
Concordo Parcialmente
Concordo Totalmente
4
1
42
135
2%
1%
23%
74%
O resultado do quadro 1 acima e gráfico 1 a seguir mostram que o nível geral de aceitação do sistema foi de 74 %, indicando desta forma que o mesmo seria utilizado pelos usuários que realizaram o teste, assim como teria boas chances de atender ao seu
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
232
objetivo principal, que é minimizar os problemas administrativos de uma determinada escola de ensino fundamental e médio. A obtenção dos resultados, também deixou claro que algumas coisas precisavam ser corrigidas no sistema, partes destes ajustes estão ligados diretamente à questão de usabilidade, isso pôde ser percebido durante o teste de aceitação e também no preenchimento do campo observações que foi disponibilizado para que os usuários fizessem as suas devidas observações ou criticas. Gráfico 1. Representação dos dados obtidos na avaliação
Para se chegar aos resultados de cada grupo do quadro 1, usou-se o calculo denominado de moda, que pegou a resposta que apareceu com mais frequência na pesquisa de satisfação, acrescentou-se a isso o calculo de porcentagem para indicar a representatividade daquele número dentro de todo o conjunto de resultados. Para o gráfico 1 que mostra o resultado geral da aceitação do sistema, utilizou-se o calculo da moda e tirou-se a média da porcentagem baseando-se no número total de vezes que cada opção foi escolhida pelo usuário.
6. Contribuição prática do JSF Primefaces para este trabalho Neste trabalho fez-se o uso do JSF Primefaces a fim de poder oferecer uma interface mais amigável ao usuário e principalmente pela facilidade de uso que o mesmo oferece. No site oficial do Primefaces que se encontra em http://primefaces.org/ é possível ter acesso à documentação completa, showcases funcionais e o código completo na extensão XHTML de cada componente. Abaixo estão de fato as principais vantagens que foram percebidas durante a execução do trabalho utilizando o JSF Primefaces. Fácil utilização
Para utilizar os recursos do JSF Primefaces foi preciso apenas fazer a instalação do arquivo JAR nas bibliotecas do projeto e incluir a Taglib para o JSF Primefaces na criação da página XHTML, não precisando assim de qualquer outra configuração adicional. Menor tempo para implementação das paginas XHTML Com os exemplos funcionais existentes no site oficial do JSF Primefaces economizou-se bastante tempo de implementação das paginas XHTML do sistema desenvolvido neste trabalho, uma vez que, depois de elaborados os protótipos das telas,
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
233
só foi necessário escolher o componente que atendia a necessidade e fazer uso do mesmo, já tendo a certeza que o mesmo certamente iria funcionar corretamente. Showcases de modelos e utilização de templates Com a utilização do JSF Primefaces também foi possível utilizar o conceito de reutilização de código, embora este conceito também possa ser aplicado normalmente em outros tipos de tecnologia. No sistema desenvolvido aplicamos um dos exemplos de templates do Primefaces fazendo apenas adaptação do mesmo à necessidade do sistema desenvolvido neste trabalho, onde todas as páginas XHTML seriam atendidas fazendo apenas a herança deste template para as próximas páginas que foram desenvolvidas. Suporte a dúvidas Devido ao grande número de comunidades existentes, muitas dúvidas e erros que surgiram durante a fase de desenvolvimento deste sistema foram tirados com maior facilidade através do uso das comunidades ativas existentes na web, que sempre respondiam aos postes e davam dicas de como proceder para algumas situações, o que facilita muito o trabalho de quem não tem grandes experiências como desenvolvimento de software.
7. Considerações finais Este trabalho teve como principal objetivo e motivação o desenvolvimento de um sistema de gerenciamento web para uma determinada escola de ensino fundamental e médio, aplicando a este os conceitos do JSF Primefaces como ferramenta de apoio, e relatando a forma que esse framework contribuiu para que o sistema fosse desenvolvido. O JSF Primefaces se mostrou uma ferramenta muito poderosa para o desenvolvimento de sistemas web, economizando tempo do programador e dando uma vasta quantidade de componentes que o ajudam a construir interfaces ricas e que tenham maior chance de conquistar e satisfazer o cliente. O desenvolvimento deste trabalho apresentou grandes dificuldades, principalmente pela falta de experiência em atividades como levantamento e análise requisitos, tomada de decisão relacionada à que tipo de processo de desenvolvimento e arquitetura a ser utilizado, no entanto nenhuma destas foi tão difícil quanto a fase implementação de código, pois até aqui não se tinha prática com desenvolvimento de software, logo houve muitas dificuldades e dúvidas para se desenvolver o sistema, estas foram sendo tiradas através dos fóruns de ajuda e das vídeo aulas existentes na web, sendo estes meios fundamentais para que se pudesse desenvolver o sistema até o ponto em que está. Porém é válido ressaltar que junto com estas dificuldades vieram uma grande quantidade conhecimento que só poderia ser adquirido em um desafio tão grande quanto este foi. Sobre o uso do JSF destaca-se a facilidade de uso do mesmo não exigindo grande trabalho de configuração, o menor de tempo de implementação utilizando a técnica de herança de templates, os showcases funcionais existentes no site do Primefaces permitindo a visualização do mesmo em funcionamento e a facilidade de tirar dúvidas devido ao grande número de comunidades existentes na internet que são adeptas desta tecnologia.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
234
Como trabalho futuro ficou a possibilidade do desenvolvimento de novas funcionalidades para o software como a funcionalidade para lançamento de notas, a funcionalidade para gerar boletim escolar e a versão do sistema para a plataforma mobile.
Referências CAELUM. Laboratório Java com testes, JSF e design patterns. São Paulo, 2013. Disponível em:<https://www.caelum.com.br/apostila-java-testes-jsf-web-servicesdesign-patterns/introducao-ao-jsf-e-primefaces/#7-2-caracteristicas-do-jsf>. Acesso em: 25 ago. 2016. CAIÇARA JUNIOR, Cícero. Sistemas integrados de gestão – ERP: uma abordagem gerencial. 4. ed. Curitiba: Ibpex, 2015. FELIPE MOREIRA, Decol Claro; COSTA MARCHI, Késsia Rita da. Aplicações utilizando JavaServer Faces e MVC. Unipar, 2013. GAMMA, Erich. Padrões de projeto: Soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2005. JORGE, Marcos. Java passo a passo lite. São Paulo: Education do Brasil, 2004. LAUDON, Kenneth; LAUDON, Jane. Sistemas de informação gerenciais. 9. ed. São Paulo: Pearson Prentice Hall, 2010. LUCKOW, Décio Heinzelmann; MELO, Alexandre Altair de. Programação Java para web São Paulo: Novatec Editora, 2010. MEDEIROS, Higor. Introdução à JPA - Java Persistence API. Disponível em:<http://www.devmedia.com.br/introducao-a-jpa-java-persistence-api/28173>. Acesso em: 30 ago. 2016. MOREIRA, Roberto. Relações da escola com a comunidade. São Paulo: Pioneira, 2004. O´BRIEN, J. A. Sistemas de informação e as decisões gerenciais na era da internet. 9. ed. São Paulo: Saraiva, 2001. PEREIRA, Neuma da Silva. Software web para gerenciamento de atividades em umAmbiente corporativo. 2014. 73 f. Monografia (Trabalho de conclusão de curso) – Curso Ciência da Computação, Faculdade Fucapi, Manaus, 2014. PRESSMAN, Roger S. Engenharia de software. 7. ed. São Paulo: McGraw-Hill, 2011 SCHIECK, Rodrigo. Introdução ao PrimeFaces. Disponível em: < http://www.devmedia.com.br/introducao-ao-primefaces/33139>. Acesso em: 10 out. 2016. SILVA, Patrícia Maria; DIAS, Guilherme Ataíde; SENA, Manoel Raimundo Junior. A importância da cultura na adoção tecnológica: O caso do Technology Acceptance Model (TAM). João Pessoa. 2008. SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
235
Anais do Encontro Regional de Computação e Sistemas de Informação
Sistema de Controle de Voz para Internet das Coisas Wilson C. C. Junior1, Carlos M. C. Figueiredo 2 Escola Superior de Tecnologia – Universidade do Estado do Amazona (EST- UEA) Caixa Postal 27 – 69050-020– Manaus – AM – Brazil
1
Universidade do Estado do Amazonas (UEA) – Samsung Ocean - Manaus, AM – Brasil
2
cfigueiredo@uea.edu.br, wccj.snf@uea.edu.br
Abstract. This paper presents a residential control model based on IOT (Internet of Things) and MQTT (Message Queue Telemetry Transport), which is controlled using a different form of interaction, the voice command, the project has two platforms, the Arduino Mega And Raspberry Pi B, in addition to showing a simple and easily expandable implementation methodology, such as the addition of Artificial Intelligence, also provides a cheap, reliable and intuitive automation solution. Resumo. Este artigo apresenta um modelo de controle residencial baseado em Iot (internet of things) e MQTT (message queue telemetry transport), que é controlado usando uma forma diferente de interação, o comando de voz, o projeto conta com duas plataformas, o Arduino Mega e o Raspberry Pi B, além de mostrar uma metodologia de implementação simples e facilmente expansível, a exemplo a adição de Inteligência artificial, fornece também uma solução de automatização barata, confiável e intuitiva.
1. Introdução Ao longo da história, a computação vem ajudando pessoas comuns a fazerem seus trabalhos de forma cada vez mais confiável, rápida e eficiente, por isso existem métodos para automatizar diversos processos. Quando uma tarefa é automatizada, esta tende a ser feita de forma mais ágil, e com mais confiabilidade do que se fosse exercida por uma pessoa, além disso implica em facilidade para o usuário, que estará livre para realizar atividades mais complexas e de raciocínio, resultando em ganho de tempo, aumento de produtividade, confiabilidade, precisão e diminuição de custos. Segundo Quinderé (2009), nos últimos anos, em busca facilidade e praticidade, conforto e conveniência as pessoas têm procurado levar a automação para seu ambiente domiciliar. Sendo assim foi desenvolvida uma nova área da automação, domótica. A domótica é uma nova tecnologia que consiste em um sistema integrado capaz de controlar todos os ambientes de uma residência através de um só equipamento, incluindo temperatura, luminosidade, som, segurança, entre outros BOLZANI (2004). Segundo Andraues ainda que o custo da automação seja inconstante entre os mais diversos projetos variando de R$ 1 mil até R$ 250 mil, atualmente os sistemas de automação brasileiros estão associados a um público de alta classe, há também a falta de trivialidade na interação com usuários inexperientes, esses fatores tornam o sistema menos viável a milhares de usuários. Para melhorar esse quadro podem ser usados Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
equipamentos de baixo custo como o Arduino e interação via reconhecimento de voz para facilitar a integração do usuário leigo com o sistema. Além disso o recente aumento de pessoas que têm acesso a internet no Brasil facilita a implantação de ambientes inteligentes com Iot (Internet of Things). Dessa forma, há uma ótima oportunidade para desenvolver um projeto voltado para este nicho, a ideia do projeto é desenvolver um sistema de automação residencial por comando de voz, capaz de facilitar a interação das pessoas com ambientes utilizando um raspberry e a plataforma Arduino, a partir de recursos tecnologicamente compatíveis, através de um canal seguro e de um sistema unificado de software, hardware e internet das coisas com baixo custo, o que se aplicaria a diversos perfis de pessoas dentre elas deficientes físicos e idosos e até mesmo usuários leigos. Com um simples comando de voz, esse sistema permitirá simular a abertura e fechamento de portões eletrônicos e iluminação, através de um hardware desenvolvido e produzido na Itália chamado Arduino, interligado com um raspberry, utilizando outro hardware chamado Ethernet Shield que é responsável pela comunicação do Arduino com o raspberry conectado à internet fazendo uso de um dos protocolos de comunicação mais leves e simples de Iot o MQTT. Neste trabalho será estudado um sistema domótico que traz facilidade e comodidade na interação com os seus usuários, habitantes de uma casa, tendo como objetivo tornar a automação residencial mais acessível ao usuário comum, tanto na interação com o sistema quanto no preço. O documento é composto pela seção 2, que contém os materiais e métodos usados para a implementação deste sistema; na seção 3 é descrito o sistema proposto, ou seja, a ideia em si bem como seus componentes e detalhes de implementação; na seção 4 são apresentados a Avaliação qualitativa e testes; a seção 5 conclui o artigo e a seção 6 apresenta os possíveis trabalhos futuros.
2. Materiais e métodos Segundo Brown (2014), toda a aplicação web a troca de mensagens em Iot precisa de um protocolo, o MQTT por exemplo, tem aspectos positivos como serviço de qualidade, segurança e funciona em redes intermitentes e/ou redes com pouca largura de banda, é aberto, simples e fácil de implementar, permitindo milhares de clientes leves serem suportados por um único servidor, o que o torna ideal para dispositivos de Iot, e facilita a utilização deste protocolo em projetos nesta área, embora a competição seja implacável, hoje ele está se tornando o protocolo padrão. Com o avanço das técnicas de programação e a crescente busca por linguagens de programação com códigos de mais simples leitura e escrita, surgiu em 1991 a linguagem multiparadigma Python como uma alternativa às linguagens mais antigas como C, C++ e Java, com a sua facilidade de escrita e poderosa biblioteca padrão e código aberto o Python foi amplamente adotado pela comunidade acadêmica e científica, contando ainda com uma vasta documentação, essa linguagem foi a escolhida para a aplicação e reconhecimento de voz deste projeto, que foi feito usando a API do Google de reconhecimento de voz que se mostrou muito eficiente em testes preliminares.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
237
O projeto será desenvolvido em uma IDE (Ambiente de Desenvolvimento Integrado) própria do Arduino utilizando a linguagem Wiring baseada em C/C++) 2.1. Raspberry Pi O avanço nas áreas de pesquisa e desenvolvimento de microcontroladores, levou a barateamento e popularização dos mesmos, além disso microcontroladores como é o caso do Arduino são fáceis e simples de usar, desmistificando e contribuindo para a utilização dessa tecnologia bem como o microcomputador Raspberry Pi. Segundo a Foundation (2016), o Raspberry Pi é um microcomputador de baixo custo do tamanho de um cartão de crédito, onde o principal objetivo é prover uma maior aproximação das crianças e dos jovens às ciências da computação, desenvolvido pela Fundação Raspberry Pi e pela Universidade de Cambridge, no Reino Unido, ele abriga processador, processador gráfico, slot para cartões de memória, interface USB, HDMI e seus respectivos controladores. Além disso, ele também apresenta memória RAM, entrada de energia e barramentos de expansão. Um aspecto interessante do Raspberry é flexibilidade, pois já existem diversas aplicações. Tamb́em existem vários sistemas operacionais que funcionam nesta plataforma tais como Arch Linux ARM, Bodhi Linux, Fedora Remix, Gentoo Linux, Moebius, PiBang Linux, OpenELEC, XBian 1.0 Alpha 5, raspbmc, SliTaz, PiMAME, PwnPi, Pidora, Recalbox, OSMC e Raspbian. 2.2. Arduino e Ethernet Shield Segundo Arduino (2016) o Arduino é uma plataforma eletrônica que contém um microcontrolador de código aberto que possui um número de pinos digitais e analógicos que variam de acordo com o modelo, como mostrado na figura 1, esses pinos possibilitam que ele envie e obtenha sinais do ambiente através de componentes eletrônicos e processe tais sinais, além de se conectar com outras placas como é o caso da Ethernet Shield, conforme a figura 2, que serve para conectá-lo a internet ele também permite ao seu usuário programar funcionalidades e conectar nele sensores de presença, de temperatura, atuadores, e etc, enfim, existem milhares de projetos que usam o Arduino para as mais diversas finalidades, ele é um verdadeiro coringa quando se trata de controle eletrônico.
Figura 1. Placa Arduino Mega
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
238
Figura 2. Placa Ethernet Shield
Segundo Oasis (1998), o MQTT é um protocolo de transporte de mensagens do tipo publish/subscriber (publicador/subscritor). É leve, aberto, simples e projetado para ser fácil de implementar. Essas características tornam-no ideal para uso em muitas situações, incluindo ambientes restritos, como para comunicação em computadores para máquinas (M2M) e Internet de Coisas (IoT) contextos onde é necessária um sistema embarcado e / ou pouca largura de banda. Usando-se da Ethernet Shield o Arduino pode comunicar-se com vários dispositivos através de bibliotecas que implementam protocolos de internet , uma delas biblioteca PubSubClient, que implementa o protocolo MQTT V3. Para ter acesso às funções dessa biblioteca o programador deve importá-la, em depois, chamar as funções apropriadas para conectar, publicar, inscrever, objetos em um Broker.
3. Sistema proposto A solução proposta de automação residencial neste projeto será composta por um conjunto de componentes de hardware e software que interagem por meio de web utilizando um servidor MQTT. O Raspberry pi irá centralizar todas as regras do sistema, ele irá receber dados do microfone e enviá-los à api do Google, que retornará esses dados em forma de string, em seguida ele transformará esses dados em tópicos e comandos, e os enviará ao servidor MQTT. O sistema será integrado via Web, onde todos os comandos irão ser transmitidos por um servidor Mosquitto ao Arduino. A Ethernet Shield será responsável pelo recebimento das informações do servidor Mosquitto, enquanto o Arduino Mega irá receber e executar esses comandos, ou seja, ele irá acionar os dispositivos (luzes, portas, etc) requisitados pelo programa que roda no Raspberry pi. O sistema é dividido em três módulos. o primeiro é o módulo processamento que interpreta os dados de áudio do ambiente como comandos válidos ou não e os envia ao Broker cadastrado. O segundo é o de transmissão de dados. O terceiro é o módulo de acionamento que contém o microcontrolador Arduino para executar as ações desejadas. 3.1. Módulo processamento de dados O sistema de automação desenvolvido ficará instalado na placa Raspberry pi, nela o reconhecimento de voz foi escrito usando a linguagem Python (versão 3.5.2), que se Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
239
utiliza da biblioteca Pyaudio (versão 0.2.9) para ler dados do microfone. E subsequentemente enviá-los à plataforma do Google de reconhecimento de voz, através do método googleSpeechRecognition presente em outra a biblioteca, a Speech recongnition (versão 3.4.6), esta biblioteca foi escolhida pois é de código aberto se saiu bem em testes preliminares. Este método retorna uma string com o resultado do reconhecimento do áudio. Após o reconhecimento do comando de voz, o programa executa funções que validam e formatam os dados, transformando-os em um tópico e um comando, em seguida o comando é publicado neste tópico em um Broker Mosquitto pré-configurado. A estrutura do tópico é similar aos diretórios de Sistemas Operacionais exemplo no caso deste projeto, a estrutura ficou da seguinte forma : id/casa/sala/lampada/ligar, onde id é o identificador do usuário, casa é o lugar onde o sistema está instalado, sala é o cômodo onde está localizado o objeto, lâmpada é o objeto que sofrerá a ação e ligar é a ação. O sistema fica recebendo dados do microfone continuamente, enviando-o para o Google e esperando pela saudação, assim que ouve “Olá Jarvis”, ele espera em seguida um comando, que consiste em dizer o objeto, o local onde o objeto se encontra e a ação desejada não importando a ordem com que o comando seja dito, por exemplo: “ligar a lâmpada do quarto”, “lâmpada do quarto ligar”, “porta da sala abrir”. Caso o usuário demore mais de 5 segundos para dar o comando o sistema volta ao estado inicial de espera novamente pela saudação, caso o sistema não entenda o comando, ele solicita ao usuário repeti-lo e caso o comando seja válido a mensagem é transformada em tópico e é enviada para o servidor MQTT, em seguida o sistema retorna uma mensagem ao usuário que informa que o tópico foi enviado com sucesso. Como ilustra a figura 3.
Figura 3. Diagrama de atividade do Sistema proposto neste trabalho
3.2. Módulo de transmissão e acionamento Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
240
A a transmissão dos dados foi feita usando o servidor Broker Mosquitto por meio do protocolo MQTT, ele futuramente irá enviar dados (temperatura umidade e etc...) para um banco de dados. Basicamente o Broker MQTT, retransmite os dados do programa cliente que esta publicando em um tópico para outro programa que está inscrito neste tópico, que no caso é o Arduino. A ação em si foi feita usando um Arduino Mega, uma Ethernet Board, uma placa com quatro relés, uma bateria de 9 volts (uma lâmpada, uma fechadura eletrônica, uma televisão e um ar-condicionado). O Arduino foi conectado a Ethernet Board para ter acesso à internet, em seguida foi conectado a uma placa de relés que controla aparelhos eletrônicos. Em seguida o Arduino foi inscrito no mesmo Broker do aplicativo, enquanto o aplicativo publica ações no Broker o Arduino as lê e as executa conforme a Figura 4.
Figura 4. Diagrama de estados do Arduino
Para usuários menos experientes existe a função descoberta que retorna todos os comandos válidos presentes neste ambiente para ter acesso a ela basta dar o comando “ listar comandos ”. Para o sistema funcionar corretamente é necessário que o emissor da mensagem seja um dispositivo capaz de se conectar a internet e reconhecer a voz do usuário exemplos : computadores, tablets, Raspberries e Smartphones, é indispensável que o emissor e o receptor estejam conectados a internet, mais especificamente a um broker pré cadastrado, e existam relés ou Led´s conectados ao receptor (Arduino).
4. Avaliação qualitativa e testes Na fase de teste foi realizado um teste de confiabilidade com o propósito de validar o reconhecimento de voz da biblioteca google speech recognition, escolhida como base do sistema. O intuito deste teste era de discernir as palavras que a biblioteca distingui mais facilmente, para enfim decidir quais comandos seriam utilizados nos acionamentos dos objetos do sistema (lâmpada, ar-condicionado, porta e etc). Com o resultado dos testes elegeram-se as seguintes palavras para a utilização do usuário final: abrir; abre; abra; ligar; liga; ligue; acender; acenda; acende; fechar; fecha; feche; desligar; desliga; desligue; apagar; apaga; apague; fim; finaliza; terminar; sair; parar; e concluir.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
241
Foram realizados também testes de conversão de voz e comandos completos (por exemplo: fechar a porta da sala), em dois ambientes diferentes, o ruidoso e o ideal (livre de ruído), com um total de 52 comandos, dentre mil testes obtivemos um total de 94,1% de sucesso do sistema em um ambiente ideal, enquanto que no ambiente ruidoso, também com mil testes obtivemos apenas 68,1% de sucesso. O sistema, como mostra a figura 6, foi testado com 25 frases, que foram convertidas em comandos que o ele reconhece, dentre estas frases estão : sistema por favor deslige a luz do quarto, abra a porta da cozinha e ligar a luz da sala, este ultimo ilustrado na figura 5.
Figura 5. Snapshot do funcionamento do processamento de voz
Figura 6. Ilustração do sistema em funcionamento
5. Conclusão Atualmente, os sistemas de automação residencial mostram um grande potencial no mercado. O projeto proposto teve êxito em apresentar e implementar uma solução de automação residencial por comando de voz de pequeno e médio porte, o que mostra que ele pode ser aplicado para resolver problemas no mundo real. Ficou comprovado que é possível automatizar uma residência com pouco dinheiro, pois, os equipamentos Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
242
usados são de baixo custo. Além disso o projeto em si seguiu de acordo com o planejado. Nele utilizamos tecnologias como o MQTT que trouxe a vantagem de se trabalhar com redes de pouca largura de banda e redes intermitentes o que implicou em melhor eficiência e segurança do sistema.
6. Trabalhos futuros Os próximos passos serão, melhorar a velocidade do sistema com um todo, principalmente no reconhecimento de voz, e adicionar novas funcionalidades como o monitoramento e controle de temperatura automáticos e a geração de relatórios de consumo que indiquem ao usuário os principais horários de desperdício de energia, água e luz, e também a implementação de feedback por voz. Além disso o módulo de reconhecimento de voz ganhará uma versão android a fim de diminuir ainda mais o custos de implementação.
Agradecimentos Este trabalho recebeu o apoio da FAPEAM como projeto de iniciação científica PAICUEA. Parte dos resultados apresentados nessa publicação foram obtidos por meio de atividades de Pesquisa e Desenvolvimento do projeto SAMSUNG OCEAN, patrocinado pela Samsung Eletrônica da Amazônia Ltda, apoiado pela SUFRAMA sob os termos da lei federal No. 8.248/91.
Referências Andraues, L. (2011) “A tecnologia bate à porta : a automação residencial”, http://www.lpaarquitetura.com.br/dicas/a-tecnologia-bate-a-porta, Dezembro. Arduino. (2016) “What is Arduino?”, https://www.arduino.cc/en/Guide/Introduction, Dezembro. Atzori, L., Iera, A. e Morabito, G. (2010) “The Internet of things: a survey”, http://www.sciencedirect.com/science/article/pii/S1389128610001568/, Dezembro. Brown, K. (2014) “Build a cloud-ready temperature sensor with the Arduino Uno and the IBM Watson IoT Platform: Build the circuit and set up the environment”, https://www.ibm.com/developerworks/cloud/library/cl-bluemix-arduino-iot1/, Dezembro. Foudation, R. P. (2016) “What is a Raspberry PI?”, https://www.raspberrypi.org/help/faqs/#introWhatIs, Outrubro. Lampkin, V. (2016) “What is MQTT and how does it work with WebSphere MQ?”, https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/what_is_mqt t_and_how_does_it_work_with_websphere_mq?lang=en, Setembro. Oasis. (1998) “MQTT Version 3.1.1 Plus Errata 01”, http://docs.oasisopen.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html, Outubro. Quinderé, P. R., Façanha, R. A. (2009) “Casa Inteligente: Um Protótipo de Sistema de Automação Residencial de Baixo Custo”, Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
243
http://www.ffb.edu.br/sites/default/files/tcc-20082-patrick-romero-frotaquindere.pdf, Novembro. Wacker, D. A. (1993), The Complete Guide to Home Automation, Betterway Books, 1th edition.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
244
Anais do Encontro Regional de Computação e Sistemas de Informação
Obtenção de Aproximações de Pi com a Plataforma Raspberry Pi Janderson do Nascimento Lira, Elloá B. Guedes 1
Escola Superior de Tecnologia (EST) Universidade do Estado do Amazonas (UEA) Caixa Postal 69050-020 – Manaus – AM – Brasil {jnl.eng, ebgcosta}@uea.edu.br
Abstract. This works aims at showing the results of the adoption of low cost hardware to approximate π. The Raspberry Pi platform was considered as well as 2 Monte Carlo methods and 6 iterative methods based on infinite series. By using the Python programming language and a threshold of 15 hours of execution, the best result obtained was of 1997 decimal places of π. The results obtained show the possibility of adequation of low cost hardware to the problem under consideration. The estimation of π in low cost hardware can be used as a comparison benchmark among different platforms and suggests their use in Numerical Computation tasks. Resumo. Este trabalho mostra os resultados da utilização de hardware de baixo custo para obtenção de aproximações para a constante matemática π. Para tanto, foi utilizada a plataforma Raspberry Pi e foram considerados 2 métodos de Monte Carlo e 6 métodos iterativos baseados em séries infinitas. Utilizando a linguagem de programação Python e estabelecendo um limitante de 15 horas de execução, o melhor resultado obtido foi de 1997 casas decimais de π. Este resultado mostra possibilidade de adequação do hardware ao problema considerado. A utilização de aproximações de π em hardware de baixo custo pode ser utilizado como benchmark para comparação entre plataformas e sugere a adoção destes em tarefas da Computação Numérica.
1. Introdução A busca pelo conhecimento das casas decimais da constante irracional π tem sido algo comum ao longo da história da humanidade, com os primeiros registros datando de 1700 a.C. Com o advento da Computação, a partir de 1948 iniciou-se a utilização de métodos e modelos computacionais para endereçar este problema. Como consequência, houve um grande impulso na obtenção das casas decimais, em que os melhores resultados atuais para esta tarefa registram cerca de 8 × 1015 casas decimais [Santos 2003]. O problema de calcular π é relevante sob duas perspectivas. Para a Matemática, permite o desenvolvimento de métodos e teorias, bem como a descoberta de propriedades desse número. Do ponto de vista da Computação, esta tarefa promove o desenvolvimento de novos algoritmos, permite a verificação da corretude de implementações de hardware e pode ser utilizada como comparativo entre hardwares. Para mostrar o poder computacional de alguns grupos de supercomputadores e para testar a integridade de hardware e Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
software, por exemplo, é uma prática comum que um grupo de cientistas executem nestes supercomputadores um algoritmo para aproximar π [Vu 2011]. Enquanto uma perspectiva explorada pela Computação tem sido o cálculo de π com supercomputadores, pois isso permite o conhecimento de novas casas decimais, uma outra direção que pode ser considerada é o cálculo de π em hardware de baixo custo, com baixo poder de processamento e pouca disponibilidade de memória. Algumas questões emergem neste cenário, tais como: Quais seriam, então, as capacidades destes computadores de pequeno porte na obtenção de uma aproximação para π? Como adaptar algoritmos já existentes para rodar em uma arquitetura onde o poder computacional e a memória disponível são limitados? Considerando esta perspectiva e as questões de pesquisa endereçadas, este trabalho visa apresentar algumas respostas nesta direção. Este trabalho mostra os resultados da execução de diferentes métodos para obtenção de aproximações de π em um hardware de baixo custo. Para tanto, foram considerados dois tipos de métodos, os métodos de Monte Carlo e os métodos iterativos, baseados em séries infinitas. O hardware de baixo custo considerado foi a plataforma Raspberry Pi versão B, que atualmente custa em torno de US $40. Embora haja limitações consideráveis no hardware, alguns resultados obtidos foram animadores, pois o método de melhor eficiência resultou em 1997 casas decimais para uma execução de até 15 horas. Os resultados deste trabalho proporcionam um melhor conhecimento sobre os métodos de Monte Carlo e técnicas da Computação Numérica, as quais são aplicados em diversas áreas do conhecimento, tais como Matemática, Física, Engenharias, dentre outras. No tocante ao uso da plataforma Raspberry Pi, tem-se o seu favorecimento no uso da Computação Numérica, que ainda é incipiente dado o pouco tempo de existência desta plataforma. Identificar a sua adequação para o desenvolvimento de aplicações desta natureza pode ser uma contribuição, inclusive, para o ensino de disciplinas como Cálculo Numérico, requerida para a formação de novos Engenheiros. Para apresentar o trabalho desenvolvido, este artigo está organizado como segue. Um breve histórico sobre a constante π e métodos para a sua obtenção são mostrados na Seção 2. A apresentação do Raspberry Pi, suas características de hardware e software, bem como algumas aplicações são apresentadas na Seção 3. A metodologia para conduzir este trabalho é descrita na Seção 4. Os resultados e a discussão são apresentados na Seção 5. Por fim, as considerações finais encontram-se na Seção 6.
2. Cálculo de Pi Esta seção apresenta um breve histórico sobre a descoberta da constante π e dois tipos de métodos para sua obtenção, os métodos de Monte Carlo e os métodos iterativos. 2.1. Breve Histórico A constante numérica π (lê-se ‘pi’) é um número irracional correspondente aproximadamente ao valor 3, 1415 . . .. As primeiras evidências da existência desta constante surgiram há cerca de 4 mil anos na Babilônia e no Egito. O Papiro de Rhind, escrito aproximadamente em 1700 a.C., contém a afirmação de que “a área de um círculo é igual a área de um quadrado cujo lado é o diâmetro do circulo diminuído de sua nona parte.”Acredita-se que este seja o mais antigo vestígio escrito de uma estimativa do valor de π [Fraga 2006]. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
246
O método mais antigo desenvolvido para calcular π, conhecido como Método Clássico, consistia em enrolar uma corda em torno de um objeto circular, marcando o ponto em que se tinha uma volta completa. Em seguida, media-se quantas vezes esse pedaço de corda era maior que o diâmetro da circunferência do objeto utilizado. Por meio da utilização do Método Clássico com um polígono de 96 lados, Arquimedes de Siracusa obteve a inequação 223 22 <π< , (1) 71 7 a qual resultou em uma aproximação de π igual a 3, 14. Muitos trabalhos posteriores, até o ano de 1621, visaram melhorar esta aproximação utilizando o mesmo método. [Santos 2003].
Casas decimais
Apenas em meados do Séc. XV II surgiram métodos baseados em técnicas como séries infinitas, relações trigonométricas, etc. Até o ano de 1948 conhecia-se apenas 808 casas decimais de π. A Figura 1 ilustra o crescimento do conhecimento da precisão de π, em casas decimais, desde o primeiro relato histórico até advento da computação.
808
•
707
• 126
• 71 2
6
16
19
•
•
•
•
240 a.C.
480 d.C. (. . . ) 1426
1579
• 1699
1794 1873 1948
Ano
Figura 1. Cronologia da aproximação do valor de π antes do advento da computação. Fonte: Elaborada pelos autores.
Após o advento da computação, a obtenção de maior precisão nas casas decimais de π passou a progredir mais rapidamente. O primeiro registro do uso de um computador para efetuar cálculos relacionados utilizou o ENIAC em 1949, resultando em 2037 casas decimais [Blatner 1999]. A mais longa aproximação registrada atualmente foi obtida em 2013, alcançando 8 × 1015 casas decimais [Karrels 2014]. Obter aproximações para π com o uso do computador passou a contribuir para a própria Computação em, pelo menos, três aspectos: (i) na concepção e implementação de algoritmos para a obtenção de aproximações de π; (ii) como maneira de verificar a corretude em implementações de hardware; e (iii) como benchmark para comparação entre diferentes hardwares. 2.2. Métodos de Monte Carlo Métodos de Monte Carlo são, em sua essência, um conjunto de técnicas para analisar fenômenos por meio de algoritmos computacionais que demandam a geração de números Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
247
aleatórios [Shonkwiler and Mendivil 2009]. Estes métodos compõem um vasto conjunto de procedimentos numéricos que permitem a obtenção de técnicas de solução simples e flexíveis para uma grande variedade de problemas [Dunn and Shultis 2012]. Algumas aplicações destes métodos incluem predições sobre processos estocásticos, movimento de partículas microscópicas, jogos, dentre diversas outras. Em relação à obtenção de aproximações de π, existem dois métodos de Monte Carlo amplamente conhecidos para esta finalidade: o Método da Circunferência e o Método das Agulhas de Buffon. Método 2.2.1 (Método da Circunferência). Seja C uma circunferência de raio r igual a 1. Seja Q um quadrado de lado igual a ` = 2 · r no qual a circunferência C está inscrita, tangenciando os pontos médios dos lados de Q, conforme mostra a Figura 2(a). Aleatoriamente, plotam-se n pontos no quadrado. Seja k o número de pontos que incidem no circunferência. De acordo com este método, tem-se que o valor de π é dado por: π=
4·k n
(a) Método da Circunferência
(2)
(b) Agulhas de Buffon
Figura 2. Caracterização dos cenários considerados nos métodos da Circunferência e das Agulhas de Buffon para obtenção de π. Fonte: Elaborada pelos autores.
A obtenção de π de acordo com este método é feita por meio da relação entre as áreas do circunferência e do quadrado considerados. Método 2.2.2 (Agulhas de Buffon). Suponha um plano que contenha retas paralelas separadas uniformemente pela distância a, conforme ilustrado na Figura 2(b). Considere que n agulhas de comprimento ` (` ≤ a) são lançadas aleatoriamente sobre o plano. Seja k o número de agulhas que caíram sob o plano e em intersecção com as retas. Uma aproximação para π com este método, para valores grandes de n, é dada por: π=
2n k
(3)
No método das Agulhas de Buffon, considera-se o ângulo θ em relação às retas e a distância à reta mais próxima, denotada por d. É importante ressaltar que ambos os métodos consideram a Lei dos Grandes Números, isto é, a aproximação de π é alcançada à medida que o número de eventos n se aproxima do infinito. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
248
2.3. MĂŠtodos Iterativos A utilização de sĂŠries infinitas convergentes foi bastante utilizada por volta do SĂŠculo XVII para elaboração de aproximaçþes de Ď&#x20AC;, tais como nos mĂŠtodos desenvolvidos por Wallis, Leibniz e Euler. Com o uso do computador, a implementação de tais mĂŠtodos substitui a aproximação ao infinito por sucessivas iteraçþes. Alguns destes mĂŠtodos sĂŁo apresentados a seguir. MĂŠtodo 2.3.1 (MĂŠtodo de Wallis). MĂŠtodo 2.3.2 (MĂŠtodo de Leibniz). â&#x2C6;&#x17E; Ď&#x20AC; Y 2¡n 2¡n â&#x2C6;&#x17E; = ¡ X (â&#x2C6;&#x2019;1)n 2 2¡nâ&#x2C6;&#x2019;1 2¡n+1 i=1 Ď&#x20AC;= 2¡n+1 (4) n=0
(5)
MĂŠtodo 2.3.3 (Primeiro MĂŠtodo de Euler). MĂŠtodo 2.3.4 (Segundo MĂŠtodo de Euler). v v u â&#x2C6;&#x17E; u â&#x2C6;&#x17E; X 1 X 1 4 t Ď&#x20AC; = t6 (6) Ď&#x20AC; = 90 (7) 2 4 n n n=0 n=0 Considerando avanços matemĂĄticos posteriores e tomando como base a Teoria ClĂĄssica das Funçþes ElĂpticas, Ramanujan desenvolveu um novo mĂŠtodo para aproximação de Ď&#x20AC;. Ainda em 1985, este mĂŠtodo foi usado para obter 17.526.100 casas decimais, um recorde na ĂŠpoca [Baruah et al. 2009]. MĂŠtodo 2.3.5 (MĂŠtodo de Ramanujan). â&#x2C6;&#x161; â&#x2C6;&#x17E; 1 2 2 X (4k)!(1103 + 26390k) = Ď&#x20AC; 9801 k=0 (k!)4 3964k
(8)
Gregory e David Chudnovsky, estudaram a fundo a constante Ď&#x20AC; e suas caracterĂsticas matemĂĄticas, como por exemplo, a estatĂstica do primeiro bilhĂŁo de dĂgitos, dentre outras. AlĂŠm disso, propuseram um mĂŠtodo para o cĂĄlculo de Ď&#x20AC; e implementaram o mesmo em um computador construĂdo por eles prĂłprios, alcançando um total de 2.260.321.336 dĂgitos [Baruah et al. 2009]. O mĂŠtodo desenvolvido por eles ĂŠ mostrado a seguir. MĂŠtodo 2.3.6 (MĂŠtodo dos IrmĂŁos Chudnovsky). â&#x2C6;&#x17E; X 1 (â&#x2C6;&#x2019;1)k (6k)!(13591409 + 545140134k) = 12 Ď&#x20AC; (3k)!(k!)3 6403203k+3/2 k=0
(9)
3. Raspberry Pi O Raspberry Pi ĂŠ um computador de pequeno porte encapsulado em uma Ăşnica placa de circuito impresso. Em sua versĂŁo B, o Raspberry Pi baseia-se na arquitetura ARM11 e possui um processador com clock de 700 MHz. A memĂłria principal ĂŠ de 512 MB do tipo SDRAM [14 2016]. Possui dimensĂľes de 53, 98 mm de largura, 85, 6 mm de comprimento e 17, 0 mm de altura e pode ser visualizado na Figura 3. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
249
Figura 3. Raspberry Pi versão B. Fonte: Raspberry Pi Foundation.
A alimentação de energia é feita por meio de uma fonte microUSB com 5 V de tensão e corrente entre 700 e 1200 mA. As conexões de entrada e saída disponíveis são: • • • •
Duas portas USB 2.0; Duas saídas de vídeo e áudio, sendo uma HDMI e outra RCA de 3, 5 mm; Interface serial para câmera MIPI (CSI-2); Interface serial para display (DSI) com conector para cabo flat [Upton and Halfacree 2012].
O hardware em questão é compatível apenas com distribuições Linux, sendo a distribuição Raspbian a mais indicada, a mesma é otimizada para este hardware e possui mais de 35.000 pacotes de software, que são pré-compilados e de fácil instalação [Lima et al. 2015]. A plataforma Raspberry Pi já foi utilizada em diversos cenários. Na Medicina, por exemplo, possibilitou a visualização de imagens médicas oriundas de exames como mamografia, tomografia computadorizada, dentre outros [Paiva and de Oliveira Moreira 2014]. Na Meteorologia, com o incremento de sensores de temperatura e pressão, foi acoplado a um balão meteorológico, captando e enviando, via ondas de rádio, informações destes sensores em tempo real para um servidor [Akerman 2012]. Essas aplicações ilustram a utilização satisfatória desta plataforma em diferentes domínios.
4. Materiais e Métodos Para o desenvolvimento deste trabalho foi utilizado um hardware de baixo custo do tipo Raspberry Pi B com o sistema operacional Raspbian. A especificação deste hardware foi apresentada anteriormente na Seção 3. A linguagem de programação adotada para o desenvolvimento deste trabalho foi Python, por ser uma linguagem de sintaxe moderna, orientada a objetos, interpretada via bytecode, com tipagem forte e dinâmica, modular, multiplataforma, de fácil aprendizado e de implementação livre [Menezes 2014]. Além destas vantagens, cita-se a existência de múltiplas bibliotecas voltadas para a Computação Científica. No escopo deste projeto destaca-se a utilização da biblioteca Numpy. Numpy é um pacote que suporta operações com vetores e matrizes. Baseado em implementações feitas na linguagem C, as funcionalidades providas por este pacote posManaus, 25 a 27 de maio de 2017 ISSN 2238-5096
250
suem um desempenho melhor quando comparadas às operações implementadas nativamente no Python [Idris 2015]. Para cada método para obtenção de uma aproximação de π escolhido, o mesmo deveria ser implementado em Python considerando a execução na plataforma Raspberry. Considerando as limitações do hardware em termos de resfriamento, o que poderia causar superaquecimento e perda do dispositivo, o que resultaria em um aumento de custos, optou-se por limitar o tempo de execução. Alguns testes exaustivos realizados auxiliaram a limitar o tempo de execução de cada método como sendo igual a 15 horas. Após a execução de cada método, o resultado seria uma aproximação de π com um determinado número de casas decimais. Uma questão decorrente foi determinar a qualidade desta aproximação, ou seja, o quanto ela é precisa em relação à constante que se deseja aproximar. Para realizar esta tarefa, investigou-se resultados de trabalhos já consolidados [Karrels 2014] e construiu-se um gabarito, o qual possui 104 casas decimais de π para comparação. Desta maneira, sumariza-se a metodologia conduzida neste trabalho como se segue: cada método foi implementado na linguagem Python usando a biblioteca Numpy, sendo executado por 15 horas na plataforma Raspberry Pi versão B e os resultados produzidos por este foram comparados com um gabarito. A quantidade de casas decimais corretas até o primeiro erro foi então a métrica do desempenho de cada método considerado.
5. Resultados e Discussão O resultado da execução dos métodos descritos nas Seções 2.2 e 2.3 conforme a metodologia apresentada na Seção 4 é mostrado a seguir. Os métodos de Monte Carlo da circunferência e das agulhas de Buffon fizeram uso do gerador de números pseudo-aleatório disponível na biblioteca padrão da linguagem Python. No método da circunferência, foram gerados mais de 3 × 107 pontos, dos quais aproximadamente 2.3 × 107 caíram dentro da circunferência. De acordo com a Eq. (2), tem-se que: 4 · 23.724.814 ≈ 3.1414 . . . (10) 30.209.225 Comparando este resultado com o gabarito, observou-se que o método em questão forneceu no máximo 3 casas decimais corretas. π=
No caso do método das agulhas de Buffon, no tempo de execução considerado foram geradas mais de 3.4 × 107 agulhas, das quais em torno de 1.1 × 107 cruzaram as retas existentes. De acordo com a Eq. (3), tem-se: 2 · 11.090.115 ≈ 3.1418 . . . (11) 34.843.851 Assim como no método anterior, a comparação com o gabarito resultou em no máximo 3 casas decimais corretas. π=
A baixa precisão destes métodos de Monte Carlo na plataforma Raspberry Pi deuse em virtude da pouca quantidade de números pseudo-aleatórios gerados no intervalo Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
251
de tempo considerado, uma consequência do baixo número de operações por segundo do processador, cujo clock é de 700 MHz. Essa característica impede os efeitos da Lei dos Grandes Números nesta aproximação. Este resultado, entretanto, também foi observado em computadores de maior porte, mesmo com uma maior quantidade de pontos [Rickert 2015].
Casas decimais corretas
Casas decimais corretas
Quanto aos métodos iterativos, os resultados podem ser vistos a seguir. O resultado dos métodos de Wallis, Leibniz e Euler podem ser vistos nos gráficos da Figura 4.
9
8
7
9
8
7
6
6
5
5
4
4
3
3
2
2
1
1
0 100
101
102
103
104
105
106
107
108
109
0 100
1010
101
102
103
104
105
106
107
108
109
Itera¸c˜ oes
27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 100
(b) Método de Leibniz e Primeiro Método de Euler. Casas decimais corretas
Casas decimais corretas
(a) Método de Wallis.
1010
Itera¸c˜ oes
M´ etodo de Ramanujan
1997
M´ etodo de Chudnovsky 1418
197 141
101
102
103
104
105
106
107
108
109
1010
9 100
101
102
103
104
105
106
107
108
Itera¸c˜ oes
(c) Segundo Método de Euler.
109
1010
Itera¸c˜ oes
(d) Métodos de Ramanujam e Chudnovsky.
Figura 4. Resultados obtidos com a execução dos Métodos Iterativos.
No método de Wallis, o aumento no número de iterações não implicou diretamente em uma melhora na aproximação. O melhor resultado para este método resultou em 7 casas decimais corretas. O primeiro método de Euler e o método de Leibniz obtiveram resultados aproximadamente iguais, com o mesmo número de casas decimais obtidas por iteração. O segundo método de Euler resultou na aproximação de 27 casas decimais corretas na 1010 iteração. Embora esse método tenha obtido o melhor resultado dentre os Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
252
considerados até este ponto, pode-se perceber que o número de iterações para alcançálo é elevado. Considerando os resultados disponíveis, cada nova casa decimal correta é obtida, aproximadamente, por um fator multiplicativo de 10 iterações. Os métodos de Ramanujan e Chudnovsky podem ser vistos na Figura 4(d) e mostraram resultados melhores na obtenção de aproximações de π quando comparados aos demais métodos. O método de Ramanujan resultou em 1997 casas decimais corretas até a 104 iteração, executada sem que o limitante de tempo tenha sido ultrapassado. Já método de Chudnovsky, aproximou 1418 casas decimais corretas com 103 iterações. Quando comparados entre si, é possível perceber que o método de Chudnovsky demanda mais cálculos por iteração que o método de Ramanujan, razão pela qual o limite de tempo foi atingido mais rapidamente no primeiro que no último. Quando comparados aos métodos iterativos anteriores também é possível constatar que estes dois culminam em aproximações mais precisas. Uma das justificativa para isto é que eles são métodos mais recentes, desenvolvidos em apartir de um melhor conhecimento matemático sobre essa constante. Em decorrência da execução destes resultados, é possível concluir que os métodos de Monte Carlo, quando executados neste hardware de baixo custo, não resultam em boas aproximações para π, pois percebe-se que a limitação computacional não permite que os efeitos da Lei dos Grandes Números aconteçam, implicando em uma baixa precisão. Nos métodos iterativos, por sua vez, percebeu-se uma boa adequação dos métodos mais recentes, em que o conhecimento de propriedades e operações matemáticas mais profundas sobre π, implicam na obtenção de uma quantidade de casas decimais maior por iteração. O melhor resultado, considerando a metodologia estabelecida para a execução destes métodos, foi verificado com o método de Ramanujan, com 1997 casas decimais.
6. Considerações Finais Em decorrência da realização deste trabalho, foi possível verificar a adequação na utilização da plataforma Raspberry Pi para a obtenção de aproximações de π com métodos iterativos. Os melhores resultados obtidos foram observados com a utilização do Método de Ramanujan, o qual resultou em cerca de 1997 casas decimais de precisão. Também foi possível verificar que os métodos de Monte Carlo para esta tarefa resultaram em aproximações incipientes. Estes resultados indicam a possibilidade da utilização de computadores de pequeno porte para esta tarefa. As adaptações necessárias para implementação destes métodos matemáticos na plataforma foi permitida pela linguagem de programação Python, cujas principais bibliotecas para cálculos científicos requeridas para o problema em questão estavam disponíveis para o Raspberry Pi. Estes resultados podem contribuir em alguns aspectos: (i) considerando a utilização e a constante proposição de novos modelos de hardware de baixo custo, estes métodos podem servir como benchmark comparativo entre estes hardwares diferentes, assim como é feito para computadores com alto poder de processamento; (ii) mostram a possibilidade de utilização de plataformas open-source de baixo custo para realização de cálculos científicos em determinados cenários; (iii) ampliam as possibilidades para o ensino de métodos numéricos para Engenharias, permitindo ao aluno implementar algoritmos e também considerar aspectos do hardware no qual ele é executado. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
253
Agradecimentos Este trabalho foi desenvolvido com o apoio financeiro da Fundação de Amparo à Pesquisa do Amazonas (FAPEAM) por meio de bolsa do programa de iniciação científica PAIC edição 2015-2016.
Referências 14, E. (2016). Raspberry Pi hardware. Disponível em http://downloads. element14.com/raspberryPi1.html. Acessado em 19 de maio de 2017. Akerman, D. (2012). Raspberry pi sends live images from near space. Disponível em http://www.daveakerman.com/?p=592. Acessado em 19 de maio de 2017. Baruah, N. D., Berndt, B. C., and Chan, H. H. (2009). Ramanujan’s series for 1/π: A survey. Amer. Math. Monthly, 1-24(116):567–587. Blatner, D. (1999). The Joy of Pi. United States. Dunn, W. L. and Shultis, J. K. (2012). Exploring Monte Carlo Methods. United States. Fraga, F. G. (2006). O número π. Master’s thesis, Universidade Federal de Minas Gerais, Belo Horizonte, Minas Gerais. Disponível em http://gazeta.spm.pt/ getArtigo?gid=80. Acessado em 19 de maio de 2017. Idris, I. (2015). Numpy Cookbook. Packt Publishing, 2 edition. Karrels, E. (2014). Computing digits of π with cuda. Disponível em http://www. karrels.org/pi/. Acessado em 19 de maio de 2017. Lima, V. G. S., Dias, W. R. A., de Melo, J. D., and Moreno, E. D. (2015). Análises de sistemas operacionais linux usando plataforma embarcada. In XVI Simpósio em Sistemas Computacionais de Alto Desempenho, pages 1–8, Florianópolis, Santa Catarina. Menezes, N. N. C. (2014). Introdução à Programação com Python. Novatec Editora, 2 edition. Paiva, O. A. and de Oliveira Moreira, R. (2014). Raspberry pi: a 35-dollar device for viewing DICOM images. Radiol Bras., 47(2):99–100. Rickert, J. (2015). A monte carlo simulation for pi day. http://blog. revolutionanalytics.com/2015/03/a-pi-day-obsession.html. Santos, J. (2003). Uma breve história de π. Gazeta de Matemática. Disponível em http://www.mat.ufmg.br/~espec/monografiasPdf/Monografia_ FabioGFraga.pdf. Acessado em 19 de maio de 2017. Shonkwiler, R. W. and Mendivil, F. (2009). Explorations in Monte Carlo Methods. United States. Upton, E. and Halfacree, G. (2012). Raspberry Pi: User Guide. Disponível em http: //www.cs.unca.edu/~bruce/Fall14/360/RPiUsersGuide.pdf. Vu, L. (2011). Supercomputers crack sixty-trillionth binary digit of pi-squared. http://phys.org/news/ 2011-04-supercomputers-sixty-trillionth-binary-digit-pi-s quared. html. Acessado em 19 de maio de 2017. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
254
Anais do Encontro Regional de Computação e Sistemas de Informação
Protótipo de uma Mão Robótica Controlada Remotamente por Luva Sensorial Davi C. M. Barreto1, Francisco Januário1, Eduardo Façanha1 1
Laboratório de Robótica Aplicada – Fundação Centro de Análise, Pesquisa e Inovação Tecnológica (FUCAPI) Manaus – AM – Brasil davi.cmbarreto@gmail.com, francisco.januario@fucapi.br, efacanhaf@gmail.com
Abstract. This paper presents the process of developing a low cost, controlled servo robotic hand using Arduino Nano. A 3D printer, ensuring a lightweight product, built its structure. Its control is realized through a sensorial glove equipped with flexible resistors, that are located in each finger, sending its movements remotely through the Bluetooth communication. The results of the tests performed showed that the robotic hand performed satisfactorily the movements executed in the sensorial glove. Resumo. Este trabalho apresenta o processo de desenvolvimento de uma mão robótica servo controlada e de baixo custo, utilizando o Arduino Nano. Sua estrutura foi construída por uma impressora 3D, garantindo um produto leve. Seu controle é realizado através de uma luva sensorial equipada com resistores flexíveis, que se localizam em cada dedo, enviando os seus movimentos remotamente através da comunicação Bluetooth. Os resultados dos testes realizados mostraram que a mão robótica executou satisfatoriamente os movimentos executados na luva sensorial.
1. Introdução A mão humana é uma parte essencial do corpo humano que executa diversas tarefas, desde as mais simples até as que requerem um maior grau de complexidade devido a sua versatilidade. Ela pode manipular objetos, executar movimentos complexos, sentir a textura de diversos tipos de materiais, seu peso, entre outras atividades. As principais aplicações em robótica surgiram por volta de 1960 e eram voltadas basicamente para a indústria. Devido ao avanço da tecnologia, há diversos recursos para facilitar e melhorar a segurança do ser humano em atividades insalubres, por exemplo, em áreas de difícil acesso como áreas radioativas, com uso de experimentos químicos, entre outras [ALVES et al., 2014]. Outra justificativa, é a dificuldade que pessoas com deficiência física possuem em uma ou ambas as mãos, sendo necessário o desenvolvimento de próteses que possam ser utilizadas por essas pessoas [MARINHO, 2009]. Este trabalho apresenta o desenvolvimento de uma mão robótica servo controlada e de baixo custo, com movimentos essenciais para executar ações básicas, como segurar um objeto e manipulá-lo.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
Este artigo está organizado da seguinte forma: a Seção 2 apresenta os diagramas de funcionamento da mão robótica e os componentes utilizados no projeto. A Seção 3 apresenta a descrição dos firmwares desenvolvidos, a modelagem 3D, a estrutura da mão robótica e da luva sensorial, e a descrição do software desenvolvido na linguagem Java. Na Seção 4 são apresentados os testes realizados e os resultados obtidos. Por fim, na Seção 5 são apresentados a conclusão e os trabalhos futuros.
2. Metodologia O protótipo da mão robótica foi construído em uma impressora 3D, utilizando o Arduino Nano para o controle do sistema, o servomotor SG90 para movimento dos dedos e o módulo HC-05 para a comunicação Bluetooth. A luva sensorial foi desenvolvida também utilizando o Arduino Nano, sensores flexíveis para a leitura do movimento dos dedos e o módulo HC-06 para a comunicação Bluetooth. Também foi desenvolvido um software, utilizando a linguagem Java, para a obtenção dos dados da luva sensorial e a resposta da mão robótica. O diagrama de funcionamento da luva sensorial é mostrado na Figura 1 e o diagrama de funcionamento da mão robótica, da luva sensorial e do software Java é mostrado na Figura 2.
Figura 1. Diagrama de funcionamento da mão robótica e da luva sensorial [Fonte: O próprio autor]
No primeiro bloco, da Figura 1, é realizada a leitura da posição de cada dedo na luva sensorial. Esses dados então são enviados para o Arduino Nano, que irá processálos e em seguida enviá-los através da comunicação Bluetooth, que serão recebidos pelo Arduino Nano da mão robótica, então repassando esses dados para os servomotores, movimentando os dedos da mão robótica.
Figura 2. Diagrama de funcionamento da mão robótica, da luva e do software Java [Fonte: O próprio autor]
Na Figura 2, o funcionamento é semelhante com o anterior, porém, a diferença é que os dados da luva sensorial e a resposta da mão robótica são enviados para o software de captura de dados através da comunicação serial USB (do inglês, Universal Serial Bus), que armazenará os dados em um banco de dados.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
256
2.1. Arduino Nano O Arduino é uma plataforma de prototipagem de baixo custo e de código aberto com um software e hardware de fácil uso. As placas do Arduino são capazes de ler entradas digitais e analógicas, como o sinal do clique de um botão ou detectar a intensidade de luz em um sensor, acionar atuadores, se comunicar através de módulos Wireless, entre outras funcionalidades [ARDUINO, 2017]. O Arduino Nano, mostrado na Figura 3, possui o microcontrolador ATMega328P com 2 kB de memória SRAM (do inglês, Static Random Access Memory), 16 kB de memória Flash e um clock de 16 MHz. Sua tensão de alimentação encontra-se na faixa de 7 V a 12 V [ARAÚJO, 2014].
Figura 3. Arduino Nano [ARAÚJO, 2014]
Neste trabalho, o Arduino Nano é utilizado para o controle dos servomotores da mão robótica e também a leitura e envio dos dados dos sensores flexíveis da luva sensorial. 2.2. Bluetooth O Bluetooth é um padrão de rede ad hoc de curto alcance, aproximadamente 11 metros, que utiliza a mesma banda de 2,4 GHz do padrão IEEE 802.11b e do 802.11g, que utiliza saltos de frequência ao invés de sequência direta, assim os seus dispositivos mudam suas frequências 1600 vezes por segundo [ENGST e FLEISHMAN, 2005]. O HC-05, mostrado na Figura 4, é um módulo de comunicação Bluetooth que possui dois modos de funcionamento, o modo mestre e o escravo. No modo mestre, ele solicita a conexão de outro dispositivo já definido em sua programação e no modo escravo, ele espera a solicitação de conexão de outro dispositivo [RODRIGUES, 2016].
Figura 4. Módulo Bluetooth HC-05 [OLIVEIRA, 2016]
O HC-06, mostrado na Figura 5, é um módulo de comunicação Bluetooth que possui apenas um modo de funcionamento, o modo escravo, que espera a solicitação de conexão de outro dispositivo [OLIVEIRA, 2016].
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
257
Figura 5. Módulo Bluetooth HC-06 [OLIVEIRA, 2016]
Neste trabalho, o módulo HC-05 é utilizado na mão robótica, no modo mestre, e o módulo HC-06 é utilizado na luva sensorial, no modo escravo. 2.3. Sensor Flexível O sensor flexível é uma resistor variável onde sua resistência varia conforme a sua superfície é dobrada, no caso, quanto mais dobrada estiver, maior será o valor de sua resistência [SPARKFUN, 2015]. Neste projeto foi utilizado um modelo deste sensor com comprimento de 114,3 mm, como mostrado na Figura 6, sendo utilizado para detectar o movimento dos dedos. Cinco destes sensores foram instalados na luva sensorial.
Figura 6. Sensor flexível 114,3 mm [SPARKFUN, 2015]
2.4. Servomotor SG90 O servomotor é um atuador rotativo ou linear que possui incorporado um codificador, encoder em inglês, e um controlador. O sinal de entrada do servomotor é um sinal PWM (do inglês, Pulse Width Modulation), ou seja, dependendo da largura da onda gerada no sinal de entrada, o motor terá seu eixo movimentado para determinada posição [SILVEIRA, 2016]. O servomotor SG90, mostrado na Figura 7, foi escolhido para este projeto. Este servomotor possui sua tensão de operação na faixa de 3 V até 7,2 V, um grau de liberdade de 180º e um torque de 1,8 kgf/cm [FILIPEFLOP, 2013].
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
258
Figura 7. Servomotor SG90 [FILIPEFLOP, 2013]
Há cinco servomotores SG90 no protótipo, cada um está ligado com um respectivo dedo da mão robótica através de um par de fios de nylon, que são utilizados para abrir e fechar o dedo.
3. Desenvolvimento do Protótipo 3.1. Firmware Os firmwares são um conjunto de instruções operacionais que são programadas diretamente no hardware de equipamentos eletrônicos. O código transcrito no firmware é fundamental para o funcionamento do hardware e seus componentes [RIBEIRO, 2014]. Neste trabalho foram desenvolvidos dois firmwares, um para a mão robótica e outro para a luva sensorial. O firmware da luva sensorial processa os dados recebidos em suas entradas analógicas, onde estão conectados os sensores flexíveis, então os movimentos dos sensores são detectados e enviados através da comunicação Bluetooth. O firmware da mão robótica processa as informações recebidas pela comunicação Bluetooth, envia os comandos para os servomotores e assim movimenta os dedos da mão robótica. 3.2. Modelagem 3D A modelagem 3D de cada peça da mão robótica foi realizada no software SolidWorks. Neste software é possível modelar peças únicas em 3D, realizar montagens e também o desenho em 2D das mesmas. A modelagem da mão robótica é mostrada na Figura 8.
Figura 8. Vista isométrica da modelagem 3D da mão robótica [Fonte: O próprio autor]
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
259
3.3. Mão Robótica 3.3.1 Estrutura do protótipo A estrutura da mão robótica, mostrada na Figura 9, foi montada a partir das peças impressas em uma impressora 3D utilizando o material PLA, que é um poliéster termoplástico feito com ácido lático a partir de fontes renováveis como milho, mandioca, beterraba e, por isso, é biodegradável, reciclável e não possui nenhum tipo de resíduo tóxico [BIOFABRIS, 2014].
Figura 9. Mão robótica [Fonte: O próprio autor]
3.3.2 Esquemático do protótipo Na Figura 10 é mostrado o circuito esquemático do hardware da mão robótica, desenvolvido no software Proteus 8 Professional, permitindo a confecção da placa de circuito impresso da mão robótica. Para a alimentação do dispositivo são utilizadas uma bateria de 9V para o Arduino Nano e uma fonte de 6V para os servomotores.
Figura 10. Circuito esquemático montado no Proteus [Fonte: O próprio autor]
A Figura 11 mostra a placa de circuito impresso, em 3D, da mão robótica.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
260
Figura 11. Placa de circuito impresso da mão robótica [Fonte: O próprio autor]
3.4. Luva Sensorial A estrutura da luva sensorial, mostrada na Figura 12, foi construída com uma luva de pano e os sensores flexíveis foram costurados em cada dedo da luva. Para a alimentação da luva sensorial é utilizada uma bateria de 9V.
Figura 12. Luva sensorial [Fonte: O próprio autor]
3.5 Software de Captura de Dados da Mão Robótica Neste projeto foi desenvolvido um software para captura dos dados da mão robótica, que recebe os dados da luva sensorial e a resposta da mão robótica via USB e armazena todas informações em um banco de dados, gerando gráficos conforme o movimento dos dedos. A Figura 13 mostra a tela do software de captura de dados da mão robótica.
Figura 13. Software Mão Robótica [Fonte: O próprio autor]
Devido a faixa de tensão das respostas dos sensores flexíveis serem os mesmos, foi necessário realizar a normalização dos dados coletados, para poder distinguir os Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
261
dedos da mão robótica e da luva sensorial. Foram definidos intervalos de valores normalizados para cada dedo. Esses intervalos são mostrados na Tabela 1. Tabela 1. Intervalos normalizados de cada dedo da luva sensorial [Fonte: O próprio autor]
Intervalo
Mindinho
Anelar
Médio
Indicador
Polegar
0 – 20
30 – 50
60 – 80
90 – 110
120 – 140
4. Testes e Resultados O protótipo possui dois modos de funcionamento, o primeiro é o controle da mão robótica utilizando apenas a comunicação Bluetooth com a luva sensorial e o segundo é utilizando o software de captura de dados. Logo, foram montados dois cenários para testes. No primeiro cenário de testes, foi utilizada a comunicação Bluetooth, onde foi testado apenas a precisão dos movimentos dos dedos da mão robótica em relação ao movimento dos dedos na luva sensorial. Na Figura 14 é mostrada algumas posições testadas.
Figura 14. Posições testadas no protótipo [Fonte: O próprio autor]
No segundo cenário de testes, é utilizando o software de captura de dados, onde foi testado a transmissão dos dados da luva sensorial e o tempo de resposta da mão robótica. Neste caso, o software de captura de dados armazena as informações em um banco de dados e gera dois gráficos.
Figura 15. Gráfico dos dados enviados pela luva sensorial e gráfico dos dados recebidos pela mão robótica [Fonte: O próprio autor]
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
262
A Figura 15 mostra os dados enviados pela luva sensorial e a resposta da mão robótica. Observa-se que os dados da luva variam de forma linear, enquanto os dados da mão robótica apresentam atrasos, comparados com a luva sensorial, para executar os movimentos recebidos. Tabela 2. Dados da luva sensorial e da mão robótica, seus respectivos tempos e atrasos [Fonte: O próprio autor]
Dedo
Polegar
Indicador
Médio
Anelar
Mindinho
Dado luva 127 132 135 131 92 97 104 95 63 67 74 66 33 40 48 38 3 10 16 8
Dado mão 127 133 135 129 90 98 102 94 63 69 71 65 30 41 45 37 4 10 12 6
Tempo luva (s) 8,236 9,35 10,479 11,562 12,692 13,78 14,894 16,047 17,172 18,252 19,386 20,548 21,667 22,752 23,861 25,022 26,137 27,251 28,361 29,5
Tempo mão (s) 8,268 9,399 10,48 11,616 12,695 13,816 14,96 16,086 17,174 18,307 19,464 20,588 21,669 22,778 23,943 25,057 26,176 27,279 28,421 29,538
Atraso (s) 0,032 0,049 0,001 0,054 0,003 0,036 0,066 0,039 0,002 0,055 0,078 0,04 0,002 0,026 0,082 0,035 0,039 0,028 0,06 0,038
A Tabela 2 mostra os dados enviados pela luva e recebidos pela mão robótica no momento em que ocorre o movimento de cada dedo. As colunas 2 e 3 mostram respectivamente os dados normalizados da luva e da mão. Nota-se que em algumas linhas há uma diferença entre os dados, pois é realizado um cálculo para estimar o valor da posição em que o motor se encontra, e devido a isso, pode ocorrer uma pequena diferença em relação ao valor enviado pela luva. As colunas 4 e 5 mostram, respectivamente, o tempo de envio da luva e o de resposta da mão robótica. A última coluna apresenta a diferença entre esses tempos, onde foi observado que houve atrasos na resposta que variam de 1 até 82 milissegundos.
5. Considerações Finais e Trabalhos Futuros Este artigo teve como objetivo a apresentação do processo de desenvolvimento de uma mão robótica, capaz de reproduzir movimentos semelhantes a de uma mão humana, através de uma luva sensorial e comunicação sem fio. A partir dos resultados obtidos Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
263
nos experimentos, o protótipo executou satisfatoriamente os movimentos realizados na luva sensorial, tanto com a comunicação Bluetooth quanto com o software de captura de dados da mão robótica. Para trabalhos futuros, a precisão dos movimentos dos dedos poderá ser melhorada, utilizando motores mais eficientes, com o aperfeiçoamento tanto no hardware quanto no firmware do protótipo, e também através de uma modelagem da estrutura mais complexa, como a adição do movimento do pulso no protótipo da mão robótica.
Bibliografia ALVES, Thiago da Circuncisão et al. sistemaolimpo. MÃO ROBÓTICA, 2014. Disponível em: <https://goo.gl/3b9FuD>. Acesso em: 25 Novembro 2016. ARAÚJO, Thayron. Arduino Nano 3.0 – Conheça este pequeno e poderoso membro da família Arduino. Fazedores, 2014. Disponível em: <https://goo.gl/4k8Q45>. Acesso em: 18 Abril 2017. ARDUINO CC. Arduino - Introduction. Arduino, <https://goo.gl/T1C3Xh>. Acesso em: 16 Maio 2017.
2017.
Disponível
em:
BIOFABRIS. PLA: O plástico utilizado para impressões 3D. Biofabris, 2014. Disponível em: <https://goo.gl/fpqGXy>. Acesso em: 22 Abril 2017. ENGST, Adam; FLEISHMAN, Glenn. Kit do Iniciante em Redes Sem Fio. 2ª. ed. São Paulo: Pearson Makron Books, v. I, 2005. FILIPEFLOP. Micro servo motor 9G SG90 com arduino uno. Filipeflop, 2013. Disponível em: <https://goo.gl/jOEhh1>. Acesso em: 16 Abril 2017. MARINHO, Thiago de Sá Earp de Souza. puc-rio. PROJETO E CONTROLE DE UM MÃO ROBÓTICA SERVO CONTROLADA POR TENDÕES, 2009. Disponível em: <https://goo.gl/dGToqs>. Acesso em: 25 Novembro 2016. OLIVEIRA, Wenderson. Embarcados. Comunicação entre Módulos Bluetooth HC-05 e HC-06, 2016. Disponível em: <https://goo.gl/lRkxxf>. Acesso em: 12 Abril 2017. RIBEIRO, Daniel. Firmware: o que é e como atualizar? Techtudo, 2014. Disponível em: <https://goo.gl/NJUL0f>. Acesso em: 17 Abril 2017. RODRIGUES, Johnson Andrade. FGA. Implementação da Comunicação Sem Fio de um Módulo Estimador da Frequência Cardíaca Fetal Baseado em FPGA, 2016. Disponível em: <https://goo.gl/s5VN0I>. Acesso em: 12 Abril 2017. SILVEIRA, Cristiano Bertulucci. Servo Motor: Veja como funciona e quais os tipos. Citisystems, 2016. Disponível em: <https://goo.gl/mrO74U>. Acesso em: 16 Abril 2017. SPARKFUN. Flex Sensor 4.5'' - SEN-08606 - SparkFun Electronics. Sparkfun, 2015. Disponível em: <https://goo.gl/Zv7em2>. Acesso em: 15 Abril 2017. WATANABE, Ana T. Y. UDESC. O UNIVERSO HCS08QG8: Teoria, Linguagem Assembly, atividades de laboratório e projetos, 2013. Disponível em: <https://goo.gl/vnUOkp>. Acesso em: 12 Abril 2017. Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
264
Anais do Encontro Regional de Computação e Sistemas de Informação
Modelagem da Mão Humana para Aplicação na Mão Robótica Eduardo G. N. Façanha F1, Francisco A. P. Januário1, Davi C. M. Barreto1. 1
Fundação Centro de Análise, Pesquisa e Inovação Tecnológica (Fucapi) efacanhaf@gmail.com, prof.fjanuario.fucapi@gmail.com, davi.cmbarreto@gmail.com
Abstract. In the face of the advance of robotics that creates robots more and more similar to humans, this study aims to apply a synergy of the human hand fingers in a robotic hand. A statistical correlation and a linear regression were used to study the movements, generating a mathematical model. The work contributes to defining robotic models similar to human synergy. As a result obtained an algorithm that requires the movements required for the robotic hand for the reproduction of movements similar to human hands. Resumo. Diante do avanço da robótica que cria robôs cada vez mais parecidos com os humanos, este estudo visa aplicar a sinergia dos dedos da mão humana em uma mão robótica. Foi utilizada a correlação estatística e a regressão linear para o estudo dos movimentos, gerando um modelo matemático. O trabalho contribui para definir modelos robóticos similares à sinergia humana. Como resultado foi obtido um algoritmo que aplica os movimentos necessários na mão robótica para que reproduza movimentos similares a das mãos humanas.
1. Introdução A Interação Humano Computador (IHC) é a comunicação e relação de humanos com computadores e ocorre através de hardware e software, tendo o objetivo de prover aprendizagem do ser humano com tarefas de computação [Saad et al., 2014]. A partir do conceito de IHC, o estudo de movimentos das mãos e suas sinergias, utilizando um sistema computacional, é possível. Estudos têm sido realizados para aperfeiçoar a capacidade de manipulação de objetos por um braço robótico, como as pesquisas sobre a correlação de falanges e metacarpos da mão humana, mas poucas pesquisas têm sido realizadas sobre a individualidade do movimento de cada dedo. A sinergia dos dedos resulta em um movimento involuntário que um dedo sofre quando outro se movimenta. Santello [Santello, Flanders e Soechting, 1998] nos mostra em sua pesquisa a correlação das falanges quando uma mão está segurando um objeto. Tal sinergia pode ser melhor vista na movimentação do dedo mínimo, mostrado por Ingram [Ingram et al., 2008], e nos estudos de Liu [Liu et al., 2016] onde são apresentadas análises da dependência conjunta das falanges e da palma da mão. Este trabalho tem como principal objetivo modelar o comportamento da mão humana para aplicação em sistema robótico, permitindo que a partir da maior precisão que a sinergia dos dedos proporciona, uma pessoa possa, por exemplo, desarmar uma bomba de forma remota. Esta correlação pode ser aplicada em diversas outras aplicações, como em um exoesqueleto que poderá auxiliar, por exemplo, as mãos de um médico que sofre algum trauma em um de seus dedos e foi impedido de realizar cirurgias.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
2. Trabalhos Relacionados O trabalho de Adnan [Adnan et al., 2013] propôs o desenvolvimento de uma dataglove que é utilizada como uma ferramenta de obtenção de dados a partir da análise do comportamento dos dedos. Os métodos utilizados na dataglove desse trabalho, podem ser vistos no trabalho de Adnan [Adnan et al., 2012] que desenvolveu uma luva para realizar uma interação virtual homem-computador e escrever o alfabeto em um computador. O trabalho de Akmeliawati [Akmeliawati, Tis e Wani, 2011], baseado nos estudos de Adnan, utilizou a dataglove para propor um método de controle para manobrar cadeiras de rodas. O mesmo é o observado no trabalho de Kumar [Kumar, Rautaray e Agrawal, 2012], que por sua vez utilizou a dataglove para interagir diretamente com o cursor de um computador substituindo a utilização do mouse. Já o trabalho de Saad [Saad et al., 2014], correlaciona os dados obtidos pela dataglove em ângulos de inclinação dos dedos. A sinergia da mão é um assunto comumente estudado e diversas formas de pesquisas foram empregadas para descreve-la. Maier [Maier e Hepp-Reymond, 1995] descreve essa sinergia em seu estudo através de eletromiografia nos músculos. O estudo de Santello [Santello, Flanders e Soechting, 2002] mostra uma sinergia realizada através da correlação de falanges das mãos humanas e utiliza dessa sinergia para realizar movimentos guiados em um braço robótico.
3. Metodologia O diagrama da metodologia definida para este trabalho é apresentado na Figura 1, que consiste na criação de uma luva para coleta de dados, conhecida como datagrove, no estudo da correlação estatística para obter o coeficiente de correlação de cada dedo da mão humana em relação aos outros dedos, e na definição de um algoritmo que possa replicar em uma mão robótica a sinergia presente em uma mão humana.
Figura 1. Diagrama de metodologia da mão humana. Fonte: Próprio autor.
3.1. Luva de Coleta de dados – Dataglove A coleta de dados é realizada a partir de sensores extensômetros flexíveis – FBS (do inglês, Flexible Bend Sensors) em uma luva de algodão que são posicionados na parte superior de cada dedo, capturando a flexão das articulações interfalangeana distal (AID), articulações interfalangeana proximal (AIP) e articulações metacarpofalangeana (AMF), Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
266
respectivamente, para os dedos indicador, médio, anelar e mínimo, e articulações interfalangeanas (AI) e articulações metacarpofalangeanas (AMF) para o polegar [FAHN; SUN, 2005; INGRAM; KÖRDING; HOWARD; WOLPERT, 2018; MAIER; HEPP-REYMOND, 1995]. O sensor FBS tem como saída uma variação de voltagem dependendo da flexão que é imposta nele, podendo ser assim usado para medir a flexão dos dedos. A luva foi diretamente conectada a um computador. Para a coleta foi realizada a flexão apenas de um dedo por completo como mostrado na Figura 2. Durante este movimento são capturados 20 amostras de cada FBS e o processo se repete para os demais dedos.
Figura 2. Exemplo de coleta do dedo indicador. Fonte: Próprio autor.
3.2. Calibração do Dataglove Para a calibração, a mão com a luva foi estendida sobre uma mesa plana, como mostrado na Figura 3, durante 5 segundos para a captura dos dados dos sensores. Os dados coletados, nesta primeira etapa de calibração, são utilizados como base para definir a voltagem máxima que os sensores FBSs devem registrar para cada dedo, considerando que as pontas dos dedos estão a um ângulo de 0º em relação a palma da mão.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
267
Figura 3. Exemplo para coleta de valores máximos. Fonte: Próprio autor.
Após a calibração das voltagens máximas, segue-se para a calibração das voltagens mínimas, nesse processo a mão é fechada por completo, durante 5 segundos, como mostrado na Figura 4. Os dados, gerados durante a calibração, são utilizados para criar uma relação de valores máximos e mínimos com os ângulos de 0º a 90º, que são, aproximadamente, os limites da anatomia da mão humana [Fahn e Sun, 2005].
Figura 4. Exemplo para coleta de valores mínimos. Fonte: Próprio autor.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
268
3.3. AnĂĄlise da Correlação dos Dedos da MĂŁo Humana O coeficiente de correlação estatĂstica ĂŠ utilizado para medir o grau de correlação que um dedo tem com outro dedo, como definido na Equação 1. Este cĂĄlculo ĂŠ realizado a partir do conjunto de sinais coletados onde, a variĂĄvel đ?&#x2018;Ľ equivale ao dedo flexionado e a variĂĄvel đ?&#x2018;Ś corresponde ao outro dedo que deve ser medida a correlação. Este processo ĂŠ repetido para cada par de dedos. đ?&#x2018;Ľ đ?&#x2018;Ś đ?&#x2018;&#x203A;
đ?&#x2018;Ľđ?&#x2018;Ś â&#x2C6;&#x2019;
đ?&#x2018;&#x;= đ?&#x2018;Ľ( â&#x2C6;&#x2019;
( đ?&#x2018;Ľ)( Ă&#x2014; đ?&#x2018;&#x203A;
đ?&#x2018;Ś( â&#x2C6;&#x2019;
( đ?&#x2018;Ś)( đ?&#x2018;&#x203A;
Equação 1. Coeficiente de correlação
Os coeficientes de correlação são interpretados a partir de suas relaçþes descritas na Tabela 1 e seus valores variam de -1, que representa correlação negativa, a 1 que representa correlação positiva. Quanto mais próximo o valor de 0, menor a correlação linear. Tabela 1. Interpretação do coeficiente de correlação
R
Relação
0.9 a 1.0
Muito forte
0.7 a 0.9
Forte
0.5 a 0.7
Moderada
0.3 a 0.5
Fraca
0.0 a 0.3
DesprezĂvel
Para os coeficientes de correlação fortes ou muito fortes, sĂŁo elaboradas equaçþes da anĂĄlise de regressĂŁo linear, descrita na Equação 2, comumente utilizada para prever o valor de uma variĂĄvel dependente. Estas equaçþes definem qual o grau de flexĂŁo que cada dedo tem em relação aos mais flexionados. đ?&#x2018;Ś = đ?&#x203A;ź + đ?&#x203A;˝đ?&#x2018;Ľ Equação 2. RegressĂŁo Linear
3.4. Função do Modelo de Correlação da MĂŁo Humana O algoritmo, mostrado na Figura 5, realiza a ordenação, de forma crescente, dos valores coletados pelos FBSs e aplica a fĂłrmula de regressĂŁo linear proposta para cada par de dedos. ApĂłs a ordenação, na linha 10, um loop de 4 passos ĂŠ realizado, enviando o valor dos sensores, correspondentes Ă s flexĂľes dos dedos ordenados de forma crescente, para a função regressĂŁo, que entĂŁo realiza um loop de 3 passos, como visto na Linha 2, e aplica a equação de regressĂŁo linear proposta para esse dedo com os demais. Cada equação possui duas constantes, Îą e β, e o valor de saĂda equivale ao grau de inclinação que cada dedo deve fazer e que se repete para todos os dedos da mĂŁo. A função aqui proposta ĂŠ implementada na dataglove para que a mĂŁo robĂłtica receba apenas os movimentos que devem ser realizados.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
269
1
funcao regressao(dedox)
2
para i <- 1 até 4 faça
3
dedoy = α * dedox + β
4
returna dedoy
5
inicio
6
dedos <- indicador, médio, anelar, mínimo
7
α : constante
8
β : constante
9
ordena(dedos)
10
para i <- 0 até 4 faça
11
regressao(dedos[i])
12
fimpara
13
fim Figura 5 – Código representativo para aplicação da regressão linear Fonte: Próprio autor
4. Análise dos Resultados Experimentais Os resultados calculados na Seção 3.3 são mostrados na Tabela 2, onde o dedo X, na primeira coluna, representa o dedo flexionado, e o dedo Y, na segunda coluna, representa o dedo correlacionado. Para o dedo polegar, da primeira coluna, os valores de coeficientes de correlações variam de desprezíveis a moderados em relação aos demais. Esses valores tornam a análise para regressão linear desprezível, pois não possui uma forte correlação com os demais dedos. Para os coeficientes que possuem o polegar como dedo correlacionado, na segunda coluna, as relações foram dadas como moderadas, considerando uma taxa de erro de 15% proveniente dos sensores FBS. Os dedos indicador, médio, anelar e mínimo, compostos pelas AID, AIP e AMF, mostram uma correlação variando de forte a muito forte, possibilitando a análise de regressão linear. Tabela 2. Coeficientes de correlação.
Dedo X
Dedo Y
Coeficiente R
Polegar
Indicador
0,40833365192398
Polegar
Médio
0,243079578854001
Polegar
Anelar
0,299482272173168
Polegar
Mínimo
0,15663539721953
Indicador
Polegar
0,773903254238953
Indicador
Médio
0,905299461906730
Indicador
Anelar
0,883128875065576
Indicador
Mínimo
0,810617411352910
Médio
Polegar
0,582798370426868
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
270
Médio
Indicador
0,956027539899151
Médio
Anelar
0,953924886866967
Médio
Mínimo
0,899141150450304
Anelar
Polegar
0,641843756136339
Anelar
Indicador
0,686447585859115
Anelar
Médio
0,928920070092593
Anelar
Mínimo
0,972143302464111
Mínimo
Polegar
0,798859649207419
Mínimo
Indicador
0,688529403207588
Mínimo
Médio
0,331996636570641
Mínimo
Anelar
0,702096836754552
Como pode ser visto, na Tabela 2, a correlação de cada par de dedo não é a mesma que quando encontrados em análise contrária, quando o dedo X passa a ser o dedo Y e o dedo Y passa a ser o dedo X. Por esse motivo valores de α e β, que são utilizados para criação da equação de regressão, foram definidos para cada estado em que o dedo se encontra, estando ele como o dedo em movimento ou como o dedo correlacionado, como pode ser visto na Tabela 3. Tabela 3. Regressões Lineares.
Dedo X
Dedo Y
α
β
Indicador
Médio
0,264733921529377
51,1886743707756
Indicador
Anelar
0,209991708018418
65,1293825129083
Indicador
Mínimo
0,080851625176600
74,447911158149
Médio
Indicador
0,380018157273457
59,8108918804052
Médio
Anelar
0,436028904007765
44,7209553442376
Médio
Mínimo
0,146507198797977
68,3427443741496
Anelar
Indicador
0,0359797643114246 86,7486113931998
Anelar
Médio
0,288548215156306
47,5952725751766
Anelar
Mínimo
0,292629905286236
57,7827974517408
Mínimo
Indicador
0,110460248962157
85,1724012579454
Mínimo
Médio
0,044127661146503
74,3796466745928
Mínimo
Anelar
0,418770360390160
45,2702329588358
5. Aplicação do Algoritmo Os movimentos da mão robótica, em comunicação direta com a dataglove, não são precisos, tanto que a luva não consegue identificar com precisão todos os movimentos que são realizados pela mão. A aplicação do algoritmo que realiza a correlação entre os dedos, permitiu que a mão robótica conseguisse replicar os movimentos que deveriam ser Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
271
realizados, levando em consideração a sinergia da mão humana, mesmo quando esses movimentos não eram identificados pela dataglove. Como observado na Figura 6, foi flexionado o dedo mínimo, fazendo que os dedos anular e médio também fossem flexionados. Neste experimento, com o algoritmo de correlação, foi possível fazer com que a mão robótica reproduzisse fielmente o movimento da mão humana.
Figura 6. Resultado da aplicação do algoritmo. Fonte: Próprio autor.
6. Conclusão Neste trabalho, pode-se observar o nível de correlação que cada par de dedo possui. Foi observado que o dedo polegar tem uma correlação desprezível com os demais dedos, e a partir deste resultado foram elaboradas equações de regressão linear para cada dedo correlacionado com coeficiente de correlação forte ou muito forte, com o intuito de obter como resultado dessas equações o menor ângulo de inclinação de cada dedo. As equações de regressão linear propostas para cada correlação, foram aplicadas no algoritmo, obtendo-se resultados satisfatórios nos movimentos da mão robótica, permitindo que a mão robótica pudesse replicar a sinergia presente nas mãos humanas. Este trabalho contribui para o estudo no desenvolvimento de robôs humanoides que poderão realizar movimentos das mãos robóticas com mais semelhança com as das mãos humanas.
Referencias Adnan, N. H., Wan, K., Shahriman, A. B., Za’ba, S. K., Desa, H. and Aziz, M. A. A. (2013). "The Development of a Low Cost Data Glove by Using Flexible Bend Sensor for Resistive Interfaces”, IMiEJS2012, p. 579-587. Adnan, N. H., Wan, K., Shahriman, A. B., Zaaba, S. K., Razlan, Z. M., Hazry, D., and Aziz, A. A. (2012). “Measurement of the Flexible Bending Force of the Index and Middle Fingers for Virtual Interaction”, Procedia Engineering, 41, p. 388-394.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
272
Akmeliawati, R., Tis, F. S. B., and Wani, U. J. (2011). “Design and development of a hand-glove controlled wheelchaisr”, ICOM, p. 1-5. Kumar, P., Rautaray, S. S. and Agrawal, A. (2012). “Hand data glove: A new generation real-time mouse for human-computer interaction”. Saad, M. F. A., Ali, M. H., Wan, K., AB, D. H. S. and Razlan, Z. M. (2014). “Experimental Studies of the Correlation Between Fingers Bending Angle with Voltage Outputted From GloveMAP”, ICED, p. 437-442. Liu, Y., Jiang, L., Yang, D., Liu, Y., Zhao, J. and Liu, H. (2016). “Analysis on the Joint Independence of Hand and Wrist”, AIM, p. 31-37. Santello, M., Flanders, M. and Soechting, J. F. (1998). “Postural Hand Synergies for Tool Use”, The Journal of Neuroscience, 18(23), p. 10105-10115. Santello, M., Flanders, M. and Soechting, J. F. (2002). “Patterno of Hand Motion during Grasping and the Influence of Sensory Guidance”, The Journal of Neuroscience, 22(4), p. 1426-1435. Fahn, C. and Sun H. (2005). “Development of a Data Glove With Reducing Sensors Based on Magnetic Induction”, In: IEEE Transactions on Industrial Electronic, vol. 52, p. 585-594. Maier, M. A. and Hepp-Reymond, M.-C. (1995). “EMG Activation Patterns During Force Production in Precision Grip II. Muscular Synergi in the Spatial and Temporal Domain”, In: Exp Brain Res (1995), p. 103:123-126. Ingram, J. N., Körding, K. P., Howard, I. S. and Wolpert, D. M. (2008). “The Statistics of Natural Hand Movements”, In: Exp Brain Res (2008) 188:223–236.
Manaus, 25 a 27 de maio de 2017 ISSN 2238-5096
273