BRENO NAODI KUSUNOKI
IDENTIFICAÇÃO DE TRAJETÓRIAS PADRÕESE DE PONTOS INTERMEDIÁRIOS EM DADOS
ESPAÇO-TEMPORAIS UTILIZANDO BUSCAPOR SIMILARIDADE
LONDRINAŰPR
2013
BRENO NAODI KUSUNOKI
IDENTIFICAÇÃO DE TRAJETÓRIAS PADRÕESE DE PONTOS INTERMEDIÁRIOS EM DADOS
ESPAÇO-TEMPORAIS UTILIZANDO BUSCAPOR SIMILARIDADE
Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.
Orientador: Prof. Dr. Daniel dos Santos Kas-ter
LONDRINAŰPR
2013
Breno Naodi KusunokiIDENTIFICAÇÃO DE TRAJETÓRIAS PADRÕES E DE PONTOS INTER-
MEDIÁRIOS EM DADOS ESPAÇO-TEMPORAIS UTILIZANDO BUSCA PORSIMILARIDADE/ Breno Naodi Kusunoki. Ű LondrinaŰPR, 2013-
Orientador: Prof. Dr. Daniel dos Santos Kaster
Ű Universidade Estadual de Londrina, 2013.
1. Busca por similaridade. 2. Trajetória padrão. 3. Itinerário padrão. I.Prof. Dr. Daniel dos Santos Kaster II. Universidade Estadual de Londrina. III.Faculdade de Ciência da Computação. IV. IDENTIFICAÇÃO DE PADRÕES DEITINERÁRIOS E DE PONTOS INTERMEDIÁRIOS EM DADOS ESPAÇO-TEMPORAIS UTILIZANDO BUSCA POR SIMILARIDADE.
CDU 02:141:005.7
BRENO NAODI KUSUNOKI
IDENTIFICAÇÃO DE TRAJETÓRIAS PADRÕESE DE PONTOS INTERMEDIÁRIOS EM DADOS
ESPAÇO-TEMPORAIS UTILIZANDO BUSCAPOR SIMILARIDADE
Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.
BANCA EXAMINADORA
Prof. Dr. Daniel dos Santos KasterUniversidade Estadual de Londrina
Orientador
Prof. Dr. Vitor Valério de S. CamposUniversidade Estadual de Londrina
Prof. Dr. Jacques Duílio BrancherUniversidade Estadual de Londrina
LondrinaŰPR, 24 de novembro de 2013
LONDRINAŰPR
2013
Dedico este trabalho aos meus pais, Catarina e Paulo, que me deram todo o suporte que
precisei até o presente momento.
AGRADECIMENTOS
Agradeço primeiramente aos meus pais, Catarina e Paulo, por todo apoio e dedi-
cação que contribuiram para a conclusão deste trabalho.
Ao meu orientador, professor Dr. Daniel dos Santos Kaster, pelo grande apoio,
orientação e principalmente pela grande oportunidade que ele me deu em conjunto com
o Giovani Benedetti Penha e a Veltec Soluções Tecnológicas S/A.
Agradeço a Izabel da secretaria acadêmica do CCE, por esclarecer as dúvidas
referentes a todo tipo de documentação durante a graduação e também agradeço a Valdete
Matos por todo apoio e momentos de descontração.
A todos que me ajudaram durante a graduação e principalmente ao Arthur Henri-
que Coutinho, Marcos Okamura, Luiz Guilherme Castilho Martins, Rafael Seidi Shigue-
oka, Ernesto Yuiti Saito, Pedro Sena Tanaka e Hélio Albano de Oliveira que ajudaram e
me acompanharam durante os últimos anos da graduação.
Por Ąm, agradeço a todos os professores e funcionários do departamento que de-
sempenham suas funções em sua totalidade.
Todas as vitórias ocultam uma abdicação. (Simone de Beauvoir)
KUSUNOKI, B. N.. IDENTIFICAÇÃO DE TRAJETÓRIAS PA-
DRÕES E DE PONTOS INTERMEDIÁRIOS EM DADOS
ESPAÇO-TEMPORAIS UTILIZANDO BUSCA POR SIMILARI-
DADE. 60 p. Trabalho de Conclusão de Curso (Graduação). Bacharelado em
Ciência da Computação Ű Universidade Estadual de Londrina, 2013.
RESUMO
O problema de reconhecimento de padrões é extremamente difundido e exis-tem inúmeros trabalhos que abordam esse problema e suas variantes. Esta pesquisaconsiste na busca de padrões de itinerários e de pontos intermediários em dadosespaço-temporais utilizando busca por similaridade e técnicas de mineração de da-dos. A principal motivação para esta pesquisa foi a possibilidade de solucionar umproblema real, referente ao problema de reconhecimento de padrões, onde o pro-cesso de se encontrar esses padrões pode ser manual e oneroso. O objetivo Ąnal é oreconhecimento dos padrões que foram citados anteriormente de forma automática.
Palavras-chave: Busca por similaridade. Trajetória padrão. Itinerário pa-
drão.
KUSUNOKI, B. N.. PATTERN RECOGNITION OF TRAJECTO-
RIES AND INTERMEDIATE POINTS IN SPATIO-TEMPORAL
DATA USING SIMILARITY SEARCH.. 60 p. Final Project (Under-
graduation). Bachelor of Science in Computer Science Ű State University of
Londrina, 2013.
ABSTRACT
The problem of pattern recognition is extremely widespread and exist inmany works dealing with this problem and their variants. The research consistsin Ąnding itinerary and intermediate point patterns in space-temporal data usingsimilarity search and data mining techniques. The main motivation for this researchis the possibility to solve real problems, about the pattern recognition, where thethe process to Ąnd these patterns can be manual and expensive. The Ąnal objectiveis the pattern recognition that were mentioned earlier automatically.
Keywords: Similarity search. Trajectory pattern. Itinerary pattern.
LISTA DE ILUSTRAÇÕES
Figura 1 Ű Visualização de um ponto no mapa. . . . . . . . . . . . . . . . . . . . . 28
Figura 2 Ű Ilustração de alguns centroides representados pela letra M. . . . . . . . 28
Figura 3 Ű Exemplo da árvore de decisão para problema de ir jantar no restaurante. 31
Figura 4 Ű Direcional habilitado (a) e Direcional desligado (b). . . . . . . . . . . . 33
Figura 5 Ű Ilustração das regiões. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figura 6 Ű Ilustração dos pontos classiĄcados. . . . . . . . . . . . . . . . . . . . . 36
Figura 7 Ű Saída do programa de visualização utilizando R. . . . . . . . . . . . . . 40
Figura 8 Ű A visualização do programa desenvolvido com Google Maps. . . . . . . 41
Figura 9 Ű Visualização dos pontos iniciais e Ąnais dos itinerários cadastrados. . . 42
Figura 10 ŰTrajetória com ruídos (a) e Itinerário cadastrado (b). . . . . . . . . . . 42
Figura 11 ŰPontos de uma determinada trajetória. . . . . . . . . . . . . . . . . . . 45
Figura 12 ŰTotal de pontos obtidos. . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figura 13 Ű Intermediários obtidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figura 14 ŰConstrução dos pontos de uma determinada trajetória. . . . . . . . . . 50
Figura 15 ŰComparação de trajetórias. . . . . . . . . . . . . . . . . . . . . . . . . 51
Figura 16 Ű Ilustração do itinerário em vermelho e o padrão reconhecido em azul. . 55
Figura 17 ŰVelocidade do veículo entre dois envios de posições. . . . . . . . . . . . 56
Figura 18 Ű Ilustração dos pontos intermediários em azul. . . . . . . . . . . . . . . 56
Figura 19 Ű Ilustração da comparação da distância entre pares de posições. . . . . . 58
Figura 20 Ű Ilustração da comparação de trajetórias utilizando área dos polígonos. . 58
LISTA DE TABELAS
Tabela 1 Ű Experimento com 2 bases de dados da mesma empresa em número de
pontos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Tabela 2 Ű Experimento com 2 bases de dados da mesma empresa em porcentagens. 37
Tabela 3 Ű Análise utilizando conjuntos de empresas distintas em número de pontos. 38
Tabela 4 Ű Análise utilizando conjuntos de empresas distintas em porcentagens. . 39
LISTA DE ABREVIATURAS E SIGLAS
API Application Programming Interface.
GPS Global Positioning System.
GIS Geographic Information System.
SAD69 South American Datum 1969.
SQL Structured Query Language.
SUMÁRIO
1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2 Objetivos e contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2 Fundamentação Teórica . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1 Geoprocessamento . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1.1 Coordenada geográĄca . . . . . . . . . . . . . . . . . . . 27
2.1.1.2 Ponto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1.3 Posição . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1.4 Centroide . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.1.1.5 Trajetória . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.1.6 Constante de mapa . . . . . . . . . . . . . . . . . . . . . 29
2.1.2 Mineração de dados . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.2.1 Descoberta de Conhecimento em Banco de Dados . . . . 30
2.1.2.2 Descoberta de padrões em séries temporais . . . . . . . . 30
2.1.3 Busca por similaridade . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.4 Dados espaço-temporais . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.5 Árvore de decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Descrição do problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.1 Conceitos relacionados ao problema . . . . . . . . . . . . . . . . . 32
2.2.1.1 Posição . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.1.2 Itinerário . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.1.3 Direcional . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.1.4 Região . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.2 Análise dos dados complexos . . . . . . . . . . . . . . . . . . . . . 34
2.2.2.1 Análise dos dados utilizando os métodos de classiĄcação
existentes no Weka . . . . . . . . . . . . . . . . . . . . . 35
2.2.2.2 Análise de bases de dados distintas . . . . . . . . . . . . 37
2.2.2.3 Resultado da análise . . . . . . . . . . . . . . . . . . . . 39
2.2.2.4 Visualização dos dados complexos no plano geográĄco . 39
2.3 Trabalhos correlatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.4 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.1 Utilização de árvores de decisão para se obter os pontos iniciais e
Ąnais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.2 Detecção dos pontos de início e Ąm das trajetórias através do tempo
parado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3 Proposta de Solução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1 Pré-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2 Construção das trajetórias descritas pelos veículos . . . . . . . . . . . . . 49
3.3 Construção dos pontos de cada trajetória . . . . . . . . . . . . . . . . . . 49
3.4 Construção das regiões . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.5 Comparação e identiĄcação das trajetórias mais frequentes . . . . . . . . 50
3.6 Extrair os itinerários padrões . . . . . . . . . . . . . . . . . . . . . . . . 51
4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
23
1 INTRODUÇÃO
Na última década a utilização de técnicas de geoprocessamento cresceu substanci-
almente. Este crescimento pode ser observado pelo grande número de ferramentas criadas
como Google Earth1, Google Maps2, ArcGIS3 que podem ser utilizadas na cartograĄa,
fotogrametria, geoestatística, banco de dados geográĄcos, WebMapping4, SIG(Geographic
Information System) e auxiliando também em tomadas de decisão fundamentadas nas
informações extraídas através das ferramentas citadas.
Atualmente, existem diversas soluções que utilizam dados espaço-temporais para
rastreamento e gerenciamento de veículos de forma inteligente visando a diminuição de
gastos com manutenções, combustível, pneus, entre outros fatores que poderiam ser evi-
tados com o uso correto do veículo. A pesquisa está ambientada na área de buscas por
similaridade em dados espaço-temporais e será baseada em um problema real que ocorre
em uma dessas soluções existentes no mercado.
1.1 Motivação
A motivação da pesquisa é que em um dos sistemas de gerenciamento de frotas
que existem no mercado, há algumas funcionalidades que dependem do cadastramento
manual e exaustivo dos itinerários a serem percorridos pelos veículos, pois sem esses
itinerários delineados previamente, não é possível inferir se o veículo está percorrendo o
trajeto correto, se o mesmo está na velocidade correta para o trecho, se o motorista está
gastando combustível além do necessário, entre outras conclusões.
O problema consiste em encontrar itinerários padrões a partir de uma base de da-
dos espaço-temporais e efetuar a extração de pontos intermediários, que podem ser pontos
de ônibus de transporte coletivo ou paradas obrigatórias em viagens interestaduais, dos
itinerários identiĄcados de forma automática. Esses dados são gerados a partir de veículos
que possuem um módulo de GPSGlobal Positioning System que envia posições a cada um
minuto e quarenta e cinco segundos ou em intervalos menores quando o direcional do
módulo está ativado. O direcional é uma conĄguração do módulo que quando habilitada,
o veículo passa a reportar uma maior quantidade de posições quando o mesmo efetua
1 Google Earth é um aplicativo que permite ao utilizador visualizar e procurar por lugares de seuinteresse, possibilitando a visualização de imagens de satélite, mapas, terrenos, edifícios 3D.
2 Google Maps é um produto que permite ao usuário traçar rotas para lugares, pesquisar por lugares deinteresse como hotéis, restaurantes, lojas, permite também uma visão no nível da rua do local atravésdo Google Street View.
3 ArcGIS é uma plataforma para criação e gerenciamento de soluções através da aplicação do conheci-mento geográĄco.
4 WebMapping é o processo de criação, implementação e geração de mapas para World Wide Web.
24 Capítulo 1. Introdução
curvas com mais de vinte e cinco graus. Essas posições que descrevem em que localidade
o automóvel se encontra no globo terrestre contêm informações como latitude, longitude,
data em que foi enviada, velocidade do veículo, direção em graus, eventos como ignição
ligada ou desligada, porta aberta ou fechada, entre outras. Essas posições são enviadas
para um gateway onde são processadas e persistidas em sistemas de gerenciamento de
banco de dados relacionais e que são utilizadas pelo software existente para efetuar o
gerenciamento e rastreamento de veículos.
1.2 Objetivos e contribuições
O principal objetivo deste trabalho de conclusão de curso foi obter uma solução
que encontrasse itinerários e pontos intermediários padrões de tal forma que a solução
fosse extraída dos dados espaço-temporais e processada gerando as trajetórias de cada
itinerário juntamente com os respectivos pontos intermediários.
O resultado deste trabalho pode ser utilizado em diversos problemas que os ob-
jetivos são a identiĄcação de trajetórias e locais padrões, de acordo com as trajetórias
feitas por quaisquer objetos móveis que tenham dispositivos para reportar as posições
geográĄcas dos mesmos juntamente com o instantes em que elas foram enviadas, como na
identiĄcação de vias públicas para se implantar faixas exclusivas para ônibus, utilizando a
identiĄcação das trajetórias frequentes, descritas por ônibus de transporte coletivo, onde
há um grande número de localidades onde os ônibus permanecem por um longo tempo
sem desenvolver um velocidade maior que, por exemplo, vinte quilômetros por hora ou
não se deslocam mais que duzentos metros.
Em se tratando de aplicações reais, as análises sempre estarão sujeitas a erros,
visto que, os bancos de dados em sua maioria detêm dados com ruídos e por portanto,
foi necessário efetuar um pré-processamento para Ąltrar os dados ruidosos dos dados
Ądedignos.
Um dos objetivos especíĄcos é o reconhecimento dos pontos onde cada itinerário
começa e termina, para que se possa delimitar todas as trajetórias que passam por esses
pontos e também identiĄcar e remover outliers.
Outro objetivo é a identiĄcação de regiões semelhantes entre as trajetórias para
inferir se determinadas regiões são pontos intermediários ou são somente pontos de tráfego
intenso em determinados horários. Por Ąm a identiĄcação dos pontos intermediários de
cada itinerário padrão reconhecido, que podem ser pontos de transporte coletivo de deter-
minada linha de ônibus, locais de entrega de mercadorias, pontos de parada em viagens
interestaduais, entre outros.
1.3. Organização do trabalho 25
1.3 Organização do trabalho
No capítulo 2 contém toda a fundamentação teórica para este trabalho de conclusão
de curso, a descrição do problema, trabalhos correlacionados a proposta de pesquisa e os
experimentos realizados; no capítulo 3 está descrita a proposta de solução do problema; no
capítulo 4 contém os resultados obtidos e no capítulo 5 consta a conclusão e os trabalhos
futuros.
27
2 FUNDAMENTAÇÃO TEÓRICA
2.1 Conceitos
Antigamente, as informações como a disposição das malhas ferroviárias e dos recur-
sos minerais em determinada região eram armazenadas somente em documentos e mapas
em papel. Com o advento da tecnologia de geoprocessamento, foi possível transcrever e
armazenar essas informações em ambiente computacional de tal forma que as mesmas pu-
dessem ser representadas e analisadas com maior facilidade. Desta maneira, surgiu o geo-
processamento. Com o aumento das informações coletadas e o avanço no armazenamento
de grandes quantidades de dados, surgiu a necessidade de se ter formas de se proces-
sar e extrair informações relevantes de forma automática que antes eram desconhecidas,
utilizando técnicas de KDD(Knowledge-Discovery in Databases), mais especiĄcamente,
mineração de dados.
2.1.1 Geoprocessamento
Geoprocessamento é um processo que utiliza técnicas com fundamentação matemá-
tica e computacional para o processamento dos dados geográĄcos e que vem inĆuenciando
de forma crescente várias áreas como cartograĄa, telecomunicações, transportes, planeja-
mento urbano, análise de recursos naturais possibilitando assim o processamento, análise
e tomadas de decisão baseadas nas informações retiradas desses dados [1].
2.1.1.1 Coordenada geográĄca
As coordenadas (a latitude e a longitude) de um ponto sobre a superfície da Terra,
se referem ao equador e a um meridiano-origem. No âmbito deste trabalho a longitude
será representada por � é a latitude por �.
2.1.1.2 Ponto
Um ponto �� é composto por 2 coordenadas geográĄcas(� e �). A Ągura 1 mostra
como é representado o ponto no mapa.
2.1.1.3 Posição
Uma posição é composta pelas coordenadas x e y contendo também quando a
posição foi enviada.
�������(�, �, ����ℎ���) (2.1)
28 Capítulo 2. Fundamentação Teórica
Figura 1: Visualização de um ponto no mapa.
2.1.1.4 Centroide
Centroide é o centro de gravidade de uma determinada unidade geográĄca. Na
geometria o centroide é um ponto que deĄne o centro geométrico de uma forma, se a
mesma possuir uma seção homogênea o centroide coincidirá com o centro de massa e se o
corpo não for homogêneo e se o mesmo for submetido a um campo gravitacional constante
o centroide será o centro de gravidade [2].
Figura 2: Ilustração de alguns centroides representados pela letra M.
Se tratando de dados geográĄcos o centroide pode ser calculado pelos seguintes
passos:
1. Converter lat1(latitude) e lng1(longitude) de graus para radianos.
���1 = ���1 ∗ Þ/180
���1 = ���1 ∗ Þ/180(2.2)
2. Converter lat1/lng1 para coordenadas cartesianas para primeira posição.
�1 = ���(���1) ∗ ���(���1)
�1 = ���(���1) ∗ (���1)
�1 = ���(���1)
(2.3)
2.1. Conceitos 29
3. Repetir 1 e 2 para todas as posições para obter o centroide das mesmas.
4. Calcular o peso total de todas as posições.
(� = �1 + �2 + �3 + ... + ��)/�
(� = �1 + �2 + �3 + ... + ��)/�
(� = �1 + �2 + �3 + ... + ��)/�
(2.4)
5. Converter a média de x, y, z de coordenadas para latitude e longitude.
��� = ����2(�, �)
ℎ�� = ����(� ∗ � + � ∗ �)
��� = ����2(�, ℎ��)
(2.5)
6. Converter lat e lng para graus.
��� = ��� ∗ 180/Þ
��� = ��� ∗ 180/Þ(2.6)
2.1.1.5 Trajetória
Uma trajetória, no contexto deste trabalho, é a evolução de um objeto no espaço
em um determinado intervalo de tempo e pode ser deĄnida por uma sequência Ąnita
de posições ordenadas cronologicamente, ����� : ��1→ ��
2→ · · · → ��
�, cada posição
��� ∈ �����.
2.1.1.6 Constante de mapa
A constante de mapa C, também chamada de grau geodésico, é um valor aproxi-
mado resultante do cálculo do comprimento da circunferência da terra dividido por 360
graus, representado na fórmula 2.7.
C =2Þ�
360(2.7)
Levando em consideração que o raio da terra é de 6378160 metros, igual ao semi-
eixo maior do modelo de coordenadas SAD69, temos:
C =2× 3.141592(Þ)× 6378160�
360∼= 11320 ������ (2.8)
30 Capítulo 2. Fundamentação Teórica
2.1.2 Mineração de dados
Nas últimas décadas grandes organizações têm gerado uma grande quantidade de
dados que podem ser interpretáveis por computadores com sistemas de gerenciamento
de banco de dados, para que o este processamento seja possível, existe a tecnologia de
banco de dados que disponibiliza linguagens de consulta como a SQL(Structured Query
Language). O problema com a linguagem de consulta estruturada é que ela parte do
pressuposto que o usuário tem conhecimento do esquema da base de dados. A mineração
de dados é o processo de se obter informações antes desconhecidas à partir de padrões
ou regras em bases de dados de grande volume [3]. Para Tan, a mineração de dados
é o processo automático de descoberta de informações úteis em grandes quantidades de
dados que não eram conhecidas antes da aplicação das técnicas de extração de informações
relevantes da base de dados [4].
2.1.2.1 Descoberta de Conhecimento em Banco de Dados
A descoberta de conhecimento em bancos de dados(Knowledge Discovery in Data-
bases), este processo é composto normalmente por seis etapas, seleção dos dados a serem
processados, remoção de ruídos, enriquecimento, transformação, mineração e a constru-
ção dos relatórios e apresentação dos resultados. Destes resultados pode ser obtido novas
informações como, regras de associação, padrões seqüenciais e árvores de classiĄcação ou
decisão. Os conhecimentos descobertos durante a garimpagem de dados podem ser descri-
tos como regras de associação, hierarquias de classiĄcação, padrões seqüenciais, padrões
com séries temporais e clusterização [3].
2.1.2.2 Descoberta de padrões em séries temporais
As séries temporais são seqüências de acontecimentos, sendo que cada evento pode
ser um tipo imutável de uma determinada transação. Na análise das séries temporais,
diversos padrões podem ser encontrados analisando as seqüências e as sub-seqüências.
[??]. Séries podem ser comparadas por meio da deĄnição de medidas de similaridades
para tentar prever o comportamento da bolsa de valores, por exemplo [5].
2.1.3 Busca por similaridade
A busca por similaridade surgiu da necessidade de se ter consultas mais inteligen-
tes, que possam comparar dados complexos e estabelecer relações de similaridade entre
eles. Esse tipo de busca pode ser utilizado para veriĄcar semelhanças entre imagens, ví-
deos, séries temporais, dados genéticos, entre outros dados complexos [6].
Uma das aplicações da busca por similaridade é a detecção de semelhanças entre
imagens médicas como ressonância magnética, mamograĄa e tomograĄa. Essa busca pode
2.1. Conceitos 31
auxiliar o diagnóstico do paciente, pois o médico pode recuperar imagens semelhantes da
base de dados, comparar com a do paciente e veriĄcar os diagnósticos de cada imagem
recuperada ajudando o médico na tomada de decisão e no prognóstico [7, 8].
2.1.4 Dados espaço-temporais
Antes, pesquisas em modelos de dados espaciais e temporais eram desenvolvidas
separadamente, atualmente essas pesquisas estão correlacionadas. Quando existe a inte-
gração de espaço e tempo, temos dados geométricos evoluindo ao longo do tempo. Em
banco de dados existem três abstrações fundamentais de dados espaço-temporais, pontos
que descrevem a localização de um objeto, linhas que descrevem conexões no espaço ou
a evolução de determinados objetos no espaço-tempo que podem ser representadas como
polilinhas e regiões onde a medida é relevante representadas por polígonos [9].
2.1.5 Árvore de decisão
Árvores de decisão são estruturas que podem ser utilizados para aprendizagem e
também para tomada de decisões de acordo com a entrada, a estrutura de uma árvore de
decisão é similar a regras de se-então, estrutura muito utilizada para implementação de
sistemas especialistas e em problemas cujo objetivo é classiĄcar o conjunto de dados de
entrada, o conjunto de entrada pode ser discretos ou contínuos. Na Ągura 3 é ilustrada
a estrutura de uma árvore decisão cujo objetivo é decidir se determinada pessoa deve
ou não ir em um restaurante para jantar, neste exemplo os dados são discretos, sendo
que o aprendizado através desses dados é chamado de classiĄcação. Inicialmente todos os
atributos devem ser descritos e também é necessário um conjunto de entrada já classiĄcado
para que o algoritmo de árvore de decisão possa gerar o modelo de classiĄcação. O modelo
gerado é ilustrado no algoritmo 1.
!"#$%"&'
()' *"+
!"#$"%&'#$$
,&%-'
*"+ ()'
!"#$("#$
Figura 3: Exemplo da árvore de decisão para problema de ir jantar no restaurante.
32 Capítulo 2. Fundamentação Teórica
Algoritmo 1: Modelo de classiĄcação do exemplo de ir jantar no restau-rante.
Entrada: ��������[ ]← Conjunto com as entradas com os respectivosatributos
Saída : ������[ ]← Conjunto contendo as entradas classiĄcadas
enquanto existir entradas em ��������[ ] façaentrada ← próxima entrada de ��������[ ]se entrada.Dinheiro == 0 então
entrada.ClassiĄcação ← NÃO;������[ ].adicionar(entrada);
Ąm sesenão
se entrada.Dinheiro entre 31 e 50 reais entãose entrada.Preço > 50 reais então
entrada.ClassiĄcação ← NÃO;������[ ].adicionar(entrada);
Ąm sesenão
entrada.ClassiĄcação ← SIM;������[ ].adicionar(entrada);
Ąm seĄm sesenão
se entrada.Dinheiro > 50 reais entãoentrada.ClassiĄcação ← SIM;������[ ].adicionar(entrada);
Ąm seĄm se
Ąm seĄm enqto
2.2 Descrição do problema
O problema consiste na identiĄcação de trajetórias padrões utilizando busca por
similaridade, das trajetórias desenvolvidas por objetos móveis no espaço geográĄco, como,
trajetórias desenvolvidas por veículos automotores, ciclistas, pedestres, animais, a partir
de uma base de dados espaço-temporais; e de cada trajetória padrão reconhecida, obter
os pontos intermediários padrões da mesma.
2.2.1 Conceitos relacionados ao problema
2.2.1.1 Posição
Uma posição � é composta pelo identiĄcador, o identiĄcador do veículo, data e hora
em que foi enviada, latitude, longitude, direção do veículo em relação ao globo terrestre
no instante em que a posição foi enviada, velocidade do veículo, valor que indica se o
2.2. Descrição do problema 33
veículo está com a ignição ligada ou desligada no momento do envio da posição e o tipo
de posição. Determinada posição também pode ser representada da seguinte forma:
�������(��, ���������, ����ℎ���, ���, ���, ����çã�, ����������, ����çã�, ����) (2.9)
2.2.1.2 Itinerário
No âmbito deste trabalho um itinerário �� é deĄnido como uma lista ordenada
Ąnita de pontos, ��� : ���1 → ���
2 → · · · → ����, onde ���
1 é o ponto inicial e o ���� é o Ąnal.
2.2.1.3 Direcional
O direcional é uma conĄguração do módulo que quando habilitada, o veículo passa
a reportar uma maior quantidade de posições quando o mesmo efetua curvas com mais
de vinte e cinco graus. Essa conĄguração existe para que se possa delinear curvas com
maior precisão, pois sem ela o veículo envia uma posição a cada 1 minuto e 45 segundos.
A Ągura 4 ilustra as posições enviadas com o direcional habilitado e com a conĄguração
desligada.
!"#"$ !"%"$
Figura 4: Direcional habilitado (a) e Direcional desligado (b).
34 Capítulo 2. Fundamentação Teórica
2.2.1.4 Região
Uma região pode ser representada por um quadrado de arestas de tamanho Δ� no
plano xy, deĄnida por duas componentes 2.10.
������(�������� ����������, ������� ����������) (2.10)
Dado um ponto ��(��������, ���������), podemos inferir qual região o mesmo se
localiza no mapa, para isso deve-se efetuar dois cálculos para encontrar a primeira e a
segunda componente ilustrados em 2.11, 2.12 respectivamente.
�������� ���������� =
⟩
��������
Δ�
︀
(2.11)
������� ���������� =
⟩
���������
Δ�
︀
(2.12)
Na Ągura 5 é mostrado algumas regiões plotadas no mapa, as regiões em verde
demonstram que a região tem entre 3 à 10 pontos, as laranjas contêm de 11 à 20 pontos,
as vermelhas de 21 à 30 pontos e as pretas têm no mínimo 31 pontos ou mais.
Figura 5: Ilustração das regiões.
2.2.2 Análise dos dados complexos
Nesta seção serão mostradas algumas análises dos dados complexos com a intenção
de se ter uma melhor compreensão do problema.
2.2. Descrição do problema 35
2.2.2.1 Análise dos dados utilizando os métodos de classiĄcação existentes
no Weka
Para esta análise, foi utilizado o software Weka1 na versão 3.6.9 e o sistema opera-
cional utilizado foi Mac OS X na versão 10.9. No total foram efetuados 32 testes utilizando
os algoritmos padrões de classiĄcação disponíveis no software.
Objetivo desta análise é veriĄcar se existe a possibilidade de se classiĄcar os pontos
enviados pelos veículos como pontos de interesse, neste caso pontos iniciais, intermediários
ou Ąnais. Esta primeira análise foi realizada da seguinte forma, primeiramente houve a
necessidade de se classiĄcar o conjunto de dados A com base nos pontos iniciais e Ąnais já
cadastrados no sistema. A classiĄcação consistiu em comparar cada posição do conjunto
A com cada ponto de interesse cadastrado no sistema e veriĄcar se determinado ponto
estiver a menos de 50 metros do ponto cadastrado, o mesmo é classiĄcado como um ponto
de interesse, caso contrário o ponto é classiĄcado como uma posição normal.
O segundo passo foi utilizar o conjunto de dados A como entrada para os algoritmos
de classiĄcação contidos no Weka gerando assim um modelo de classiĄcação baseado nos
dados classiĄcados do conjunto de dados A e o terceiro passo foi utilizar um outro conjunto
de dados B para testar o modelo de classiĄcação analisando a acurácia do mesmo.
Os conjuntos de dados são da mesma empresa mas de meses distintos e cada
conjunto de dados possui 100.000 posições. Os atributos utilizados para gerar o modelo
de classiĄcação foram data, direção, velocidade, ignição, tipo e o atributo objetivo é se
determinada posição é ou não um ponto inicial ou Ąnal.
Na Ągura 6 estão demonstrados os resultados depois que o conjunto de dados B foi
classiĄcado pelo modelo. O círculo preto representa um determinado ponto de interesse
cadastrado no sistema com raio de 50 metros. Os pontos verdes representam os pontos
classiĄcados de maneira correta pelo modelo. Os círculos azuis são os pontos que não são
de interesse e o vermelho é uma posição que foi classiĄcada erroneamente como sendo de
interesse pelo modelo de classiĄcação.
A tabela 1 mostra os resultados obtidos utilizando diversos algoritmos de classiĄ-
cação já implementados no programa Weka e a tabela 2 traz o resultado em porcentagem.
1 Weka Coleção de algoritmos de aprendizado de máquina para resolver problemas de mineração dedados implementados em Java e de código aberto sob a licença GPL.
36 Capítulo 2. Fundamentação Teórica
Figura 6: Ilustração dos pontos classiĄcados.
Nome do método Corretos Incorretos Positivos Negativos Falsos negativos Falsos positivos
Logistic 73335 26667 2328 71007 23630 3037
Attribute Selected Classifier 73376 26626 3012 70364 22946 3680
Bagging 73816 26186 6546 67270 19412 6774
Classification Via Regression 73465 26537 4386 69079 21572 4965
Filtered Classifier 73823 26179 1796 72027 24162 2017
Logit Boost 73323 26679 2938 70385 23020 3659
Multi Class Classifier 73335 26667 2328 71007 23630 3037
Random Committee 69760 30242 9401 60359 16557 13685
Random Sub Space 73613 26389 2331 71282 23627 2762
Decision Table 73295 26707 2455 70840 23503 3204
JRip 73860 26142 1342 72518 24616 1526
OneR 68733 31269 3602 65131 22356 8913
PART 73869 26133 2234 71635 23724 2409
J48 74064 25938 3642 70422 22316 3622
LMT 74012 25990 4122 69890 21836 4154
Random Forest 70862 29140 9135 61727 16823 12317
Random Tree 67910 32092 9467 58443 16491 15601
REP Tree 72167 27835 6989 65178 18969 8866
Tabela 1: Experimento com 2 bases de dados da mesma empresa em número de pontos.
2.2. Descrição do problema 37
Nome do método Corretos Incorretos Positivos Negativos Falsos negativos Falsos positivos
Logistic 73.335% 26.667% 3.1744733% 96.82553% 88.6114% 11.388607%
AttributeSelectedClassifier 73.376% 26.626% 4.104884% 95.89512% 86.178925% 13.821077%
Bagging 73.816% 26.186% 8.867996% 91.132% 74.13122% 25.868786%
ClassificationViaRegression 73.465004% 26.537% 5.9701896% 94.02981% 81.290276% 18.709726%
FilteredClassifier 73.823% 26.179% 2.432846% 97.567154% 92.29535% 7.704649%
LogitBoost 73.323% 26.679% 4.0069284% 95.99307% 86.28509% 13.714907%
MultiClassClassifier 73.335% 26.667% 3.1744733% 96.82553% 88.6114% 11.388607%
RandomCommittee 69.76% 30.241999% 13.476205% 86.523796% 54.748363% 45.251637%
RandomSubSpace 73.613% 26.389% 3.1665602% 96.833435% 89.53352% 10.466482%
DecisionTable 73.295% 26.706999% 3.3494782% 96.65052% 88.00314% 11.996855%
JRip 73.86% 26.142002% 1.8169509% 98.183044% 94.16265% 5.83735%
OneR 68.733% 31.269% 5.2405686% 94.75943% 71.49573% 28.50427%
PART 73.869% 26.133001% 3.0242727% 96.97572% 90.78177% 9.21823%
J48 74.063995% 25.938002% 4.917369% 95.08263% 86.035934% 13.964069%
LMT 74.012% 25.99% 5.569367% 94.43063% 84.01693% 15.98307%
RandomForest 70.862% 29.14% 12.891253% 87.10875% 57.73164% 42.26836%
RandomTree 67.909996% 32.092% 13.94051% 86.059494% 51.386635% 48.61336%
REPTree 72.167% 27.835% 9.684482% 90.31552% 68.14802% 31.851986%
Tabela 2: Experimento com 2 bases de dados da mesma empresa em porcentagens.
2.2.2.2 Análise de bases de dados distintas
A segunda análise utiliza duas bases de dados de empresas distintas, cada uma
com 100.000 posições e de meses distintos.
A tabela 3 mostra os resultados obtidos em número de pontos e a tabela 4 traz
o resultado em porcentagem.
38 Capítulo 2. Fundamentação Teórica
Nome do método Corretos Incorretos Positivos Negativos Falsos negativos Falsos positivos
Logistic 92667 7335 574 92093 5118 2217
Attribute Selected Classifier 93059 6943 569 92490 5123 1820
Bagging 92667 7335 574 92093 5118 2217
Classification Via Regression 91127 8875 755 90372 4937 3938
Filtered Classifier 92840 7162 549 92291 5143 2019
Logit Boost 92724 7278 584 92140 5108 2170
Multi Class Classifier 92667 7335 574 92093 5118 2217
Random Committee 84370 15632 1566 82804 4126 11506
Random Sub Space 93708 6294 328 93380 5364 930
Decision Table 88644 11358 606 88038 5086 6272
JRip 93585 6417 347 93238 5345 1072
OneR 80277 19725 885 79392 4807 14918
PART 92970 7032 260 92710 5432 1600
J48 91381 8621 709 90672 4983 3638
LMT 90828 9174 722 90106 4970 4204
Random Forest 85908 14094 1543 84365 4149 9945
Random Tree 82568 17434 1653 80915 4039 13395
REP Tree 88057 11945 1237 86820 4455 7490
Tabela 3: Análise utilizando conjuntos de empresas distintas em número de pontos.
2.2. Descrição do problema 39
Nome do método Corretos Incorretos Positivos Negativos Falsos negativos Falsos positivos
Logistic 92.667% 7.3349996% 0.6194222% 99.38058% 69.77505% 30.224949%
Attribute Selected Classifier 93.059% 6.9430003% 0.61144006% 99.38856% 73.786545% 26.213451%
Bagging 92.667% 7.3349996% 0.6194222% 99.38058% 69.77505% 30.224949%
Classification Via Regression 91.127% 8.875% 0.82851404% 99.171486% 55.62817% 44.37183%
Filtered Classifier 92.84% 7.162% 0.59133995% 99.40866% 71.80955% 28.190449%
Logit Boost 92.724% 7.278% 0.6298262% 99.37018% 70.18412% 29.815882%
Multi Class Classifier 92.667% 7.3349996% 0.6194222% 99.38058% 69.77505% 30.224949%
Random Committee 84.37% 15.632001% 1.8561101% 98.14389% 26.394575% 73.60542%
Random Sub Space 93.708% 6.294% 0.35002348% 99.64998% 85.22402% 14.775976%
Decision Table 88.644% 11.358001% 0.68363345% 99.31637% 44.77901% 55.220993%
JRip 93.585% 6.4170003% 0.37078592% 99.62921% 83.29437% 16.705626%
OneR 80.277% 19.724998% 1.1024328% 98.89757% 24.370089% 75.62991%
PART 92.97% 7.032% 0.2796601% 99.720345% 77.24687% 22.753128%
J48 91.381004% 8.620999% 0.77587247% 99.22413% 57.80072% 42.19928%
LMT 90.828% 9.174% 0.79490906% 99.205086% 54.17484% 45.825157%
Random Forest 85.908005% 14.094% 1.7961075% 98.20389% 29.438057% 70.56194%
Random Tree 82.568% 17.434% 2.0019863% 97.99801% 23.167376% 76.83263%
REP Tree 88.057% 11.945001% 1.4047719% 98.59522% 37.29594% 62.704063%
Tabela 4: Análise utilizando conjuntos de empresas distintas em porcentagens.
2.2.2.3 Resultado da análise
Em ambas as bases de dados o resultado das classiĄcações dos dados pelos algo-
ritmos não foi satisfatória, pois a porcentagem de dados classiĄcados corretamente como
positivos foi relativamente baixo e a porcentagem de falsos negativos foi alta, tornando
a classiĄcação e extração dos pontos de interesse inviável pois a maior parte dos pontos
que eram de interesse foram classiĄcados erroneamente, o que poderia comprometer a de-
limitação das trajetórias feitas pelos veículos e por consequência a busca por similaridade
entre as trajetórias reconhecidas.
2.2.2.4 Visualização dos dados complexos no plano geográĄco
Para facilitar a compreensão do problema foi desenvolvido um programa de visu-
alização dos dados geográĄcos, inicialmente o software de visualização dos dados espaço-
temporais começou a ser desenvolvido utilizando o programa R2, programa utilizado para
2 R é um programa que oferece um ambiente para computação estatística e elaboração de gráĄcos.
40 Capítulo 2. Fundamentação Teórica
computação estatística e construção de gráĄcos, mas com a grande quantidade de dados,
em torno de milhões de posições geográĄcas, o desempenho do mesmo não foi satisfatório
e também o R não tem mapas nativos com informações detalhadas como malhas rodo-
viárias e cidades. A Ągura 7 ilustra o resultado do processamento dos dados geográĄcos
pelo programa desenvolvido utilizando o R.
−22.79 −22.78 −22.77 −22.76 −22.75 −22.74 −22.73
−4
7.2
1−
47
.20
−4
7.1
9−
47
.18
−4
7.1
7−
47
.16
−4
7.1
5−
47
.14
Raw data
x
y
Figura 7: Saída do programa de visualização utilizando R.
Uma alternativa escolhida foi desenvolver o programa utilizando as APIs do Go-
ogle, visto que as APIs proporcionam mais opções personalizadas para visualização dos
dados, permitindo plotar pontos, polígonos e polilinhas no mapa. A Ągura 8 mostra a
saída do programa escrito utilizando o Google Maps3.
3 Google Maps é uma API que fornece diversas funcionalidades como visão da rua em determinadalocalização geográĄca, construções em três dimensões, rotas de ônibus, entre outras diversas funcio-nalidades.
2.2. Descrição do problema 41
Figura 8: A visualização do programa desenvolvido com Google Maps.
Mas como o Google Maps tem restrições de utilização do mesmo na criação de
trabalhos derivados do conteúdo ou de qualquer parte da API, optou-se por desenvolver
utilizando tecnologias open source4 como Open Street Maps5, Play Framework6 e a bi-
blioteca de javascript LeaĆet7. A Ągura 9 mostra a visualização dos pontos iniciais dos
itinerários cadastrados no sistema em verde e os Ąnais em vermelho.
Existe a necessidade de se pré-processar os dados, pois na base de dados existem
diversos ruídos que podem ser posições inseridas para teste da aplicação, posições du-
plicadas, posições com características especiais que só existem depois do cadastramento
manual dos itinerários, posições incorretas devida a falha na conĄguração do módulo que
envia as posições ou até mesmo por falha de hardware.
4 O termo open source, ou código aberto em português, foi criado pela OSI (Open Source Initiative) erefere-se a software também conhecido por software livre.
5 Open Street Maps(OSM) é uma ferramenta colaborativa para criação e edição de mapas do mundo.6 Play é uma ferramenta baseada na leveza e com uma arquitetura amigável para desenvolvimento web.
É construída utilizando Akka, fornecendo um ambiente para aplicações escaláveis.7 LeaĆet é uma biblioteca JavaScript desenvolvida para proporcionar uma melhor interação com mapas
através de dispositivos móveis.
42 Capítulo 2. Fundamentação Teórica
Figura 9: Visualização dos pontos iniciais e Ąnais dos itinerários cadastrados.
!"# !$#
Figura 10: Trajetória com ruídos (a) e Itinerário cadastrado (b).
2.3 Trabalhos correlatos
Através de uma simples análise dos dados espaço-temporais pode-se retirar diver-
sas informações de objetos em movimento como velocidade, aceleração, trajetória entre
determinado espaço de tempo, que podem ser utilizadas para se obter os pontos inter-
mediários visto que nesses pontos geralmente o objeto móvel permanece parado. Assim,
existe a possibilidade de se agrupar essas informações de tal forma que se possa distin-
2.3. Trabalhos correlatos 43
guir quais trajetórias foram desenvolvidas por carros, caminhões, ônibus, motocicletas ou
pedestres. Esta classiĄcação das trajetórias é feita analisando a variação da velocidade,
aceleração e o intervalo em que a velocidade varia durante o decorrer da trajetória [10].
Shaw e Gopalan[11] têm como objetivo, encontrar os padrões de trajetórias mais
frequentes em um banco de dados relacional que é alimentado por um arquivo de texto
contendo as coordenadas. Esse trabalho utiliza uma modiĄcação do algoritmo de associa-
ção chamado Apriori para extrair as coordenadas mais frequentes da base de dados, que
se assemelha a pesquisa, visto que as trajetórias mais frequentes têm uma maior chance
de serem as trajetórias padrões que normalmente são utilizadas.
Zheng, Wei e Peng[12] propõem uma forma de se inferir as rotas mais populares
através de um conjunto de trajetórias incertas geradas por aplicações de geolocalização
como Foursquare8, Flickr9 e trajetórias feitas por táxis. Neste trabalho foi utilizado um
grafo roteável, onde os vértices são as posições geográĄcas, as arestas indicam o tempo
de cada trajeto entre 2 vértices e um algoritmo denominado de top-k que obtém as k
rotas mais utilizadas, este trabalho é correlacionado com a pesquisa pois ele detecta os
lugares com maior número de visitas que no caso desta pesquisa podem ser os pontos
intermediários.
Existem outros trabalhos como de Wen [13] que cria um método que obtém as rotas
regulares de uma base de dados que contem históricos das trajetórias já feitas por usuários
com objetivo de obter mais informações sobre o comportamento das pessoas, recomendar
roteiros de viagens de acordo com as rotas obtidas pelo método podendo assim melhorar a
experiência do turista durante a viagem e como consequência disso uma maior satisfação
do cliente, o trabalho de Wen tem relação com a pesquisa pois o algoritmo obtém diversas
informações das localidades mais frequentadas o que se assemelha na identiĄcação dos
locais que são pontos intermediários de uma determinada trajetória.
O trabalho de Fontes e Bogorny [14] propõe um método de detecção de anomalias
em trajetórias entre determinadas regiões delimitadas por polígonos no espaço geográĄco,
que leva em consideração a duração da trajetória, alinhamento do tempo dos pontos em
relação as demais trajetórias e veriĄcando se a distância de cada ponto não está a uma
distância maior que um determinado limiar, os autores utilizam janela de tempo para
veriĄcar a similaridade das trajetórias, o que poderia ser aplicado também a pesquisa.
Outro trabalho relacionado a pesquisa e ao reconhecimento de padrões entre tra-
jetórias é o de Panagiotakis, Pelekis e Kopanakis, pois na pesquisa dos autores, existe
a classiĄcação de sub-trajetórias utilizando uma método baseado em comparações entre
8 Foursquare é um aplicativo que permite ao utilizador indicar onde se encontra e procurar por lugarespróximos de seu interesse.
9 O Flickr é um site da web de hospedagem e partilha de imagens, que possibilita indicar em que lugaras fotos foram tiradas.
44 Capítulo 2. Fundamentação Teórica
objetos que estiveram no mesmo lugar e em instantes muito próximos [15].
Aplicação de métodos que fazem o alinhamento de posições de GPS enviados pelo
usuário à malha rodoviária, obtendo as trajetórias com uma baixa taxa de amostragem
de posições [16]. O artigo [17] utiliza um método de clusterização para agrupar rotas
realizadas por táxis com objetivo de identiĄcar outliers que podem ser rotas fraudulentas
que têm maiores distâncias em relação as rotas comumente utilizadas para se ir a um
determinado lugar, este trabalho está correlacionado a pesquisa pois as trajetórias têm
uma baixa amostragem de posições.
2.4 Experimentos
2.4.1 Utilização de árvores de decisão para se obter os pontos
iniciais e Ąnais
Objetivo deste experimento foi veriĄcar se o reconhecimento dos pontos de início
e Ąm das trajetórias era possível utilizando uma árvore de decisão. O primeiro teste feito
foi utilizando somente os atributos direção, velocidade, ignição, tipo e a data em que a
posição foi enviada, no resultado que foi obtido a porcentagem de falsos positivo foi maior
que 86% no conjunto de testes que foi submetido a árvore de decisão, houve uma grande
perda de dados relevantes para classiĄcação dos pontos iniciais ou Ąnais, visto que das
25.958 posições que eram pontos iniciais ou Ąnais, 22.316 posições foram classiĄcadas
como negativas pelo modelo de classiĄcação gerado pelo algoritmo J48 do Weka.
2.4.2 Detecção dos pontos de início e Ąm das trajetórias através
do tempo parado
O reconhecimento dos pontos de início e Ąm das trajetórias com base no tempo
parado consistiu em obter os locais delimitados por um limiar distância(Δ�), onde os
veículos estiveram parados por um certo tempo que é determinado por um limiar(Δ�)
como é demonstrado no algoritmo 2.
A base de dados que foi utilizada nos experimentos possui 90 milhões de posições
de um período total de seis meses de captura de dados, sendo que cada posição no conjunto
de dados tinha atributos como velocidade, direção do veículo, data em que a posição foi
enviada, entre outros. Neste experimento os atributos utilizados foram somente a data e
a velocidade. Após o algoritmo ser rodado o resultado obtido foi que das 90 milhões de
posições, 10.559 eram posições onde o veículo estava parado durante um tempo maior
ou igual ao Δ� que neste caso foi de 10 segundos, sendo que dessas 10.559, somente
2.4. Experimentos 45
2.297 posições foram identiĄcadas corretamente como pontos iniciais ou Ąnais comparando
com as 1101 posições que deveriam ser identiĄcadas, mas dessas 2.297 posições somente
536 eram distintas. E na classiĄcação dos pontos intermediários foram classiĄcados 137
posições como positivos sendo que o número de pontos itinerários é de 1204 pontos,
e somente 53 das posições reconhecidas eram distintos. Na Ągura 12 está ilustrado a
quantidade total de pontos obtidos variando o Δ� e na Ągura 13 é ilustrada a quantidade
de pontos iniciais, Ąnais e intermediários reconhecidos mudando o Δ�, que é quanto tempo
determinado veículo deve permanecer dentro de um raio que determinado pelo Δ�.
Figura 11: Pontos de uma determinada trajetória.
−10 0 10 20 30 40 50 60 70 80 90 100 110
0
20
40
60
80
Tempo (minutos)
Vel
ocid
ade
Pontos da trajetória
46 Capítulo 2. Fundamentação Teórica
Algoritmo 2: IdentiĄcação das regiões onde os veículos Ącaram paradosdurante um determinado Δ�.
Entrada: ����çõ��← conjunto com as posições enviadas pelos veículos������������â����������������������������������← Δ�
Saída : ����çõ���������← conjunto de pontos parados
enquanto existir posição em ����çõ�� faça�← próxima posição de ����çõ��;se existir próxima posição em ����çõ�� então
�1← próxima posição de ����çõ�����������← distanciaEuclidiana(� ,�1);��������������← �1.�������� − �.��������;se ��������� < ������������â����&&�������������� < ������������� então
���������← �;����������������������← �.��������;����������������.adicionar(�);enquanto existir próxima posição em ����çõ��&& ��������� < ������������â����&&�������������� < ������������� faça
�3← próxima posição de ����çõ�����������← distanciaEuclidiana(� ,�3);��������������← �3.�������� − ���������.��������;se ��������� < ������������â����&&�������������� < ������������� então
����������������.adicionar(�3); ���������←calcularCentroide(����������������);��������������←�3.�������� − ����������������������;se �������������� > ����������������� então
����������������← sim;Ąm se
Ąm seĄm enqtose ���������������� == sim então
����çõ���������← ���������;����������������← não;
Ąm seĄm se
Ąm seĄm enqto
2.4. Experimentos 47
Figura 12: Total de pontos obtidos.
0 100 200 300 400 500 600
4,000
6,000
8,000
10,000
12,000
Limiar de tempo parado (segundos)
Núm
ero
depo
ntos
Total de pontos obtidos
Figura 13: Intermediários obtidos.
0 100 200 300 400 500 600
50
100
150
200
250
300
Limiar de tempo (segundos)
Núm
ero
depo
ntos
Total de pontos intermediáriosTotal de pontos iniciais e Ąnais
49
3 PROPOSTA DE SOLUÇÃO
A proposta de solução do problema é dividida em cinco etapas, que serão o pré-
processamento dos dados, a construção das trajetórias descritas pelos veículos, construção
das regiões, Ąltragem das trajetórias mais frequentes e a identiĄcação das trajetórias com
maior número de pontos intermediários frequentes e elencá-los como os possíveis itinerários
padrões.
3.1 Pré-processamento
Objetivo do pré-processamento foi Ąltrar todas as posições quando a conĄguração
do direcional não estava habilitada e também entradas ruidosas, agrupando os dados por
veículo e reordenando as posições pela ordem de inserção na base de dados.
3.2 Construção das trajetórias descritas pelos veícu-
los
A construção das trajetórias feitas pelos veículos baseou-se na iteração do conjunto
de posições obtidas de cada veículo, identiĄcando cada início de trajetória como a transição
da ignição do veículo de desligada para ligada; o mesmo foi feito para se completar a
construção de uma determinada trajetória quando o veículo estava com a ignição desligada
e sendo que na posição anterior o veículo estava com o motor ligado. O algoritmo que
está descrito em 3. A detecção de ciclos dentro de uma mesma trajetória é feita através
do armazenamento da primeira posição da trajetória durante a construção da mesma; se
existir algum outro ponto que a distância até o ponto inicial seja menor que o limiar de
distância, este último ponto se torna o ponto Ąnal da trajetória e a partir do próximo
ponto inicia-se uma nova trajetória.
3.3 Construção dos pontos de cada trajetória
A construção dos pontos de cada trajetória foi obtida através da iteração de todos
pontos que compõem a trajetória, em pares, analisando a distância euclidiana entre cada
par, se a distância entre os dois pontos for maior que o limiar de distância a construção
de pontos é necessária. A construção é feita a partir da equação da reta que passa entre o
par de pontos; Ąxa-se um ponto como ponto inicial; é adicionado ou subtraído o limiar de
distância na longitude do ponto Ąxado e com isso se obtém a latitude do mesmo até que a
50 Capítulo 3. Proposta de Solução
longitude seja maior ou menor, de acordo com o coeĄciente angular da reta. O resultado
da construção dos pontos de uma determinada trajetória é ilustrada na Ągura 14.
!"#"$ !"%"$
Figura 14: Construção dos pontos de uma determinada trajetória.
3.4 Construção das regiões
Neste passo objetivo é obter as regiões correspondentes a todas as trajetórias reco-
nhecidas para que a comparação entre trajetórias seja possível. As regiões são construídas
de acordo com o algoritmo 4.
3.5 Comparação e identiĄcação das trajetórias mais
frequentes
Todas as trajetórias são comparadas através das regiões de cada uma de tal forma
que as que tiverem uma maior porcentagem em comum com as demais trajetórias obtidas
será elencada como uma trajetória frequente.
Na Ągura 15 está ilustrado quatro comparações entre duas trajetórias, a com-
paração é feita pela média da porcentagem de regiões que são comuns entre as duas
trajetórias em relação ao total de regiões de cada uma e no algoritmo 5 é mostrado como
o reconhecimento é feito.
3.6. Extrair os itinerários padrões 51
!"#$!%&'(')
*+#*,%&'-')
."#""%&'/')
!00%&'1')
23(456738('!23(456738(',
Figura 15: Comparação de trajetórias.
3.6 Extrair os itinerários padrões
O último passo é elencar as trajetórias que têm um maior número de pontos
intermediários coincidentes, em relação as outras trajetórias Ąltradas. Esta comparação,
utilizou as regiões dos pontos intermediários identiĄcados quando o veículo permanecia por
um determinado tempo em uma região com raio determinado pelo limiar de distância,
o algoritmo para extração das trajetórias com maior número de pontos intermediários
coincidentes está ilustrado em 6.
52 Capítulo 3. Proposta de Solução
Algoritmo 3: Construção das trajetórias.Entrada: ����çõ��← conjunto com as posições enviadas pelos veículos
������������â����Saída : ������ó����← conjunto de trajetórias
enquanto existir posições em ����çõ�� faça�← próxima posição de ����çõ��;se � é uma posição cuja ignição está desligada então
�← nova trajetória;������������← �; �.adicionar(�);se existir próxima posição em ����çõ�� então
�← próxima posição de ����çõ��Ąm sesenão
Retornar ������ó����;Ąm seenquanto � for do mesmo veículo de � e a ignição estiver ligadafaça
�.adicionar(�);se existir próxima posição em ����çõ�� então
�← próxima posição de ����çõ��;Ąm sesenão
Retornar ������ó����;Ąm se���������← distanciaEuclidiana(������������,�); se��������� < ������������â���� então
�.adicionar(�);������ó����.adicionar(�);�← nova trajetória;�.adicionar(�);������������← �;
Ąm seĄm enqto
Ąm sesenão
se existir próxima posição em ����çõ�� então�← próxima posição de ����çõ��
Ąm sesenão
Retornar ������ó����;Ąm se
Ąm seĄm enqto
3.6. Extrair os itinerários padrões 53
Algoritmo 4: Construção de regiões.Entrada: �[ ]← �������� �� ������ó����
Δ�← ������ �� ����â����Saída : �[ ]← �������� �� ����õ��
Δ� = ∆�C
�← ��ó���� ������ó��� �� �[ ]enquanto existir trajetórias em �[ ] faça
�← ��ó���� ������ó��� �� �[ ]enquanto existir posições no vetor de posições de � faça
�← próximo ponto do vetor de posições de �[ ]������← �����������
⎞︁
�.��������
∆�
︁
,︁
�.���������
∆�
︁⎡
se região existir entãoAdicionar o ponto a região existente;
Ąm sesenão
������← nova região com o ponto adicionado;Adicionar a ������ ao conjunto de regiões �[ ];
Ąm seĄm enqto
Ąm enqto
Algoritmo 5: Comparação e identiĄcação das trajetórias mais frequentes.Entrada: ����õ��← Conjunto de regiões;
������ó����← Conjunto de trajetórias Ąltradas;����������� í����← Quantidade mínima de trajetórias para
que a mesma trajetória seja freqüente;�����������← porcentagem mínima de regiões coincidentes
para que a trajetória seja identiĄcada como freqüente;Saída : ��í��← Conjunto de trajetórias com maior número de
correlação;
enquanto existir trajetórias conjunto faça�← próxima trajetória do conjunto;enquanto existir pontos no conjunto de � faça
�ú�����������ê�����← VeriĄcar quais trajetórias estãopresentes que satisfaçam a ����������� nas regiões que compõe �;se �ú�����������ê����� > ����������� í���� então
��í��← Adicionar � a saída;Ąm se
Ąm enqtoĄm enqto
54 Capítulo 3. Proposta de Solução
Algoritmo 6: Obtenção das trajetórias Ąltradas com maior número depontos intermediários coincidentes.
Entrada: ����õ��← Conjunto de regiões de pontos intermediários;������ó����← Conjunto de trajetórias Ąltradas;
Saída : ��í��← Conjunto de trajetórias com maior número de pontosintermediários coincidentes;
enquanto existir trajetórias conjunto faça�← próxima trajetória do conjunto;��������������õ��← Obter todas as regiões dos pontosintermediários de �;�ú�����������ê�����← Obter o número de pontos contidos em����������������;�.�����������������ê�����← �ú�����������ê�����; ��í��←Adicionar � a ��í��;
Ąm enqto��í��← Ordenar o conjunto de trajetórias de saída pela quantidade deocorrências de pontos intermediários de cada trajetória em ordemdecrescente;
55
4 RESULTADOS
A solução proposta teve 3% de acerto, pois como na solução foi deĄnido que os
pontos iniciais e Ąnais de cada trajetória eram os pontos que tinham eventos de ignição
ligada/desligada, em grande parte das trajetórias reconhecidas os caminhos percorridos
eram maiores que o itinerário como é mostrado na Ągura 16, como a detecção de ciclos
e segmentação da trajetória em sub-trajetórias foi aplicada somente quando algum ponto
estava próximo do ponto inicial, estas repetições foram consideradas como uma trajetória.
!
"
Figura 16: Ilustração do itinerário em vermelho e o padrão reconhecido em azul.
Na parte da solução que consistia em identiĄcar os pontos intermediários, a porcen-
tagem de acerto foi de 1% visto que os pontos intermediários estavam sendo identiĄcados
quando o veículo permanecia em uma localidade por mais de um certo tempo que era
determinado por um limiar de tempo parado; sendo que nas trajetórias descritas pelos
veículos esses momentos eram quase inexistentes, pois como a janela de tempo no envio
das posições era de quarenta e cinco segundos quando o veículo não tinha uma inclinação
maior que vinte e cinco graus, essa janela era suĄciente para o veículo parar em um ponto
intermediário e continuar se deslocando até que a próxima posição fosse enviada com uma
velocidade diferente de zero e fora do limiar de distância, como é ilustrado no gráĄco 17
e na Ągura 18.
Com a utilização do atributo tipo que descreve qual o tipo da posição enviada
se houver uma Ąltragem na base de dados somente pelas posições onde o veículo abriu
ou fechou a porta, tipo 1 e tipo 2 respectivamente, se obtém 2.442.912 posições e nesse
conjunto de dados Ąltrado, 97% dos pontos intermediários que deveriam ser reconhecidos
estão no conjunto Ąltrado.
56 Capítulo 4. Resultados
A Ągura 17 ilustra o suposto comportamento de um veículo dentro da janela de 1
minuto e 45 segundos para envio da próxima posição e com distância de aproximadamente
700 metros devido ao erro do GPS; no instante 10 segundos a primeira posição do veículo
foi enviada, sinalizada como uma reta no instante 10 segundos, constando que o veículo
estava com velocidade de 55 quilômetros por hora; no segundo envio o veículo estava
com velocidade de 49 quilômetros por hora, sendo que entre os dois envios o veículo
desacelerou, permaneceu parado durante 9 segundos e voltou acelerar novamente.
Figura 17: Velocidade do veículo entre dois envios de posições.
0 20 40 60 80 100 120 140 160
0
20
40
60
Tempo (segundos)
Vel
ocid
ade
Velocidade do veículo
Figura 18: Ilustração dos pontos intermediários em azul.
57
5 CONCLUSÃO
Nas últimas décadas a utilização de reconhecimento de padrões utilizando buscas
por similaridade cresceu substancialmente, visto que grandes empresas vêm gerando gran-
des volumes de dados e para se processar esta quantidade de dados, diversas ferramentas
foram criadas. Além de ser um assunto de extrema relevância, pois este tema abrange di-
versos problemas do cotidiano que podem ser resolvidos de uma melhor forma utilizando
o reconhecimento de padrões.
Os objetivos deste trabalho consistiam em reconhecer os itinerários padrões e os
pontos intermediários, entretanto, esses objetivos não foram alcançados pois a porcenta-
gem de acerto foi baixa. O método proposto consistiu em detectar sub-ciclos de trajetórias
somente quando algum ponto da trajetória estivesse perto do ponto de início da mesma,
sendo que na grande parte das vezes essas repetições não ocorriam em torno do ponto onde
o veículo era ligado ou desligado. O que também contribuiu para baixa porcentagem de
acertos na detecção de pontos intermediários padrões foi a janela de tempo entre o envio
de duas posições pois o intervalo de tempo de 45 segundos foi suĄciente para que o veículo
parasse e voltasse a se deslocar até o próximo envio da posição do veículo, entretanto com
a utilização do atributo tipo que descreve qual o tipo da posição enviada se Ąltrarmos a
base de dados somente pelas posições onde o veículo abriu ou fechou a porta, tipo 1 e
tipo 2 respectivamente, se obtém 2.442.912 posições e nesse conjunto de dados Ąltrado,
97% dos pontos intermediários que deveriam ser reconhecidos estão compreendidos no
conjunto.
Este trabalho de conclusão de curso possibilitou o contato com diversas áreas do
conhecimento que são relacionadas como, Banco de Dados, Geoprocessamento, Inteligên-
cia ArtiĄcial.
Os trabalhos futuros consistem em utilizar uma estrutura que seja apropriada para
análise de trajetórias espaço-temporais, como STR-tree, TB-Tree, visto que, o tempo de
comparação entre as trajetórias pelo método proposto foi extremamente alto. Na parte
de identiĄcação de trajetórias semelhantes, elas poderiam ser comparadas pela soma das
distâncias entre os pares na Ągura 19, ou pela soma das áreas dos polígonos entre as duas
trajetórias na Ągura 20, por exemplo. Analisando somente as trajetórias construídas no
primeiro passo a partir das 90 milhões de posições, constatou-se que em todas as trajetórias
construídas a partir do ponto de ignição somente 253 dos 1101 itinerários padrões estavam
compreendidos dentro das trajetórias, utilizando uma porcentagem de 95% de correlação,
sendo assim necessário um estudo sobre técnicas de construção de trajetórias a partir de
sub-trajetórias, pois mais de 75% os itinerários foram compreendidos parcialmente pelas
trajetórias oriundas do primeiro passo.
58 Capítulo 5. Conclusão
!"
!#
$"
$#$%
$&
$'
$(
$)
$"
$#
$)
$% $&
$'
Figura 19: Ilustração da comparação da distância entre pares de posições.
!"
!#
Figura 20: Ilustração da comparação de trajetórias utilizando área dos polígonos.
59
REFERÊNCIAS
1 DAVIS MIGUEL VIEIRA MONTEIRO, G. C. e. C. Introdução à Ciência daGeoinformação. [S.l.: s.n.], 2001.
2 CENTER, G. Glossary of Key Terms. 2013. https://geodacenter.asu.edu/node/
390/. [Online; accessed 13-April-2013].
3 RUSSELL, S.; NORVIG, P. Inteligência artiĄcial. CAMPUS - RJ,2004. ISBN 9788535211771. Disponível em: <http://books.google.com.br-/books?id=wBMvAAAACAAJ>.
4 TAN, P.-N.; STEINBACH, M.; KUMAR, V. Introduction to Data Mining, (FirstEdition). Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 2005. ISBN0321321367.
5 MARSICO, M. D.; FRED, A. L. N. (Ed.). ICPRAM 2013 - Proceedings of the 2ndInternational Conference on Pattern Recognition Applications and Methods, Barcelona,Spain, 15-18 February, 2013. [S.l.]: SciTePress, 2013. ISBN 978-989-8565-41-9.
6 FILHO, R. F. S. et al. DesmistiĄcando o conceito de consultas por similaridade:A busca de novas aplicações na medicina. In: 2o Workshop de Informática Médica -WIMŠ2002. Gramado, RS: [s.n.], 2002. p. in CDŰROM.
7 PETRAKIS, E.; FALOUTSOS, C. Similarity searching in medical image databases.Knowledge and Data Engineering, IEEE Transactions on, v. 9, n. 3, p. 435Ű447, 1997.ISSN 1041-4347.
8 KASTER, D. dos S. Tratamento de condições especiais para busca por similaridade embancos de dados complexos. Tese (Doutorado) Ů Universidade de São Paulo, Institutode Ciências Matemáticas e de Computação, São Carlos, 2012.
9 ERWIG, M. et al. Spatio-temporal data types: An approach to modeling andquerying moving objects in databases. Geoinformatica, Kluwer Academic Publishers,Hingham, MA, USA, v. 3, n. 3, p. 269Ű296, set. 1999. ISSN 1384-6175. Disponível em:<http://dx.doi.org/10.1023/A:1009805532638>.
10 DODGE, S.; WEIBEL, R.; FOROOTAN, E. Revealing the physics of movement:Comparing the similarity of movement characteristics of diferent types of movingobjects. Computers, Environment and Urban Systems, v. 33, n. 6, p. 419Ű434, 2009.
11 ARTHUR.A.SHAW; GOPALAN, N. Article: Frequent pattern mining of trajectorycoordinates using apriori algorithm. International Journal of Computer Applications,v. 22, n. 9, p. 1Ű7, May 2011. Published by Foundation of Computer Science.
12 WEI, L.-Y.; ZHENG, Y.; PENG, W.-C. Constructing popular routes from uncertaintrajectories. In: Proceedings of the 18th ACM SIGKDD international conference onKnowledge discovery and data mining. New York, NY, USA: ACM, 2012. (KDD Š12),p. 195Ű203. ISBN 978-1-4503-1462-6. Disponível em: <http://doi.acm.org/10.1145-/2339530.2339562>.
60 Referências
13 WEN et al. Mining regular routes from gps data for ridesharing recommendations.In: Proceedings of the ACM SIGKDD International Workshop on Urban Computing.New York, NY, USA: ACM, 2012. (UrbComp Š12), p. 79Ű86. ISBN 978-1-4503-1542-5.Disponível em: <http://doi.acm.org/10.1145/2346496.2346510>.
14 FONTES, V. C.; BOGORNY, V. Discovering semantic spatial and spatio-temporaloutliers from moving object trajectories. CoRR, abs/1303.5132, 2013.
15 PANAGIOTAKIS, C.; PELEKIS, N.; KOPANAKIS, I. Trajectory voting andclassiĄcation based on spatiotemporal similarity in moving object databases. In:Proceedings of the 8th International Symposium on Intelligent Data Analysis: Advancesin Intelligent Data Analysis VIII. Berlin, Heidelberg: Springer-Verlag, 2009. (IDA Š09),p. 131Ű142. ISBN 978-3-642-03914-0. Disponível em: <http://dx.doi.org/10.1007/978-3-642-03915-7 12>.
16 LOU, Y. et al. Map-matching for low-sampling-rate gps trajectories. In: Proceedingsof the 17th ACM SIGSPATIAL International Conference on Advances in GeographicInformation Systems. New York, NY, USA: ACM, 2009. (GIS Š09), p. 352Ű361. ISBN978-1-60558-649-6. Disponível em: <http://doi.acm.org/10.1145/1653771.1653820>.
17 GE, Y. et al. A taxi business intelligence system. In: Proceedings of the 17th ACMSIGKDD international conference on Knowledge discovery and data mining. New York,NY, USA: ACM, 2011. (KDD Š11), p. 735Ű738. ISBN 978-1-4503-0813-7. Disponível em:<http://doi.acm.org/10.1145/2020408.2020523>.