representaÇÃo computacional de dados por …€¦ · representaÇÃo computacional de dados por...

4
Departamento de Matemática REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR LOCALIZAÇÃO E TEMPO Aluno: Thiago Carneiro Ribeiral Orientador: Sinésio Pesco Introdução Com avanço das tecnologias de coleta, transmissão e armazenamento de dados a área de ‘Big Data’ cresce com atribuições nos mais diversos domínios de pesquisa . E para tratar com grandes quantidades de dados é preciso, entre diversos outros fatores, estruturas de dados que guardem e fornecem as informações da maneira mais eficiente possível, principalmente nos requerimentos de tempo e espaço de memória. Mais especificamente, ao tratar de dados geográficos e temporais é preciso de uma estrutura capaz de lidar com essas 3 dimensões: latitude, longitude e tempo. Esse é um problema comum ao rastrear o movimento de pessoas, carros, animais ou até eventos. Neste trabalho foi estudado como a estrutura em árvore quadtree acompanhada de ordenação dos elementos por horário é uma possível solução para esse problema. Além disso, foi feito um protótipo utilizando o framework ‘AngularJs’, a plataforma ‘NodeJs’ e o ‘mapbox’ como provedor de mapas para testar a solução em uma aplicação de tempo real. Objetivo Construir um protótipo capaz de representar visualmente dados por coordenada geográfica e tempo. Considerando uma estrutura de dados que otimize o armazenamento, inserção e principalmente a consulta de muitos dados. E uma infraestrutura capaz de obter as informações, exibi-las em um mapa e reagir a comandos básicos do usuário em tempo real. Mais especificamente, dado um ponto geográfico e um intervalo de horário escolhido devem ser exibidos todos os dados próximos ao ponto e dentro do intervalo de tempo. Desenvolvimento A necessidade de estrutura de dados para a o tratamento dos dados é clara, pois torna-se inviável calcular a distância entre o ponto requerido pelo usuário e todos os pontos de localizações já registradas, além de verificar se está no intervalo de horário desejado, a medida que a quantidade de dados cresce. Uma vez que essa solução mais simples possui complexidade linear. Assim, esse tipo de problema requer uma ordenação ou agrupamento dos dados registrados, facilitando a busca. Pensando nisso, foi analisada a eficiência de uma quadtree para cumprir esse papel. A quadtree é uma estrutura de dados em árvore capaz de particionar um espaço bidimensional. A árvore é composta por nós, cada nó representa uma região do espaço e pode possuir zero ou quatro filhos Os filhos dividem a região do pai em quatro sub regiões de mesmo tamanho e sem intersecções: nordeste, sudeste, sudoeste e noroeste . Quando um nó é terminal (não possui filhos) ele guarda em um vetor todos os dados pertencentes a sua região. Assim, é possível realizar de forma eficiente a consulta dos dados próximos ao ponto requisitado e a buscar em qual região um dado novo será inserido.

Upload: others

Post on 19-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR …€¦ · REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR LOCALIZAÇÃO E TEMPO Aluno: Thiago Carneiro Ribeiral Orientador: Sinésio Pesco

Departamento de Matemática

REPRESENTAÇÃO COMPUTACIONAL DE DADOS PORLOCALIZAÇÃO E TEMPO

Aluno: Thiago Carneiro RibeiralOrientador: Sinésio Pesco

Introdução

Com avanço das tecnologias de coleta, transmissão e armazenamento de dados a áreade ‘Big Data’ cresce com atribuições nos mais diversos domínios de pesquisa . E para tratarcom grandes quantidades de dados é preciso, entre diversos outros fatores, estruturas de dadosque guardem e fornecem as informações da maneira mais eficiente possível, principalmentenos requerimentos de tempo e espaço de memória. Mais especificamente, ao tratar de dadosgeográficos e temporais é preciso de uma estrutura capaz de lidar com essas 3 dimensões:latitude, longitude e tempo. Esse é um problema comum ao rastrear o movimento de pessoas,carros, animais ou até eventos. Neste trabalho foi estudado como a estrutura em árvorequadtree acompanhada de ordenação dos elementos por horário é uma possível solução paraesse problema. Além disso, foi feito um protótipo utilizando o framework ‘AngularJs’, aplataforma ‘NodeJs’ e o ‘mapbox’ como provedor de mapas para testar a solução em umaaplicação de tempo real.

Objetivo

Construir um protótipo capaz de representar visualmente dados por coordenadageográfica e tempo. Considerando uma estrutura de dados que otimize o armazenamento,inserção e principalmente a consulta de muitos dados. E uma infraestrutura capaz de obter asinformações, exibi-las em um mapa e reagir a comandos básicos do usuário em tempo real.Mais especificamente, dado um ponto geográfico e um intervalo de horário escolhido devemser exibidos todos os dados próximos ao ponto e dentro do intervalo de tempo.

Desenvolvimento

A necessidade de estrutura de dados para a o tratamento dos dados é clara, pois torna-seinviável calcular a distância entre o ponto requerido pelo usuário e todos os pontos delocalizações já registradas, além de verificar se está no intervalo de horário desejado, amedida que a quantidade de dados cresce. Uma vez que essa solução mais simples possuicomplexidade linear. Assim, esse tipo de problema requer uma ordenação ou agrupamento dosdados registrados, facilitando a busca. Pensando nisso, foi analisada a eficiência de umaquadtree para cumprir esse papel.

A quadtree é uma estrutura de dados em árvore capaz de particionar um espaçobidimensional. A árvore é composta por nós, cada nó representa uma região do espaço e podepossuir zero ou quatro filhos Os filhos dividem a região do pai em quatro sub regiões demesmo tamanho e sem intersecções: nordeste, sudeste, sudoeste e noroeste . Quando um nó éterminal (não possui filhos) ele guarda em um vetor todos os dados pertencentes a sua região.Assim, é possível realizar de forma eficiente a consulta dos dados próximos ao pontorequisitado e a buscar em qual região um dado novo será inserido.

Page 2: REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR …€¦ · REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR LOCALIZAÇÃO E TEMPO Aluno: Thiago Carneiro Ribeiral Orientador: Sinésio Pesco

Departamento de Matemática

Figura 1 – Quadtree particionando o espaço geográfico

Um incremento necessário na quadtree foi cada nó possuir até k (um númeroconfigurável) pontos em seu vetor e cada ponto novo da região é adicionado ao vetor. Porémcaso haja mais de k pontos naquela partição, o nó deixa de ser terminal, seus 4 filhos sãocriados e os pontos são divididos entre estes. Isso acontece toda vez que um novo dado éinserido a menos que a região do novo nó possua tamanho em latitude menor que o intervalomínimo que também pode ser configurado, evitando que uma partição seja pequena demais edificulte a visualização dos dados, nesse caso o dado é adicionado ao vetor sem que hajasubdivisão. Este incremento permite que áreas muito densas de informações sejam maisparticionadas que as áreas menos densas. Assim é evitado o gasto de memória com áreasvazias, o tamanho das partições se adapta a quantidade de dados e facilita a visualização econsulta.

Além da organização por localização foi também necessário a organização por horário,já que o usuário deve poder escolher o intervalo de horário de interesse. Para isso, os vetoresque guardam os pontos da sub região em cada nó são ordenados por horário (considerandoapenas horas) através do ordenação por inserção.

Portanto na inserção e na busca tem-se log4(m), onde m é o número de partiçõesexistentes, como complexidade para encontrar a partição correta quando a árvore estivercompleta. Quando há uma concentração de dados muito alta apenas em uma partição e asdemais estão vazias essa complexidade torna-se linear relativo a m. O caso médio temcomplexidade de m.log(m) de acordo com [1]. No entanto, nota-se que a complexidade variade acordo com a quantidade de partições e não a de dados, sendo o primeiro ordens de

Page 3: REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR …€¦ · REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR LOCALIZAÇÃO E TEMPO Aluno: Thiago Carneiro Ribeiral Orientador: Sinésio Pesco

Departamento de Matemática

grandeza menor que o último quando há muitos dados. Além de ser limitado, pois latitude elongitude são limitadas e existe um tamanho mínimo para uma região.

Adicionalmente, deve-se preocupar com a complexidade de busca e inserção referenteao tratamento dos dados no vetor dos nós terminais e somá-la com a complexidade deencontrar o nó terminal já discutida. Na consulta, tem-se um vetor já ordenado por horárioentão para obter o intervalo de horário desejado basta realizar uma busca binária paraencontrar o limite inferior do intervalo e outra para o limite superior. Logo, tem-se log2(n)como complexidade da busca binária, onde n é a quantidade de dados no vetor. Já na inserção,tem-se a colocação de um novo elemento em uma lista já ordenada, pois toda vez que umnovo ponto é inserido o vetor já vai estar previamente ordenado, se não estiver vazio. Entãobasta encontrar a posição onde o novo irá se encaixar, portanto uma ordenação por inserção decomplexidade linear. Quando o vetor passa do limite configurado e o nó é particionado acomplexidade continua sendo linear, bastando percorrer o vetor ordenado e mover cada pontopara sua partição correspondente sem alterar a ordem dos dados de uma mesma sub região.

Com a intenção de testar a estrutura proposta foi desenvolvido um protótipo capaz deabrir uma página web executado por um servidor local. Utilizando o AngularJs comoframework da aplicação e o NodeJs para executar o servidor em tempo real, ambos pelafacilidade de uso e configuração além da alta compatibilidade entre sí. O mapa paranavegação foi obtido com o provedor de mapas open-source mapbox. A aplicação foidesenvolvida majoritariamente em javascript e typescript e os dados para teste foram geradosaleatoriamente e projetados para se concentrarem na cidade do rio de janeiro.

O uso da aplicação é bem simples, basta escolher o intervalo de horários em uma caixade texto. Ao clicar em um ponto do mapa, todos os dados da partição respectiva são exibidosem suas localizações no , através da estrutura e algoritmos discutidos. Todos os pontos dapartição também são listados abaixo do mapa com suas respectivas informações e basta clicarem um para ser redirecionado para sua localização. Abaixo a figura 2 monstra a aplicaçãoexibindo os dados entre 19 e 20 horas na região delimitada

Figura 2 – Teste de aplicação

Conclusões

Por fim tem-se um protótipo de uso simples comprovando o funcionamento da estruturade dados e algoritmos propostos. Servindo de base para uma aplicação que trate do problema

Page 4: REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR …€¦ · REPRESENTAÇÃO COMPUTACIONAL DE DADOS POR LOCALIZAÇÃO E TEMPO Aluno: Thiago Carneiro Ribeiral Orientador: Sinésio Pesco

Departamento de Matemática

de gerenciar dados geográficos e temporais. Também foi mostrado a eficiência de consultas einserção de dados na estrutura de complexidade logarítmica na primeira e linear na última.

Referências

1 - FINKEL, Raphael. Quad Trees: A Data Structure for retrieval on Composite Keys.Acta Informática 4, 1-9 . 1974.