Resumo |
O projeto tem como objetivo desenvolver um método paralelo para analisar dados espaço-temporais e obter estatísticas referentes a estes. A modelagem dos dados é feita usando um cubo espaço-temporal, com dimensões de espaço em graus e tempo em dias. É utilizada uma estatística Gi* para avaliar os hot-spots do conjunto, levando assim em consideração não só os eventos no local, mas nas redondezas também. Hot-spot é o nome dado a uma região no cubo espaço-temporal onde existe uma grande concentração de eventos. Um evento é um ponto de interesse, cujo significado depende do problema avaliado. Por exemplo, pode-se definir como um evento um assalto que ocorreu em determinado local e hora. Dado então um conjunto de eventos, uma análise demonstraria as regiões e horários mais perigosos da cidade, informação que poderia ser utilizada no combate ao crime. Como a quantidade de dados para processamento é muito grande, é necessário paralelismo para alcançar maior eficiência. Buscando maior abstração, é utilizado o modelo de programação paralelo Map-Reduce, aplicável em problemas que podem ser divididos em duas fases, map (aplicar soluções individuais em partes do conjunto) e reduce (união dos resultados individuais em resultados globais). O método proposto usa Apache Spark, que já fornece API’s para linguagens conhecidas, com conceitos de Map-Reduce já implementados, além de possibilitar a utilização de arquiteturas paralelas para input de arquivos, necessárias considerando a quantidade de dados que seriam processados nesse tipo de problemas. Entretanto, para alcançar resultados mais refinados, é necessário utilizar de estratégias alternativas, a fim de acelerar mais ainda o processamento. Uma solução é processar partições do cubo, e não cada célula. Assim, a quantidade de cálculos feitos localmente de forma simultânea é maior, aprimorando o paralelismo. Para os testes do modelo proposto, foram utilizados dados de viagens de taxi na cidade de New York no ano de 2015, disponíveis para acesso público na internet. Cada evento caracteriza um desembarque de um passageiro em um dado lugar e tempo na cidade. A análise então é aplicada para buscar os locais e horas com maior concentração de desembarque de passageiros. Após os testes, o algoritmo proposto alcançou os objetivos, conseguindo processar a quantidade enorme de dados de forma eficiente. A estratégia alternativa citada também se mostrou interessante, conseguindo ser até 52 vezes mais rápida do que a solução mais simples quando uma grande quantidade de cálculos era necessária. |