Pós-Graduação em Ciência da Computação
RecRoute: UM SISTEMA DE RECOMENDAÇÃO DE ROTAS DE ÔNIBUS BASEADO EM INFORMAÇÕES CONTEXTUAIS DOS
USUÁRIOS Por
Adriano de Oliveira Tito
Dissertação de Mestrado
Universidade Federal de Pernambuco
[email protected] www.cin.ufpe.br/~posgraduacao
RECIFE, AGOSTO / 2013
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE INFORMÁTICA
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Adriano de Oliveira Tito
“RecRoute: Um Sistema de Recomendação de Rotas de Ônibus Baseado
em Informações Contextuais dos Usuários”
ESTE TRABALHO FOI APRESENTADO A PÓS-GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DO CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS DA COMPUTAÇÃO.
Orientadora: Ana Carolina Salgado
Co-Orientadora: Patrícia Cabral de A. R. Tedesco
RECIFE, AGOSTO / 2013
Catalogação na fonte
Bibliotecária Jane Souto Maior, CRB4-571
Tito, Adriano de Oliveira RecRoute: um sistema de recomendação de rotas de ônibus baseado em informações contextuais dos usuários / Adriano de Oliveira Tito. - Recife: O Autor, 2013. xii, 99 f.: il., fig., tab., quadro Orientador: Ana Carolina Brandão Salgado.
Dissertação (mestrado) - Universidade Federal de Pernambuco. CIn, Ciência da Computação, 2013. Inclui referências e apêndice. 1. Ciência da Computação. 2. Computação Sensível ao Contexto. I. Salgado, Ana Carolina Brandão (orientadora). II. Título.
004 CDD (23. ed.) MEI2013 – 154
Dissertação de Mestrado apresentada por Adriano de Oliveira Tito à Pós-Graduação
em Ciência da Computação do Centro de Informática da Universidade Federal de
Pernambuco, sob o título “RecRoute: Um Sistema de Recomendação de Rotas de
Ônibus Baseado em Informações Contextuais dos Usuários” orientada pela Profa.
Ana Carolina Brandão Salgado e aprovada pela Banca Examinadora formada pelos
professores:
_____________________________________________
Prof. Ricardo Bastos Cavalcante Prudêncio
Centro de Informática / UFPE
______________________________________________
Profa. Vaninha Vieira dos Santos
Departamento de Ciência da Computação/UFBA
______________________________________________
Profa. Ana Carolina Brandão Salgado
Centro de Informática / UFPE
Visto e permitida a impressão.
Recife, 23 de agosto de 2013.
___________________________________________________
Profa. Edna Natividade da Silva Barros
Coordenadora da Pós-Graduação em Ciência da Computação do
Centro de Informática da Universidade Federal de Pernambuco.
iii
Aos meus pais por todos os valores
e ensinamentos transmitidos;
A minha esposa por todo amor,
compreensão e carinho;
Aos meus irmãos pelo incentivo e
amizade;
A todos que contribuíram para a
realização deste trabalho.
iv
"Por vezes sentimos que aquilo que
fazemos não é senão uma gota de água no
mar. Mas o mar seria menor se lhe faltasse
uma gota."
(Madre Teresa de Calcutá)
v
Agradecimentos
A Deus, meu senhor e guia, por estar sempre presente em minha vida, me
mostrando o caminho, me apoiando nos momentos de dúvidas, me fazendo aprender
nos momentos de tristeza e compartilhando comigo os momentos de alegria;
Aos meus pais, pelo incentivo e amor dedicado, por me apoiarem em todos os
momentos da minha vida e por terem me ensinado o verdadeiro sentido de uma família;
A minha querida esposa, Wilbsan Cordeiro de Sousa Tito, pelo amor, carinho,
compreensão, incentivo e apoio incondicional em todos os momentos;
Aos meus irmãos, Anna Karla de Oliveira Tito e Allyson de Oliveira Tito, pelo
companheirismo, paciência, carinho e incentivo;
As minhas orientadoras, Ana Carolina Salgado e Patrícia Tedesco, agradeço
pelos valiosos ensinamentos, confiança, paciência, amizade e apoio durante o período
de orientações. MUITO OBRIGADO;
Aos professores Ricardo Prudêncio e Vaninha Vieira, agradeço a participação na
banca examinadora deste trabalho;
Aos integrantes do projeto Ubibus, especialmente aos alunos de Iniciação
Científica: Arley, Luana, Luiz e Diogo, pela grande ajuda e atenção desprendida durante
a pesquisa;
A todos que participaram dos experimentos deste trabalho pela atenção
desprendida durante as validações;
Aos meus colegas do grupo CinFuturo, pela presença e companheirismo durante
as jornadas do curso.
Aos colegas da DATAPREV, em particular ao projeto dos “Bacanas”
(BGCNIS), pelos momentos de apoio, troca de conhecimentos e experiências
profissionais.
Enfim, agradeço a todas as pessoas que direta ou indiretamente tornaram
possível a elaboração deste trabalho, meu reconhecimento, gratidão e respeito a todos.
vi
Resumo
Nas últimas décadas, o trânsito em cidades de médio e grande porte, bem como
os transtornos causados direta ou indiretamente por este, tem se tornado um problema
crescente no cotidiano de qualquer cidadão. Isto tem contribuído para a ineficiência do
transporte público, onde uma das principais barreiras é a ausência de informações aos
usuários. Em tempos onde soluções tecnológicas para tarefas diárias estão sendo
amplamente disponibilizadas, surgem como uma possível solução os Sistemas de
Informação ao Usuário do transporte coletivo, que têm por finalidade fornecer
informações aos passageiros e apoiar suas decisões. A maioria dos sistemas com esse
propósito utiliza informações estáticas ou auxiliadas por transmissores GPS instalados
nos veículos. Este trabalho tem por objetivo desenvolver um sistema de recomendação
de rotas de transporte público por ônibus, denominado RecRoute, que considera
informações contextuais dos usuários, condições climáticas, temporais e do trânsito para
recomendar rotas de ônibus aos passageiros, apoiando-os em suas tomadas de decisão.
No experimento realizado com o RecRoute os resultados gerados pelas recomendações
foram bem avaliados pelos participantes. Sendo assim, espera-se prover informações de
grande relevância para os usuários de transporte coletivo urbano, melhorando a
qualidade do transporte público por ônibus e incentivando o uso deste tipo de meio de
transporte.
Palavras-chave: Sistemas Inteligentes de Transporte, Sistemas de Recomendação,
Computação Sensível ao Contexto, Algoritmos de Classificação.
vii
Abstract
Recently, transit in major and medium cities, as well as the inconvenience
directly or indirectly caused by it, has become an increasing problem in the daily life of
every citizen. This has contributed to the inefficiency of public transportation, where
one of the main issues to be tackled is the absence of relevant, timely information to
users. In times where technology solutions for daily tasks are widely available, Public
Transportation User Information Systems emerge as a possible solution, aiming to
provide information to passengers and support their decision-making. Most systems for
this purpose are using static information or, at most, information provided by GPS
transmitters installed in vehicles. This work aims to develop a recommendation system
for public transportation routes by bus, called RecRoute, that considers contextual
information related to users, climate, time of day and traffic to recommend bus routes,
and support passengers in their decision-making. The results of our experiment show
that RecRoute was approved and its recommendations were well evaluated by the
participants. Thus, it is expected to provide information of great relevance for the users
of urban public transportation, improving the quality of public transportation by bus and
encouraging the use of such means of transport.
Keywords: Intelligent Transportation Systems, Recommendation Systems,
Context-Aware Computing, Classification Algorithms.
viii
Lista de Ilustrações Figura 2.1 - Categorias dos Sistemas Inteligentes de Transporte ............................................................... 11
Quadro 2.1 - Funções dos Sistemas de Informação ao Usuário ................................................................. 12
Figura 2.2 – Categorias Fundamentais para as Informações Contextuais .................................................. 16
Figura 2.3 - Visão da Aplicação Tradicional e uma Aplicação Sensível ao Contexto ............................... 18
Figura 2.4 – Rede Neural Artificial Perceptron Multicamadas .................................................................. 29
Figura 3.1 – Informações Contextuais Utilizadas ....................................................................................... 32
Figura 3.2 – Obtenção de Informações Contextuais ................................................................................... 33
Figura 3.3 – Informações Providas pelos SIU ............................................................................................ 34
Figura 3.4 – Sistema OneBusAway ............................................................................................................ 37
Figura 3.5 – Indicação de Rotas no Sistema Bus Catcher .......................................................................... 38
Figura 3.6 – Exibição de rotas do Sistema de Informação ao Usuário ....................................................... 39
Figura 3.7 – Sistema PECITAS .................................................................................................................. 40
Figura 3.8 – Requisição de Rota no Google Transit................................................................................... 41
Figura 3.9 – Trajetos Sugeridos pelo Google Transit ................................................................................. 41
Figura 3.10 – Indicação de Rotas do Sistema ANTARES ......................................................................... 42
Figura 3.11 – Recomendação de Rotas do Sistema UbibusRoute .............................................................. 43
Figura 4.1 – Arquitetura do Projeto Ubibus ............................................................................................... 46
Figura 4.2 – Diagrama de Casos de Uso .................................................................................................... 49
Figura 4.3 – Relevância das Preferências dos Usuários ............................................................................. 52
Figura 4.4 – Modelagem das Informações Contextuais ............................................................................. 52
Figura 4.5 – Arquitetura do RecRoute ........................................................................................................ 55
Figura 4.6 – Demonstração da Formação da Função para Classificação das Rotas ................................... 57
Figura 4.7 – Estrutura de Armazenamento da Função para Classificação .................................................. 58
Quadro 4.1 – Pseudo-Código para a Realimentação de Relevância ........................................................... 58
Figura 4.8 – Agrupamento das Rotas para Classificação ........................................................................... 59
Quadro 4.2 – Pseudo-Código da Classificação das Rotas .......................................................................... 60
Figura 4.9 – Extrato do Modelo Relacional do Banco de Dados do Projeto Ubibus ................................. 61
Figura 4.10 – Principais Classes do RecRoute ........................................................................................... 63
Figura 4.11 – Diagrama de Sequência das Atividades do RecRoute .......................................................... 64
Figura 4.12 – Exemplos da Interface Móvel do RecRoute ......................................................................... 67
Figura 4.13 – Exemplo da Interface Web do RecRoute ............................................................................. 67
Figura 5.1 – Ilustração de um Registro do Arquivo ARFF ........................................................................ 71
Figura 5.2 – Acertos nas Recomendações de Rotas x Cenários Experimentais ......................................... 76
ix
Lista de Tabelas
Tabela 2.1 - Benefícios com a Utilização dos ITS ....................................................................................... 9
Tabela 3.1 – Comparativo entre os Trabalhos Relacionados ...................................................................... 43
Tabela 4.1 – Comparativo entre os Sistemas e o RecRoute ....................................................................... 69
Tabela 5.1 – Resultados da Comparação de Algoritmos ............................................................................ 73
Tabela 5.2 – Rotas do Cenário Experimental 1 .......................................................................................... 75
Tabela 5.3 – Rotas do Cenário Experimental 2 .......................................................................................... 75
x
Lista de Acrônimos
IPEA Instituto de Pesquisa Econômica Aplicada
TIC Tecnologia de Informação e Comunicação
APTS Advanced Public Transportation Systems
SIU Sistemas de Informação ao Usuário
ITS Intelligent Transportation Systems
IVHS Vehicle-Highway Systems
CLIOS Complex, large, integrated open systems
ATMS Advanced Traffic Management Systems
ATIS Advanced Traveller Information Systems
AVCS Advanced Vehicle Control Systems
CVO Commercial Vehicle Operations
ARTS Advanced Rural Transportation Systems
ETC Electronic Toll Collection
IHC Interação Humano Computador
CE Contextual Element
SR Sistemas de Recomendação
RI Recuperação de Informações
CARS Context-Aware Recommender Systems
MLP Multilayer Perceptron
UFPE Universidade Federal de Pernambuco
xi
Sumário
1 Introdução ............................................................................................................................................ 1
1.1 Justificativa .................................................................................................................................. 3
1.2 Objetivos ..................................................................................................................................... 4
1.3 Contribuições Esperadas.............................................................................................................. 5
1.4 Estrutura da Dissertação .............................................................................................................. 5
2 Conceitos Básicos................................................................................................................................. 7
2.1 Sistemas Inteligentes de Transporte ............................................................................................ 7
2.1.1 Categorização dos Sistemas Inteligentes de Transporte ................................................. 10
2.1.2 Sistemas de Informação ao Usuário ............................................................................... 12
2.2 Contexto Computacional ........................................................................................................... 13
2.2.1 Definições de Contexto Computacional ......................................................................... 14
2.2.2 Sistemas Sensíveis ao Contexto ..................................................................................... 17
2.3 Sistemas de Recomendação ....................................................................................................... 18
2.3.1 Técnicas de Filtragem de Informações ........................................................................... 20
2.3.2 Sistemas de Recomendação Sensíveis ao Contexto ....................................................... 23
2.3.3 Realimentação de Relevância em Sistemas de Recomendação ...................................... 24
2.3.4 Estratégias de Aprendizagem de Máquina e Predição em Sistemas de Recomendação . 25
2.4 Considerações Finais ................................................................................................................. 29
3 Informações Contextuais em SIU e Sistemas de Recomendação de Rotas ................................... 30
3.1 Utilização de Contexto em Sistemas de Informação ao Usuário ............................................... 30
3.2 Sistemas de Recomendação e Exibição de Rotas de Transporte Público .................................. 36
3.3 Considerações Finais ................................................................................................................. 44
4 O Sistema RecRoute .......................................................................................................................... 45
4.1 O Projeto Ubibus ....................................................................................................................... 45
4.2 O Aplicativo RecRoute .............................................................................................................. 49
4.2.1 Especificação dos Requisitos ......................................................................................... 49
4.2.2 Modelagem das Informações Contextuais ...................................................................... 51
4.2.3 Arquitetura ..................................................................................................................... 54
4.3 Implementação do RecRoute ..................................................................................................... 61
4.4 Considerações Finais ................................................................................................................. 68
5 Experimentos e Resultados ............................................................................................................... 70
5.1 Escolha do Algoritmo de Classificação ..................................................................................... 70
5.1.1 Descrição do Cenário Experimental ............................................................................... 70
5.1.2 Resultados Obtidos ......................................................................................................... 72
5.2 Experimentos ............................................................................................................................. 73
5.2.1 Objetivos do Experimento .............................................................................................. 73
xii
5.2.2 Elaboração do Experimento ........................................................................................... 74
5.2.3 Configuração e Execução dos Cenários Experimentais ................................................. 74
5.2.4 Resultados ...................................................................................................................... 76
5.3 Considerações Finais ................................................................................................................. 77
6 Conclusão e Trabalhos Futuros ....................................................................................................... 79
6.1 Contribuições ............................................................................................................................. 79
6.2 Limitações do Trabalho ............................................................................................................. 80
6.3 Trabalhos Futuros ...................................................................................................................... 80
Referências ................................................................................................................................................ 82
Apêndice A - Descrição dos Casos de Uso .............................................................................................. 90
Apêndice B - Questionário de Pesquisa sobre Relevância de Preferências ......................................... 96
Apêndice C - Preferências dos Participantes do Experimento ............................................................. 98
1
Capítulo 1
Introdução
A utilização do sistema de transporte público é uma realidade na vida de muitas
pessoas. Este compõe, juntamente com outros sistemas públicos, um pilar de serviços
básicos que, oferecidos eficientemente, contribuem na melhoria da qualidade de vida
dos habitantes de determinada região. Há alguns anos, o trânsito tornou-se assunto
corriqueiro para qualquer cidadão que busca deslocamentos rápidos. A procura por
mobilidade provocou ao longo do tempo um aumento significativo no número de
veículos em circulação, resultando na saturação das rodovias, aumentando o número de
congestionamentos, acidentes e, por sua vez, a emissão de gases. Estas questões geram
desgaste físico e psicológico ao ser humano, impactando na sua qualidade de vida.
Segundo Zhang e colegas (2011) não será possível melhorar o trânsito alargando
ruas, construindo viadutos ou fazendo rodízio de carros. Para isto, é preciso que o poder
público e as empresas operadoras do transporte coletivo aprimorem o serviço prestado,
a fim de mudar a cultura das pessoas e fidelizá-las ao transporte público (Pilon, 2009).
De acordo com o Instituto de Pesquisa Econômica Aplicada – IPEA, o meio de
transporte mais utilizado nas regiões metropolitanas é o transporte público (IPEA,
2011), estando incluso nesta categoria o ônibus. Segundo Ferris e colegas (2010), a
utilização deste meio de transporte é essencial nos grandes centros urbanos, pois
diminui a poluição e gera menor volume de tráfego.
Segundo Cutolo (2003), as principais barreiras que levam o usuário a não optar
pela utilização do transporte coletivo urbano são a ausência de informações relativas aos
serviços e/ou sua baixa qualidade, aliadas à grande facilidade oferecida atualmente para
aquisição de veículos particulares.
A utilização da Tecnologia de Informação e Comunicação - TIC surge como
grande oportunidade para empresas e órgãos governamentais promoverem um
melhoramento do transporte coletivo urbano, oferecendo assim um serviço adequado às
2
expectativas e necessidades dos passageiros e atuando de forma estratégica para atrair e
fidelizar os usuários (Schein, 2003).
Buscando aperfeiçoar os serviços de transporte existentes, muitas cidades têm
utilizado aplicações conhecidas como Sistemas Inteligentes de Transporte (ITS, do
inglês Intelligent Transportation Systems), que consistem na utilização da Tecnologia
da Informação e Comunicação para subsidiar a infraestrutura do sistema de transporte
com o objetivo de buscar melhorias em aspectos referentes ao mesmo (Gómez et. al.,
2009), tais como: gerenciamento de tráfego e sugestão de rotas aos motoristas;
informações aos usuários sobre condições meteorológicas, de estradas, possíveis
perigos, locais de incidentes, rotas ótimas e itinerário de veículos; conhecimento sobre o
controle de veículos em determinadas situações, sistemas de alertas e colisões.
Sistemas Avançados de Transporte Público (APTS, do inglês Advanced Public
Transportation Systems) são aplicações de ITS no apoio ao aumento da eficiência e
segurança dos sistemas de transporte público (Sussman, 2005). No contexto dos APTS,
encontram-se os Sistemas de Informação ao Usuário (SIU) que constituem em uma
importante ferramenta de comunicação entre os operadores/gestores do transporte
público e os usuários. Por meio destas ferramentas é possível fornecer aos passageiros,
informações que satisfaçam suas necessidades específicas, tais como: horário de
chegada dos ônibus nas paradas, tempo de espera, próximo veículo a passar na parada e
conselhos de rotas aos usuários (Schein, 2003) (Pilon, 2009).
O transporte coletivo por ônibus tem como características a complexidade e
inflexibilidade, impondo rotas de ônibus e horários pré-estabelecidos. Muitas vezes os
horários não são respeitados devido a incertezas do trânsito nas grandes cidades,
dificultando o planejamento dos deslocamentos por parte dos usuários de transporte
coletivo. A utilização de informações de contexto neste tipo de aplicação como, por
exemplo, informações sobre o trânsito nas vias, preferências dos usuários e informações
de redes sociais podem aumentar a medida de desempenho e tornar a aplicação
desenvolvida mais adaptativa ao passageiro, satisfazendo suas preferências e
necessidades.
Contexto é entendido por qualquer informação que pode ser utilizada para
caracterizar a situação de entidades como, por exemplo, pessoas, lugares ou objetos, que
3
são consideradas relevantes para a interação entre um usuário e uma aplicação,
incluindo o usuário e a aplicação em si (Dey e Abowd, 2001).
Em paralelo, o aumento da popularidade dos dispositivos móveis com acesso à
internet tem contribuído para o surgimento de novos aplicativos com características
ubíquas, que segundo Araújo (2003) movem-se para fora das estações de trabalho e
computadores pessoais e tornam-se pervasivas no cotidiano dos usuários, a fim de
atender suas diversas necessidades. De acordo com Gartner INC. (2011), as vendas de
smartphones em 2011 atingiram aproximadamente 108 milhões de unidades contra
aproximadamente 62 milhões de unidades em 2010. Esse valor corresponde a um
crescimento de 74%, representando 25% no total de vendas de dispositivos móveis.
Existem vários tipos de aplicativos baseados em localização que fornecem
informações aos usuários sobre o trânsito, conforme apresentado no Capítulo 3. Esses
aplicativos proveem, em sua maioria, informações aos usuários sobre rotas e estimativa
de tempo de chegada, mas às vezes, não são totalmente direcionados ao transporte
público e não levam em consideração acontecimentos dinâmicos como
engarrafamentos, acidentes, alagamentos, informações contextuais dos usuários, entre
outros.
Nesta proposta, buscamos atender os dois grupos de usuários fornecendo rotas
aos passageiros esporádicos e apoiando o planejamento de deslocamentos dos usuários
frequentes. Isto é feito com o uso de informações sobre rotas alternativas e adaptadas às
suas necessidades, que podem ser utilizadas por ocasião de engarrafamentos e/ou
impedimentos das vias e atrasos dos ônibus.
1.1 Justificativa
Diante do contexto onde os passageiros do transporte público não têm um
serviço que os apoie na decisão sobre que ônibus e rota tomarem para chegar aos seus
destinos, contornando situações de tráfego intenso ou acidentes e levando em
consideração suas preferências atuais, em nosso projeto de pesquisa, denominado
Ubibus (Vieira et. al., 2011), investigamos o uso de tecnologias relacionadas a
dispositivos móveis, web e mídias sociais como apoio aos passageiros de transporte
público em grandes e médios centros urbanos.
4
Estudos recentes mostram que a população urbana brasileira teve aumento
acentuado nos últimos anos. Com a crescente taxa de urbanização ocorre a saturação das
vias de transporte, que deixam o trânsito nas cidades de médio e grande porte cada dia
mais congestionado. Diante deste cenário, sistemas de transporte público têm papel
importante no transporte de passageiros, principalmente nas áreas metropolitanas (Li et.
al., 2010). Porém, muitas barreiras levam o usuário a não optar pela utilização do
transporte coletivo urbano, entre elas está a falta de informações sobre este tipo de
transporte. Neste contexto, criamos o sistema RecRoute uma solução direcionada aos
usuários de ônibus, que usa informações contextuais estáticas e dinâmicas do tráfego e
de seus usuários para recomendar rotas a esses passageiros apoiando-os em suas
tomadas de decisão.
1.2 Objetivos
Este trabalho tem por objetivo geral desenvolver um sistema de recomendação
de rotas de ônibus, denominado RecRoute, capaz de recomendar aos passageiros as
melhores rotas para seu deslocamento, tomando por base pontos de origem e destino,
preferências do usuário e outras informações contextuais como, por exemplo, condições
climáticas. A aplicação deve ser acessível de qualquer lugar, inclusive nas ruas e
avenidas da cidade, por meio de dispositivos móveis.
O RecRoute tomará decisões através da percepção e adaptação de informações
contextuais do usuário levando em consideração suas preferências, por meio do
processamento de dados estáticos e dinâmicos como, por exemplo, localização de
paradas de ônibus, previsões do tempo e possíveis deficiências do usuário. Com isso,
espera-se prover informações de grande relevância para os usuários de transporte
coletivo urbano, incentivando e fidelizando o uso do ônibus como meio de transporte.
Para alcançar o objetivo geral, é necessário realizar os seguintes passos:
• Realizar um levantamento do estado da arte e aprofundar conhecimentos
acerca dos Sistemas Inteligentes de Transporte, focando nas informações contextuais
oferecidas aos usuários de transportes públicos por ônibus e sistemas de recomendação
de rotas;
• Fazer um estudo sobre as técnicas propostas na literatura para utilização de
sistemas de recomendação, informações contextuais, técnicas e algoritmos de
classificação e técnicas de realimentação de relevância;
5
• Definir uma heurística de ordenação das rotas a recomendar de acordo com
o contexto dos usuários, técnicas e algoritmos de classificação;
• Especificar e implementar um protótipo da aplicação proposta;
• Avaliar o desempenho do protótipo.
1.3 Contribuições Esperadas
O projeto aqui proposto tem como principal contribuição a especificação e
implementação de um sistema de recomendação de rotas de transporte público sensível
ao contexto do passageiro e a outras informações como, por exemplo, condições
climáticas, temporais e situação do tráfego atual, entre outras.
Outra contribuição diretamente ligada à construção do sistema de recomendação
é a elicitação de informações contextuais a serem utilizadas em SIU onde, por meio de
um levantamento e estudo detalhado, definiremos quais as informações contextuais
mais relevantes para este tipo de aplicação. Estas informações serão tratadas por um
componente especializado, armazenadas e, se for o caso, georeferenciadas, apoiando a
tomada de decisão da aplicação.
1.4 Estrutura da Dissertação
Esta dissertação está organizada em cinco capítulos, além do capítulo atual,
conforme descrito a seguir:
O Capítulo 2 apresenta os conceitos básicos e considerações sobre os Sistemas
Inteligentes de Transporte - ITS, categorização dos ITS, Sistemas de Informação ao
Usuário – SIU. Também serão abordados temas como Contexto Computacional e
Sistemas de Recomendação.
O Capítulo 3 apresenta uma revisão do estado da arte que teve por objetivo
apresentar o cenário atual da utilização de informações contextuais pelos Sistemas de
Informação ao Usuário e alguns trabalhos relacionados de sistemas de recomendação e
exibição de rotas.
O Capítulo 4 apresenta o RecRoute. Os módulos da arquitetura do sistema são
apresentados e detalhados, juntamente com as especificações, a modelagem do
contexto, os requisitos e restrições da aplicação. Também são expostos os aspectos de
implementação utilizados no desenvolvimento do protótipo do RecRoute.
6
O Capítulo 5 apresenta os experimentos e resultados obtidos com o aplicativo.
Detalhamos os objetivos, a configuração, a execução e, principalmente, os resultados
obtidos nos experimentos.
Finalmente, o capítulo 6 apresenta as conclusões, contribuições e limitações
associadas a este trabalho, seguidas de propostas para trabalhos futuros a serem
desenvolvidos.
7
Capítulo 2
Conceitos Básicos
Neste capítulo, apresentamos os conceitos básicos necessários ao melhor
entendimento deste trabalho, definindo e caracterizando os ITS, apresentando suas
categorias, descrevendo Sistemas de Informação ao Usuário e apresentando conceitos
sobre Contexto Computacional e Sistemas de Recomendação. Este referencial teórico é
de extrema relevância no contexto deste trabalho.
2.1 Sistemas Inteligentes de Transporte
Os Sistemas Inteligentes de Transporte (ITS) surgiram nos Estados Unidos no
final dos anos 80, por intermédio de um grupo, que almejava proporcionar uma nova
visão aos sistemas de transportes do país. Apesar dos grandes avanços ocorridos,
principalmente na infraestrutura, nas últimas décadas, muitos problemas ainda
permaneciam, impactando as metas e objetivos traçados para o sistema de transporte
norte-americano nos anos seguintes. Os congestionamentos, a segurança, o meio-
ambiente e a produtividade eram os principais temas levados em consideração por este
grupo (Sussman, 2005). Assim, o desejo de manter uma ascendente mobilidade urbana
aliada a uma sustentabilidade ambiental e econômica fez surgir o conceito de sistemas
de veículos e estradas inteligentes (IVHS, do inglês Intelligent Vehicle-Highway
Systems), futuramente denominados, ITS (Zavergiu, 1996).
Sistemas Inteligentes de Transporte são ferramentas que integram informação,
métodos de comunicação, computadores e outras tecnologias a fim de subsidiar o
sistema de transporte de determinada região, integrando pessoas, estradas e veículos,
utilizando tecnologias avançadas de comunicação e processamento de dados (An et. al.,
2011). Para Goméz e colegas (2009), os ITS têm o objetivo de subsidiar a infraestrutura
do sistema de transporte a fim de buscar melhorias nos seguintes aspectos:
gerenciamento de tráfego e sugestão de rotas aos motoristas e passageiros; informações
aos usuários sobre condições meteorológicas, de estradas, possíveis perigos, locais de
incidentes, rotas ótimas e itinerário de veículos; conhecimento sobre o controle de
veículos em determinadas situações, sistemas de alertas e colisões.
8
De acordo com Silva (2000) os ITS devem prover uma ligação inteligente entre
os diversos envolvidos nos sistemas de transportes, bem como com sua infraestrutura.
Segundo Zhang e colegas (2011) os ITS podem ajudar o gerenciamento e o bom
andamento da dinâmica de trânsito, fornecendo mais informações e, consequentemente,
reduzindo os congestionamentos e aumentando a capacidade das vias (An et. al., 2011).
Segundo Ghosh e Lee (2010) algumas características dos Sistemas Inteligentes
de Transporte são:
• Prover informações aos usuários dos sistemas de transportes: A falta de
informação, principalmente aos motoristas é motivo causador de impaciência, o que
pode levar à condução imprudente, incidentes, stress ao volante e, consequentemente, a
acidentes;
• Estimativas e cálculos automatizados: Os ITS realizam estimativas e
cálculos automatizados subsidiando a tomada de decisão dos usuários. Isto gera
informações mais precisas, possibilitando maior controle e coordenação;
• Exatidão nas informações concedidas: As informações providas pelos ITS
devem ser precisas, oportunas, relevantes e consistentes. Caso contrário, os usuários
podem questionar a veracidade das mesmas e isto pode ocasionar o abandono prematuro
do sistema;
• Não intrusividade: Os ITS não devem tentar controlar o comportamento
dos motoristas, exceto em condições de emergência. O princípio fundamental é fornecer
ao condutor, o máximo de informações possível e equipá-lo com os devidos recursos
computacionais para que possa determinar livremente suas ações;
• Flexibilidade: Os Sistemas Inteligentes de Transporte precisam ser
flexíveis com o objetivo de se adaptarem a dinamicidade do trânsito, principalmente nas
grandes cidades;
• Agilidade no fornecimento das informações: Devido à sua natureza
dinâmica, os ITS demandam agilidade no fornecimento das informações, pois caso
contrário, as informações fornecidas podem gerar erro ou não serem condizentes com a
realidade;
• Foco no usuário: Embora algumas informações como a utilização das vias
e tempo médio de viagem sejam importantes para os planejadores e gerentes
operacionais dos meios de transportes. A preocupação com as informações para os
9
usuários individuais também são muito importantes, pois estes são elementos diretos do
trânsito;
• Arquitetura distribuída e iteração assíncrona: Pela característica
dinâmica dos ITS, cada vez mais usuários necessitam de um serviço com características
ubíquas e que se adaptem, em tempo real, às suas reais necessidades, exigindo dos
sistemas concepção assíncrona, algoritmos distribuídos e alocação dinâmica de
recursos;
• Concepção a base de simulações: Muitos dos atuais Sistemas Inteligentes
de Transporte manipulam dados de tamanho e complexidade crescentes, o que implica
num grande número de variáveis e parâmetros, tornando-os mais complexos. De tal
forma que na concepção do sistema, a simulação pode ser o único mecanismo para
estudá-los objetivamente;
• Verificação e correção contínua de erros: Sistemas complexos podem
conter erros de projeto que se manifestam de forma irregular durante as operações. Tais
erros devem ser rapidamente corrigidos, a fim de manter a confiança do usuário;
• Verificação contínua de inconsistências entre os ITS e as leis sociais:
Qualquer arquitetura de ITS deve ser baseada em princípios lógicos e leis de trânsito do
local onde vai operar. As possíveis inconsistências devem ser cuidadosamente
analisadas.
Percebe-se que a utilização de sistemas ITS proporciona alguns benefícios
diretos e indiretos para os usuários, empresas operadoras, organismos gestores e
sociedade em geral (Pilon, 2009). A Tabela 2.1 mostra alguns destes benefícios.
Tabela 2.1 - Benefícios com a Utilização dos ITS
Fonte: Adaptado (Thomas, 2001)
Tempo de Deslocamento Decréscimo de 13% a 48%
Velocidade de Deslocamento Acréscimo de 16% a 62%
Capacidade da Via Acréscimo de 8% a 25%
Total de Acidentes Decréscimo de 24% a 50%
Consumo de Combustível Decréscimo de 41% em combustíveis usados em congestionamentos
Poluição
Decréscimo de 122 Toneladas/Ano na emissão de CO2;
Decréscimo de 1,4 Toneladas/Ano na emissão de HC;
Decréscimo de 1,2 Toneladas/Ano na emissão de NO2
Esta seção teve por objetivo apresentar os principais conceitos de Sistemas
Inteligentes de Transporte, que serviram de referência para o desenvolvimento deste
10
trabalho. Na Seção 2.1.1, são citadas as várias categorias as quais pertencem os ITS. Na
Seção 2.1.2, são apresentados características e conceitos de Sistemas de Informação ao
Usuário.
2.1.1 Categorização dos Sistemas Inteligentes de Transporte
Com o objetivo de abordar problemas pontuais em determinadas áreas dos
sistemas de transportes, os ITS se subdividem em várias categorias, conforme descritas
a seguir (Sussman, 2005).
• Sistemas Avançados de Transporte Público (APTS, do inglês Advanced
Public Transportation Systems): Estes sistemas têm por objetivo disponibilizar
informações ao usuário do transporte público, minimizar tempos de espera, prover
segurança e facilidade para o pagamento das tarifas e auxiliar na melhoria do
escalonamento, itinerário e horário dos veículos que fazem parte da rede pública de
transporte;
• Sistemas Avançados de Gerenciamento de Tráfego (ATMS, do inglês
Advanced Traffic Management Systems): Estas aplicações realizam o gerenciamento do
tráfego de forma geral, visando tornar o trânsito mais eficiente, por meio de serviços
como: detecção e redução de congestionamentos, sugestão de novas rotas aos motoristas
e maior segurança aos condutores e pedestres por meio de controle de semáforos e
monitoramento, utilizando câmeras de vídeo;
• Sistemas Avançados de Informação ao Viajante (ATIS, do inglês
Advanced Traveller Information Systems): Estes têm por objetivo fornecer aos viajantes
informações como as condições das estradas, do trânsito, ambientais e meteorológicas,
locais de incidentes e com fiscalização eletrônica, melhores rotas e até tipos de
transportes mais adequados a viagem;
• Sistemas Avançados de Controle Veicular (AVCS, do inglês Advanced
Vehicle Control Systems): Proporcionam maior eficiência e segurança aos motoristas.
São normalmente constituídos de sensores, alertas e outras tecnologias que propiciam
ao condutor controlar e/ou supervisionar as condições de dirigibilidade e tomar medidas
necessárias para evitar acidentes;
• Operação de Veículos Comerciais (CVO, do inglês Commercial Vehicle
Operations): Oferecem suporte e gerenciamento para operações de veículos comerciais
11
como, por exemplo, frotas de táxis, motos, vans e ônibus. Este tipo de sistema tem por
objetivo melhorar a produtividade e eficiência de operações de transportes de cargas,
interferências com relação às rotas, tempos perdidos em deslocamentos e segurança dos
veículos, cargas e condutores;
• Sistemas Avançados de Transporte Rural (ARTS, do inglês Advanced
Rural Transportation Systems): Englobam viagens dentro, e através de centros
habitacionais com menos de 50000 residentes. Têm por principais objetivos a previsão
do tempo necessário para as viagens, a redução dos acidentes, o incremento do tráfego,
a redução dos custos e uma maior satisfação dos usuários. As estradas das zonas rurais
têm um conjunto de atributos particulares, como estradas estreitas, curvas apertadas,
pouca visibilidade, sinalização de trânsito reduzida, poucos percursos alternativos e
escassos meios de comunicação (Figueiredo, 2005). Aplicações de sistemas nesta
categoria ainda requerem alguns esforços de pesquisa.
Segundo Pilon (2009), uma categoria, não citada anteriormente, deve fazer parte
do emprego de alguns ITS, conforme ilustrado na Figura 2.1. São os sistemas de Coleta
Eletrônica de Pedágio (ETC, do inglês Electronic Toll Collection), que oferecem
suporte aos mais adequados e eficientes métodos de cobrança de pedágio, a fim de
melhorar o trânsito e minimizar tempos perdidos.
Figura 2.1 - Categorias dos Sistemas Inteligentes de Transporte
Fonte: adaptado de (Pilon, 2009)
12
2.1.2 Sistemas de Informação ao Usuário
Um problema pontual enfrentado em boa parte das capitais do Brasil no que se
refere ao sistema de transporte público, diz respeito à falta de informação e pontualidade
das linhas de ônibus que circulam pela cidade.
Uma parte dos APTS, anteriormente apresentados, têm por objetivo prover
informações aos passageiros do transporte público. Os sistemas desta categoria são
denominados Sistemas de Informação ao Usuário (SIU). Estas aplicações permitem
extrair do conjunto de informações relativas a uma rede de transporte coletivo, aquelas
que correspondem a uma necessidade específica (tempo de espera na parada) ou
personalizada (itinerário de linhas de ônibus) dos passageiros (Shein, 2003).
Em Silva (2000), são destacadas algumas funções dos sistemas de informação ao
usuário, conforme apresentado no Quadro 2.1. O autor explica ainda que esta tecnologia
pode garantir um aumento de qualidade ao serviço oferecido aos passageiros do
transporte público.
Quadro 2.1 - Funções dos Sistemas de Informação ao Usuário
Fonte: (Silva, 2000)
Promocional
• Mobilidade: propor motivos para viagens e possíveis destinos; • Presença: informar as pessoas sobre o transporte público como parte do
pacote de facilidades ofertadas; • Imagem: melhorar a imagem do transporte público.
Ensinamento • Entendimento: informar como utilizar o transporte público; • Adequabilidade: divulgar as regras envolvidas no uso dos sistemas.
Operacional
• Planejamento de Viagens: informar sobre restrições e oportunidades associadas com o uso do sistema para diferentes tipos de viagens;
• Acesso: capacitar pessoas para acesso à rede de transporte público; • Viagem: capacitar a realização de uma viagem; • Modificação: informar sobre mudanças na programação.
Moderação • Comportamento: aliviar a ansiedade do viajante; • Controle: aumentar o controle do usuário sobre a escolha entre as opções
disponíveis.
Em muitas partes do mundo, os gestores e operadores se preocupam em
responder as perguntas dos passageiros através de SIU, como forma de atrair mais
usuários para o serviço de transporte público (Silva, 2000). Questões frequentes como:
“a que horas vai passar o próximo veículo?”, “Qual é o tempo de espera?” e “Qual é a
melhor rota de ônibus para o meu destino?”, são requeridas com maior intensidade entre
os usuários. Nos grandes centros metropolitanos, onde os deslocamentos são maiores,
13
mais demorados e suscetíveis a congestionamentos, as pessoas atribuem um maior valor
a estas informações (Pilon, 2009).
Algumas soluções de sistemas de informação ao usuário já operam de maneira
funcional em países desenvolvidos, em que um sistema viário eficiente garante
informações sobre o transporte público aos passageiros. Em cidades com constantes
engarrafamentos, e com sistema viário ineficiente é preciso considerar informações
além das estáticas, mantidas em bases de dados. A utilização de informações
contextuais, como exemplo, informações dos usuários e climáticas, podem tornar as
aplicações desenvolvidas mais adaptativas aos passageiros, satisfazendo suas
preferências e necessidades. A seguir serão apresentados alguns conceitos sobre
Contexto Computacional.
2.2 Contexto Computacional
De acordo com Vieira e colegas (2009), a computação sensível ao contexto
investiga o uso das informações presentes na interação entre a pessoa (humano) e as
máquinas (computador), com o objetivo de melhorar a qualidade da comunicação entre
o ser humano e sistemas computacionais. Estas informações, muitas vezes
desconsideradas do processo de interação são denominadas de informações contextuais
e podem ser utilizadas como fontes de conhecimento pelos sistemas.
Por meio do uso do contexto, os sistemas podem automaticamente, e em
diversas circunstâncias, adaptar seus serviços e conteúdos, fornecendo informações
personalizadas aos usuários, levando em consideração, por exemplo, a sua localização,
dia e horário de acesso, e/ou as características dos dispositivos utilizados (Goularte,
2003). Deste modo, torna-se possível o aparecimento de novas gerações de sistemas que
levam em consideração os diversos tipos de contextos.
A utilização de contexto na Computação é um tema de pesquisa oriundo das
áreas da Computação Ubíqua e Inteligência Artificial. Mark Weiser em (1991) foi um
dos pioneiros na realização de estudos em Computação Ubíqua. Naquela época, Weiser
vislumbrava ambientes dotados de recursos computacionais capazes de auxiliar os
humanos em suas atividades diárias, fornecendo aos usuários informações e serviços de
forma contínua, onipresente, e o mais transparente possível.
14
Esta seção tem por objetivo discutir os principais conceitos da área da
Computação Sensível ao Contexto, que serviram de referência para o desenvolvimento
desta pesquisa. Na Seção 2.2.1, é apresentada uma visão geral das definições de
contexto computacional e como estas foram modificadas no decorrer do tempo. Na
Seção 2.2.2, são apresentados conceitos de sistemas sensíveis ao contexto e como o
contexto computacional é utilizado para o desenvolvimento destes sistemas.
2.2.1 Definições de Contexto Computacional
Em (Bazire e Brézillon, 2005), os autores coletaram um conjunto de,
aproximadamente, 150 definições oriundas de diferentes domínios, e chegaram a duas
principais conclusões:
• O contexto atua como um conjunto de restrições que influenciam o
comportamento de um sistema, embutido em uma dada tarefa;
• A definição de contexto depende da área de conhecimento à qual pertence.
Existem inúmeras definições na atual literatura para o conceito de contexto
computacional, como as apresentadas por Brézillon (1999), Schilit e colegas (1994),
Brown e colegas (1997), Franklin e Flaschbart (1998) e Ward e colegas (1997), que
citam Contexto Computacional ou simplesmente “Contexto” como um termo
abrangente, o que implica em uma dificuldade de formalização e consequente
surgimento de várias abordagens para defini-lo. A seguir, destacamos algumas destas
definições utilizadas no decorrer dos anos.
Na década de 90, surgiram as primeiras definições para o termo Contexto em
pesquisas na área de computação móvel. No entanto, estas definições eram apenas
enumerações de possíveis informações contextuais, conforme podemos constatar nos
trabalhos de Schilit e colegas (1994) e Brown e colegas (1997). Essas duas definições
são respectivamente: “Em um sistema computacional móvel distribuído, contexto é a
localização do usuário, a identificação de pessoas e objetos próximos, e os estados dos
dispositivos com que o usuário interage.” e “Localização, identidade das pessoas ao
redor do usuário, a hora do dia, estação do ano, temperatura, entre outros.”. Contudo,
Dey e Abowd (2001) argumentaram que estas definições são difíceis de serem
aplicadas, pois quando se considera um novo tipo de informação contextual, não fica
15
claro como a definição pode ajudar a decidir a obrigatoriedade de classificar a
informação como contextual ou não.
Para serem mais genéricas e, portanto, úteis em uma maior variedade de
problemas, as definições precisavam ser mais abstratas. Neste caso, algumas outras
definições podem ser citadas, tais como:
• (Brown, 1995) “contexto são os elementos do ambiente do usuário que o
computador conhece”;
• (Ward et. al., 1997) “contexto é o estado de tudo aquilo que circunda a
aplicação”;
• (Franklin e Flaschbart, 1998) “contexto é a situação do usuário”;
• (Brézillon, 1999) “contexto é o que restringe a solução de um problema,
sem interferir nele explicitamente”.
Posteriormente Dey e Abowd (2001) propuseram nova definição, segundo eles
“contexto é qualquer informação que pode ser utilizada para caracterizar a situação de
entidades (como uma pessoa, lugar ou objeto), que são consideradas relevantes para a
interação entre um usuário e uma aplicação, incluindo o usuário e a aplicação em si.
Contexto é tipicamente a localização, identidade e estado de pessoas, grupos e objetos
físicos e computacionais.”. Essa definição é uma moderação entre a especificidade das
primeiras definições e a generalidade das definições de Brown, Franklin e Flaschbart,
Brézillon e Ward e colegas. Além disso, essa definição é mais comumente utilizada por
estudiosos de Computação Sensível ao Contexto.
Na área de Interação Humano Computador (IHC), Dourish defende que contexto
é uma entidade dinâmica, subjetiva e cujos valores e características não podem ser
previstos e definidos previamente (Dourish, 2004).
Zimmermann e colegas (2007), em busca de uma definição operacional para
contexto, estenderam a definição de Dey e Abowd (2001) por meio da separação dos
elementos que caracterizam a situação de uma entidade em categorias, pois para eles
qualquer informação que descreva o contexto de determinada entidade faz parte de uma
das seguintes categorias:
• Individuo: propriedades que definem a entidade em si;
• Atividade: todas as tarefas em que a entidade pode estar envolvida;
16
• Localização: posição espacial da entidade;
• Tempo: localização temporal da entidade;
• Relações: informações sobre qualquer relação que a entidade possa
estabelecer com outras entidades.
A Figura 2.2 representa a definição de Zimmermann e colegas (2007), onde as
cinco categorias representam o contexto de determinada entidade.
Figura 2.2 – Categorias Fundamentais para as Informações Contextuais
Fonte: adaptado de (Zimmermann et. al., 2007)
A visão de Vieira e colegas (2009) sobre a definição de contexto faz uma
distinção clara entre dois conceitos: contexto e elemento contextual, como descrito a
seguir.
• Um elemento contextual (CE, do inglês Contextual Element) é qualquer
dado, informação ou conhecimento que permite caracterizar uma entidade em um
domínio;
• O contexto da interação entre um agente e uma aplicação, para executar
alguma tarefa, é o conjunto de elementos contextuais instanciados que são necessários
para apoiar a tarefa atual.
Segundo Vieira (2008), o conceito de elemento contextual é importante e
complementar ao contexto, A autora define um elemento contextual como “qualquer
dado ou informação que permite caracterizar uma entidade em um domínio”. Elementos
contextuais estão relacionados, portanto, ao conjunto de perguntas definidas como
(5W+1H), ou seja, (Who) quem, (When) quando, (Where) onde, (Why) por quê, (What)
o quê e (How) como, respectivamente indicando informações relativas às pessoas, o
tempo, o local/ambiente, os motivos das ações do usuário, as atividades que o usuário
17
desempenha e a forma como os próprios elementos contextuais são adquiridos. Sendo
assim, contexto é definido como o conjunto de elementos contextuais instanciados e
necessários no auxílio da execução de determinada tarefa por um agente em uma
aplicação específica.
Por essa definição, pode-se verificar que os autores consideram o contexto como
aplicado à interação entre um agente e uma aplicação. Um agente pode ser um agente
humano ou um agente de software. Além disso, os elementos que compõem o contexto
devem possuir um relacionamento de relevância com a tarefa que o agente está
executando. Um CE é um tipo de informação que pode ser conhecida, codificada e
representada antecipadamente; ela é estável e pode ser definida em tempo de projeto. O
contexto é dinâmico, depende da tarefa atual do agente e deve ser construído em tempo
de execução, quando uma interação ocorre (Vieira et. al., 2009).
2.2.2 Sistemas Sensíveis ao Contexto
Para Chen (2003) Computação sensível ao contexto é um paradigma emergente
para dispensar usuários cotidianos de configurar e instruir manualmente seus sistemas
computacionais.
Vieira e colegas (2009) citam sistemas sensíveis ao contexto como sendo
aqueles que gerenciam elementos contextuais (CEs) relacionados a uma aplicação em
um domínio e usam esses elementos para apoiar um agente na execução de alguma
tarefa, como por exemplo, aumento da percepção do agente em relação à tarefa em
execução ou provimento de adaptações que facilitem a execução da tarefa.
Em sistemas computacionais, contexto pode ser considerado como um
instrumento de apoio à comunicação entre os sistemas e seus usuários. A partir do
conhecimento do contexto, a aplicação poderá, em algumas circunstâncias, alterar a
sequência de ações a serem executadas, o estilo das interações e o tipo de informação
fornecida aos usuários de modo a adaptar-se às necessidades atuais destes. Sistemas que
utilizam contexto para direcionar ações e comportamentos são denominados de
Sistemas Sensíveis ao Contexto (Vieira, 2009).
A Figura 2.3 apresenta a diferença de comportamento entre aplicações tidas
como “tradicionais” e aplicações sensíveis ao contexto. Podemos perceber que as
aplicações sensíveis com contexto (Figura 2.3b) consideram informações explícitas
fornecidas pelos usuários, aquelas armazenadas em bases de conhecimento além das
18
contextuais, as inferidas por meio de raciocínio e, ainda, aquelas percebidas a partir do
monitoramento do ambiente. Essas informações obtidas de forma não explícita são
chamadas de informações contextuais (Vieira et. al., 2009). Já as aplicações tradicionais
(Figura 2.3a) consideram apenas as informações explícitas fornecidas pelos usuários.
Figura 2.3 - Visão da Aplicação Tradicional e uma Aplicação Sensível ao Contexto
Fonte: (Vieira et. al., 2009)
Segundo Vieira e colegas (2009) e Zimmermann e colegas (2007), as
informações contextuais podem enriquecer semanticamente a solicitação explícita do
usuário e, com isso, executar serviços mais próximos às suas necessidades. Dentre estes
serviços estão:
• Assistência na execução de tarefas em realização como, por exemplo, alertar
o usuário sobre ações que ele deve executar para alcançar seus objetivos, ou recomendar
recursos existentes relacionados à tarefa;
• Percepção do contexto, que se refere a notificar o usuário sobre o contexto
associado a pessoas e interações do seu interesse, relativos à tarefa em execução,
apoiando o usuário na coordenação de suas ações;
• Adaptação, ou variação do comportamento do sistema, respondendo de
forma oportuna às mudanças ocorridas no ambiente e às ações e definições dos usuários
como, por exemplo, personalização de interfaces e conteúdo;
• Outros serviços, como o uso do contexto para enriquecer semanticamente o
conhecimento gerenciado pela aplicação.
2.3 Sistemas de Recomendação
Atualmente a grande quantidade de informações disponíveis, principalmente na
Web, ocasiona algumas dúvidas com relação à possível escolha das alternativas
19
apresentadas, sobretudo se o indivíduo possui pouca experiência sobre o assunto
abordado. Para enfrentar este tipo de problema geralmente confiamos em
recomendações, que nos são passadas de forma mais direta.
Os Sistemas de Recomendação auxiliam no aumento da capacidade e eficácia
deste processo de indicação já bastante conhecido na relação social entre seres humanos
(Resnick e Varian, 1997).
Segundo Burke (2002), Sistemas de Recomendação (SR) são aqueles que
produzem sugestões individualizadas, ou têm a função de guiar o usuário de forma
personalizada, em ambientes onde a quantidade de informação é demasiadamente
grande.
Outras definições de sistemas de recomendação podem ser encontradas na
literatura. Na visão de Vozalis e Margaritis (2003) sistemas de recomendação foram
definidos como uma técnica inteligente para lidar com o problema da sobrecarga de
informação. Para Herlocker e colegas (2004), um sistema de recomendação antecipa
quais itens um usuário achará relevante, e apresenta sugestões ao usuário que é
beneficiado pela filtragem de itens.
De acordo com Baltrunas (2008), sistemas de recomendação são ferramentas
poderosas que podem ajudar o usuário a enfrentar o problema da sobrecarga de
informação, fornecendo recomendações personalizadas sobre vários tipos de produtos e
serviços. Conforme descrito por Chorianopoulos (2008), o principal objetivo dos
sistemas de recomendação é apresentar sugestões de serviços diversos de acordo com o
perfil pré-determinado do usuário Para Blanco-Fernandes e colegas (2010), sistemas de
recomendação podem, por exemplo, auxiliar o usuário a escolher um plano de viagem,
indicando lugares para visitar, opções de hotéis, companhias aéreas, de acordo com as
preferências do usuário indicadas em seu perfil.
Esta seção tem por objetivo apresentar alguns dos principais conceitos dos
Sistemas de Recomendação, utilizados como referência para o desenvolvimento deste
trabalho. Na Seção 2.3.1, são apresentadas as técnicas utilizadas para as filtragens de
itens em sistemas de recomendação. Na Seção 2.3.2, são apresentados conceitos de
sistemas de recomendação sensíveis ao contexto. Na Seção 2.3.3, são apresentados
conceitos sobre Realimentação de Relevância em SR. Finalmente na Seção 2.3.4, são
apresentados conceitos sobre Aprendizagem de Máquina e Predição em SR.
20
2.3.1 Técnicas de Filtragem de Informações
A sobrecarga de informação é um dos principais motivos para a utilização de
sistemas de recomendação. Este problema tem motivado a exploração de diversas
técnicas de filtragem de informação da área de Recuperação de Informações (RI) em
sistemas de recomendação. Nesta seção, serão apresentadas as principais abordagens de
filtragem de informação:
Filtragem Colaborativa
A Filtragem Colaborativa assume que se dois usuários têm preferências por itens
similares, ou acessam itens na mesma categoria, irão se interessar por outros itens na
mesma situação. Tal associação tem por objetivo criar grupos de usuários pela
classificação dos interesses e através da relação de preferências entre o grupo,
recomendar mais produtos ou conteúdos (Ziesemer e Oliveira 2011).
Os sistemas de recomendação baseados em filtragem colaborativa não exigem
um processamento das características dos conteúdos. Em contraste, esta técnica procura
explorar a troca de experiências entre os usuários e usa as opiniões deles para predizer
os interesses de outros. Adomavicius e Tuzhilin (2005) destacam que uma característica
importante desta técnica é ser independente de domínio, especialmente indicada para
recomendação de conteúdo que não pode ser descrito adequadamente por metadados.
Para Silva (2011) neste tipo de filtragem, o usuário pode indicar suas opiniões
em forma de avaliações de vários itens e o filtro colaborativo correlaciona suas
avaliações com aquelas de outros usuários a fim de encontrar usuários com perfis
semelhantes e fazer futuras recomendações. Segundo Herlocker e colegas (2004) a
Filtragem Colaborativa viabiliza a criação de comunidades, pela agregação de pessoas
que possuem interesses comuns. Outra vantagem deste tipo de filtragem é a
possibilidade de apresentar aos usuários recomendações inesperadas. O usuário poderia
receber recomendações de itens que não estavam sendo pesquisados de forma ativa
(Reategui e Cazella, 2005).
De acordo com Adomavicius e Tuzhilin (2005), uma variável importante em
Sistemas de Recomendação que utilizam a filtragem colaborativa refere-se à coleta de
informações dos usuários, que pode apresentar alguns problemas, conforme descritos a
seguir.
21
1. Problema do novo item: novos itens são adicionados regularmente à base
de dados de sistemas de recomendação. Um novo item somente poderá ser
recomendado para o usuário quando o item for avaliado por um número considerável de
usuários;
2. Problema de pontuações esparsas: o sucesso de um sistema de
recomendação baseado em Filtragem Colaborativa depende da disponibilidade de uma
massa crítica de usuários. Este problema ocorre quando o número de usuários do
sistema é pequeno e o número de avaliações obtido é muito menor que o número de
avaliações que necessita ser previsto. Com isso, é importante conseguir predição
eficiente de avaliações a partir de um pequeno número de exemplos;
3. Problema do novo usuário: para fazer recomendações precisas o sistema
de recomendação deve primeiro aprender as preferências do usuário a partir de etapa de
treinamento, onde o usuário efetua avaliações;
4. Problema do usuário excêntrico: caso um usuário tenha gostos muito
diferentes do normal, o sistema terá dificuldades para encontrar outros usuários com
gostos similares, sendo assim suas recomendações podem se tornar pobres (Reategui e
Cazella 2005).
Filtragem Baseada em Conteúdo
Segundo Reategui e Cazella (2005), esta abordagem tem por objetivo realizar
uma seleção baseada na análise de conteúdo das informações e de perfil do usuário. Isso
ocorre através da comparação das descrições dos itens com os interesses dos usuários
visando verificar se o item é ou não relevante para cada usuário.
Adomavicius e Tuzhilin (2005) afirmam que esta técnica tem origem na área de
Recuperação de Informações e identifica os usuários com comportamentos semelhantes.
Uma vez feito isto, baseado em modelos de algoritmos, utiliza conjuntos de avaliações
para aprender um modelo e prever novas recomendações. Segundo Herlocker e colegas
(2004) os interesses para a recomendação são fornecidos explicitamente pelo próprio
usuário, por meio de um perfil, ou obtidas por meio da avaliação de conteúdos que o
usuário consome ao longo do tempo.
De acordo com Adomavicius e Tuzhilin (2005) nos sistemas de recomendação
baseados nesta abordagem, o usuário deverá receber uma lista de itens similares àqueles
22
que o mesmo gostou em algum momento anterior, onde a relevância de um conteúdo
para o usuário é proporcional à similaridade entre o conteúdo e o seu perfil. A filtragem
baseada em conteúdo é uma técnica normalmente empregada em sistemas de
recomendação, onde o foco é recomendar itens contendo informação textual, tais como
páginas Web, artigos científicos, dentre outros.
Segundo Reategui e Cazella (2005), sistemas de recomendação que utilizam este
tipo de técnica para recuperar os itens a serem recomendados podem sofrer com as
seguintes limitações:
1. Problema da análise limitada do conteúdo: esta técnica é limitada pelas
características que estão explicitamente associadas ao conteúdo. Este deve estar numa
forma estruturada, como por exemplo, documentos de texto, para que possa ser
analisado automaticamente por um computador. Assim, é mais complexo empregar
técnica de filtragem baseada em conteúdo para análise e extração de conteúdo
multimídia, como por exemplo, imagens, vídeos ou sons do que para extração de
conteúdo textual. Contudo o entendimento do conteúdo em modo texto ainda pode ser
prejudicado devido ao uso de sinônimos, como por exemplo, um texto que possua as
palavras "carro" e "automóvel" pode não ser considerado similar, embora estejam
abordando o mesmo assunto;
2. Problema da super especialização: ocorre quando um sistema de
recomendação pode recomendar somente itens semelhantes a itens avaliados
anteriormente como positivamente ou negativamente. Com isso, a diversidade das
recomendações é comprometida;
3. Problema do novo usuário: o usuário necessita avaliar um número
suficiente de itens para que um SR possa realmente obter suas preferências e apresentar-
lhe recomendações confiáveis.
Filtragem Híbrida
Sistemas de recomendação com Filtragem Híbrida são a união de duas ou mais
abordagens de recomendações utilizadas em conjunto. A iniciativa de usar técnicas de
recomendação diferentes conjuntamente é uma tentativa de superar os problemas
conhecidos na área (Ziesemer e Oliveira 2011).
23
Filtragem Baseada em Regras
Este tipo de sistema é comumente empregado na área de e-commerce e utiliza
informações do usuário, desde que de forma explícita, para recomendar os itens. As
regras do sistema podem ser condicionadas aos dados do usuário como, por exemplo, a
localização demográfica ou outras informações fornecidas por ele (Ziesemer e Oliveira
2011).
Filtragem Baseada em Grafos
Recentemente, o uso da Internet começou um processo de transformação, onde a
colaboração entre usuários e sistema tornou-se essencial para disseminar informação,
mudando também a relação de usuários no ambiente Web. Esta técnica explora as
informações e as relações dos usuários em redes sociais para recomendar itens ou
conteúdo (Ziesemer e Oliveira, 2011).
Segundo Ziesemer e Oliveira (2011) a Filtragem Baseada em Regas e a
Filtragem Baseada em Grafos são abordagens bastante promissoras que surgiram
recentemente para melhorar e apoiar os sistemas de recomendação.
2.3.2 Sistemas de Recomendação Sensíveis ao Contexto
Os sistemas de recomendação atuais necessitam de alguns aprimoramentos para
tornar os métodos de recomendação mais eficientes. Tradicionalmente tais sistemas são
baseados somente em perfis dos usuários ou em variáveis estáticas, e não levam em
consideração as mudanças de contexto que podem influenciar os interesses do usuário.
Desta forma, a incorporação de informações contextuais no processo de recomendação é
destacada na literatura como uma possível extensão para os sistemas de recomendação
tradicionais (Adomavicius e Tuzhilin, 2008).
Segundo Baltrunas (2011), muitas vezes uma recomendação pode ser mais
relevante se o seu contexto é conhecido. Por esta razão, Sistemas de Recomendação
Sensíveis ao Contexto, denominados (CARS, do inglês Context-Aware Recommender
Systems) estão ganhando mais destaque, e as diversas abordagens têm sido usadas
incorporando o conhecimento de contexto, melhorando assim as medidas de
desempenho. Assim, a nova geração de sistemas de recomendação deverá explorar as
informações de contexto para fornecer melhores recomendações (Baltrunas, 2008).
24
Segundo Adomavicius e Tuzhilin (2008), diferentes abordagens estão sendo
investigadas para incorporar informações de contexto em sistemas de recomendação.
Tais abordagens podem ser classificadas em dois grupos: (1) contexto dirigido a
consultas e pesquisas; e (2) estimação e obtenção de preferências contextuais. A
primeira abordagem tem sido utilizada por uma grande variedade de sistemas de
recomendação como, por exemplo, nos trabalhos de Aroyo e colegas (2007) e Blanco-
Fernandez e colegas (2010), que utilizam as informações contextuais para expandir as
consultas e pesquisas. Na segunda abordagem as informações contextuais são
empregadas no processo de recomendação para predizer preferências contextuais. A
estimação e elicitação de preferências contextuais são ressaltadas na literatura como
abordagem promissora e tendência para sistemas de recomendação sensíveis ao
contexto (Adomavicius e Tuzhilin 2008).
Esta pesquisa segue a abordagem de contexto dirigido a consultas e pesquisas,
utilizando filtragem híbrida, onde as informações contextuais dos usuários, do trânsito,
das rotas e fatores climáticos são observadas, no intuito de indicar a melhor rota de
ônibus aos passageiros. Maiores detalhes serão apresentados nos capítulos posteriores.
2.3.3 Realimentação de Relevância em Sistemas de Recomendação
A Realimentação de Relevância (do inglês, Relevance Feedback) é bastante
utilizada em SR para atualizar automaticamente os interesses especificados no perfil do
usuário ao longo do tempo, a partir das avaliações de itens recomendados ou por meio
da interação entre o usuário e sistema (Cotter e Smyth, 2000), (Blanco-Fernandez,
2007).
De acordo com Blanco-Fernandez (2007), a realimentação de relevância pode
ser realizada de três formas: explícita, implícita ou híbrida. A realimentação explícita
envolve justamente a avaliação de satisfação do usuário, onde o mesmo declara
explicitamente a sua satisfação com relação a cada item recomendado, indicando se o
item recomendado é relevante ou irrelevante (Yu e Zhou, 2004). Também é possível
obter a realimentação explícita por meio de comentário textual ou ainda especificação
de um nível de interesse (Goldberg et. al., 1992). Com isso será possível ao sistema
obter indicações sobre as preferências para atualizar o perfil do usuário visando alcançar
melhores resultados em recomendações futuras.
25
Já a realimentação implícita o interesse do usuário pode ser inferido a partir do
monitoramento de suas ações, o que viabiliza um reconhecimento automático das suas
preferências. Dependendo do domínio de aplicação, o sistema adota uma estratégia de
realimentação. Por fim, a realimentação híbrida combina os dois métodos anteriores
para se beneficiar das vantagens de ambos os métodos. A solução proposta neste
trabalho emprega um método implícito de realimentação de relevância.
2.3.4 Estratégias de Aprendizagem de Máquina e Predição em Sistemas de
Recomendação
Segundo Blanco-Fernandez e colegas (2006), além das técnicas de filtragens
anteriormente descritas na Seção 2.3.1, os sistemas de recomendação podem empregar
técnicas de aprendizagem de máquina e predição (Mitchell, 1997) com o objetivo de
aprender e fornecer predições ou tendências de preferências dos usuários a partir do
histórico de utilização. Segundo Han e Kamber (2006), as principais abordagens de
aprendizagem de máquina são:
1. Aprendizagem supervisionada: este tipo de aprendizagem estabelece um
modelo a partir de registros de treinamento com saídas especificas também chamadas de
rótulos de classe. Tais rótulos correspondem ao valor que se espera que o algoritmo
possa predizer sempre que receber registros específicos como argumentos de entradas.
A tabela verdade de uma operação booleana do tipo AND poderia ser considerada como
um exemplo de aprendizado, pois indica os argumentos de entrada e também a saída
desejada. Nos casos de problemas de classificação, a saída é o rótulo da classe à qual
cada exemplo está associado (Osório e Vieira, 1999);
2. Aprendizagem não-supervisionada: envolve a aprendizagem de registros
de treinamento, em que não são fornecidos os rótulos de classes.
Neste trabalho foi empregada a abordagem de aprendizagem supervisionada que
tem como base a tarefa de classificação. Segundo Han e Kamber (2006) a tarefa de
classificação é realizada em duas etapas. A primeira etapa é chamada de aprendizagem
(ou treinamento) onde um classificador constrói uma função por meio de um conjunto
predeterminado de registros que contêm padrões de entrada e seus rótulos de classe
associados. No contexto da classificação os registros podem ser referenciados como
instâncias, exemplos, ou dados de testes. A seguir ilustra-se um exemplo de registro que
pode ser utilizado na etapa de aprendizagem.
26
1, 00.2, sim, 6, 0.9 2
Segundo Han e Kamber (2006) a etapa de aprendizagem da tarefa de
classificação pode também ser compreendida como a aprendizagem de uma função
y=f(X), que pode predizer o rótulo y da classe associada para um dado registro X. Uma
vez definida, essa função pode ser aplicada a novos registros para predizer o rótulo da
classe a qual tais registros pertencem (Silva, 2011).
Para este trabalho foi especificada uma abordagem de aprendizagem
supervisionada que utiliza informações contextuais dos usuários e outras para predição
de melhores rotas de transporte público. Tal abordagem é empregada nas filtragens das
rotas durante a recomendação.
A seguir serão apresentados algumas técnicas e algoritmos de classificação
utilizados nesta pesquisa. Uma discussão mais rica em detalhes sobre a escolha do
algoritmo de classificação utilizado neste trabalho é abordada no Capítulo 5.
Indução por Arvores de Decisão
Indução de árvore de decisão é a aprendizagem de árvores de decisão a partir de
registros (ou tuplas) de treinamento com rótulos de classe. Em uma árvore de decisão
cada nó interno, chamado nó não folha, denota um teste em um atributo; cada ramo
representa um resultado do teste, e cada folha possui um rótulo de classe. O nó mais alto
em uma árvore é denominado nó raiz. Desta forma, uma árvore de decisão é um modelo
de conhecimento cujo objetivo é classificar uma dada entrada em uma classe específica.
A representação do conhecimento adquirido por meio de uma árvore é intuitiva e
geralmente de fácil assimilação por humanos. Segundo Han e Kamber (2006), as etapas
de aprendizagem, também denominada de classificação, e predição da árvore de decisão
são simples e rápidas. Algoritmos de indução de árvore de decisão têm sido utilizados
para classificação em muitas áreas de aplicação, tais como: medicina, análise financeira,
astronomia, produção e manufatura. O algoritmo C4.5 é um dos algoritmos de indução
de árvore de decisão mais tradicionais.
Apresentado em maiores detalhes em (Quinlan, 1993) como uma extensão para
o algoritmo ID3, o C4.5 é baseado em árvores de decisão e permite exemplos com
elementos faltantes e poda da árvore para evitar super ajuste aos dados. O C4.5 adota
Padrões de Entrada Rótulo de Classe
27
uma estratégia de (pós-poda), realizando uma análise dos registros de treinamento para
a construção da árvore, sendo o ponto de partida o nó raiz, de onde são realizados testes
sucessivos de forma que a estimativa de erro seja mais precisa se os nós filhos de um
determinado nó n forem eliminados, onde o nó n passará a ser um novo nó folha e os
nós filhos serão eliminados, ocorrendo assim a poda da árvore (Goldberg, 1989).
Esse algoritmo é fundamentado pela comparação de taxas de estimativas de erro
de cada sub-árvore do nó da folha, onde o critério de avaliação utilizado é o ganho de
informação.
Entretanto, trabalhar com dados faltantes pode ser um problema na hora da
criação de árvore de decisão. No C4.5 na criação da árvore de decisão, os registros com
dados faltantes tanto podem ser descartados quanto classificados pela estimativa da
probabilidade dos vários valores possíveis (Ingargiola, 1996).
Para a utilização de valores contínuos é necessária à ordenação dos valores de
forma crescente para que possa ser feito a divisão. Dependendo do tamanho da base a
ordenação pode exigir muitas computações para a ordenação (Ingargiola, 1996).
Com o surgimento de subárvores complexas a solução para o C4.5 é um
mecanismo de poda. O método de podar é realizado substituindo uma subárvore por um
nó folha. Este método é realizado se uma regra de decisão estabelecer que a taxa de erro
prevista na subárvore é muito grande, em relação à utilização de um único nó folha. A
substituição de partes da árvore é realizada considerando que estas não contribuem à
exatidão da classificação em determinados casos, produzindo algo menos complexo e
assim mais compreensível (Ingargiola, 1996), (Quinlan, 1993).
Classificador Naive Bayes
O classificador Naive Bayes (Friedman, 1997) também conhecido como
classificador bayesiano ingênuo ou rede bayesiana ingênua, é denominado ingênuo por
assumir que os atributos são condicionalmente independentes. Este classificador é
apoiado em princípios e teorias estatísticas, como o Teorema de Bayes que tem como
base o cálculo das probabilidades condicionais. Desta maneira, um classificador
bayesiano prevê a probabilidade de que um determinado registro (ou tupla)
representado por um vetor de atributos n-dimensional, X= (x1, x2, ..., xn), pertença a
uma classe particular Ci.
Assim como as árvores de decisão e as redes neurais o cl
Bayes é um dos métodos de aprendizagem
destacado em problemas em que as variáveis preditoras não são fortemente
correlacionadas (Cheng e Greiner
mais complexos.
Segundo Han e Kamber
um vetor de atributos n-dimensional, X
particular Ci é dada por:
Redes Neurais
As redes neurais (RNAs) são inspiradas na
isso têm por objetivo apresentar características similares a eles, tais como: aprendizado,
associação, generalização e abstração. Sendo compostas por neurônios artificiais
(processadores), altamente interconectados, que e
operações simples e transmitem seus resultados aos processadores vizinhos.
A arquitetura das redes neurais é tip
com função específica. A camada de saída recebe os estímulos da camada intermediária
e constrói o padrão de resposta. As camadas
de características, seus pesos são uma codificação de características apresentadas nos
padrões de entrada e permitem que a rede crie sua própria representação do problema
(Alsmadi et. al., 2009).
A Multilayer Perceptron
(Mcculloch e Pitts, 1943), capaz de trabalhar com problemas não
separáveis. Este avanço foi possível através da utilização de, pelo menos, uma camada
entre a entrada e a saída. Nas redes MLP, cada camada tem sua função determinad
camada intermediária possibilita que a rede aprenda tarefas complexas, extraindo
progressivamente mais características significativas dos argumentos de entrada e
enviando estímulos para a
construir um padrão que será a resposta
neurônios artificiais em um
Assim como as árvores de decisão e as redes neurais o classificador de
é um dos métodos de aprendizagem de utilização mais simples, tendo se
roblemas em que as variáveis preditoras não são fortemente
Greiner, 2001), mesmo sendo comparado com classificadores
Kamber (2006) a probabilidade de um registro representado por
dimensional, X = (x1, x2, ..., xn), pertencer a uma classe
As redes neurais (RNAs) são inspiradas na estrutura do cérebro humano, e por
isso têm por objetivo apresentar características similares a eles, tais como: aprendizado,
associação, generalização e abstração. Sendo compostas por neurônios artificiais
(processadores), altamente interconectados, que efetuam um número pequeno de
operações simples e transmitem seus resultados aos processadores vizinhos.
A arquitetura das redes neurais é tipicamente organizada em camadas, cada
função específica. A camada de saída recebe os estímulos da camada intermediária
de resposta. As camadas intermediárias funcionam como extratoras
de características, seus pesos são uma codificação de características apresentadas nos
drões de entrada e permitem que a rede crie sua própria representação do problema
Perceptron (MLP) é uma extensão do Perceptron
, 1943), capaz de trabalhar com problemas não
veis. Este avanço foi possível através da utilização de, pelo menos, uma camada
entre a entrada e a saída. Nas redes MLP, cada camada tem sua função determinad
possibilita que a rede aprenda tarefas complexas, extraindo
mente mais características significativas dos argumentos de entrada e
a camada de saída, que realiza cálculos necessários para
um padrão que será a resposta. A Figura 2.4 ilustra a combinação de vários
s em um Perceptron Multicamadas.
28
assificador de Naive
mais simples, tendo se
roblemas em que as variáveis preditoras não são fortemente
, 2001), mesmo sendo comparado com classificadores
(2006) a probabilidade de um registro representado por
x1, x2, ..., xn), pertencer a uma classe
estrutura do cérebro humano, e por
isso têm por objetivo apresentar características similares a eles, tais como: aprendizado,
associação, generalização e abstração. Sendo compostas por neurônios artificiais
fetuam um número pequeno de
operações simples e transmitem seus resultados aos processadores vizinhos.
icamente organizada em camadas, cada uma
função específica. A camada de saída recebe os estímulos da camada intermediária
intermediárias funcionam como extratoras
de características, seus pesos são uma codificação de características apresentadas nos
drões de entrada e permitem que a rede crie sua própria representação do problema
Perceptron Simples
, 1943), capaz de trabalhar com problemas não-linearmente
veis. Este avanço foi possível através da utilização de, pelo menos, uma camada
entre a entrada e a saída. Nas redes MLP, cada camada tem sua função determinada. A
possibilita que a rede aprenda tarefas complexas, extraindo
mente mais características significativas dos argumentos de entrada e
realiza cálculos necessários para
ilustra a combinação de vários
29
Figura 2.4 – Rede Neural Artificial Perceptron Multicamadas
Fonte: (Silva, 2011)
2.4 Considerações Finais
Este capítulo abordou os principais fundamentos sobre Sistemas Inteligentes de
Transporte, Computação Sensível ao Contexto e Sistemas de Recomendação que foram
estudados e utilizados durante o desenvolvimento desta pesquisa. No cenário dos ITS, a
exploração do contexto pode enriquecer as informações prestadas aos passageiros,
principalmente levando-se em consideração as características dinâmicas do trânsito e o
provimento de informações de forma personalizada.
A solução proposta neste trabalho tem o objetivo de apoiar, em tempo real, os
passageiros com sugestões de rotas sensíveis ao contexto atual e personalizadas de
acordo com as preferências dos usuários. São utilizados nesta pesquisa algoritmos de
classificação e técnica de realimentação de relevância implícita como forma de
melhorar as recomendações fornecidas pelo sistema aos passageiros de transporte
público.
30
Capítulo 3
Informações Contextuais em SIU e
Sistemas de Recomendação de Rotas
Ao longo deste capítulo apresentamos uma revisão do estado da arte sobre a
utilização de informações contextuais em SIU destinados ao transporte público por
ônibus e alguns sistemas de recomendação de rotas.
Na primeira seção descrevemos os resultados de uma revisão sistemática sobre a
utilização de informações contextuais em Sistemas de Informação ao Usuário (Tito et.
al., 2012). O objetivo desta revisão foi identificar e analisar trabalhos que apresentassem
o cenário atual da utilização de contexto pelos SIU direcionados ao transporte público
por ônibus.
Em seguida, fazemos uma análise em alguns sistemas de recomendação e/ou
exibição de rotas para transporte público com suas abordagens e discutimos os seus
pontos fortes e fracos.
3.1 Utilização de Contexto em Sistemas de Informação ao Usuário
Revisão Sistemática é o processo de interpretação e avaliação dos trabalhos
disponíveis e relacionados a uma questão de pesquisa ou tópico de interesse
(Kitchenham, 2007). Ainda de acordo com o mesmo autor existem muitas razões para
realizar uma revisão sistemática. Dentre estas podemos destacar: realizar uma síntese
sobre trabalhos disponíveis a respeito de uma abordagem ou tecnologia; identificar
questões para a pesquisa e formular nova posição em relação às atividades de
investigação.
Com o objetivo de evidenciar e investigar a utilização das informações
contextuais pelos Sistemas de Informação ao Usuário de transporte público por ônibus,
propusemos as seguintes questões de pesquisa:
QP1. Quais informações contextuais são utilizadas pelos sistemas de informação
ao usuário de transporte público?
31
QP2. Como são adquiridas as informações contextuais usadas pelos sistemas
de informação ao usuário de transporte público?
QP3. Como os sistemas de informação ao usuário de transporte público usam
estas informações contextuais?
Após utilização de um método sistemático de coleta descrito em maiores
detalhes no trabalho de Tito e colegas (2012), selecionamos 10 trabalhos para análise, a
fim de extrair informações relevantes e responder as questões propostas.
No que diz respeito à QP1, a acessibilidade à informação sobre o transporte
público em uma determinada cidade ou região pode fazer esse tipo de transporte mais
atraente para os passageiros como, por exemplo, a localização do ônibus em dado
instante de tempo (Vieira et. al., 2011). Por meio destas informações os usuários podem
planejar suas viagens e reduzir sua ansiedade enquanto espera o transporte (Caulfield e
O’Mahony, 2007).
Contudo o cenário do trânsito é passível de rápidas mudanças devido, por
exemplo, a engarrafamentos, acidentes, alagamentos, entre outros. Por isso entender o
contexto dos ônibus, rotas, passageiros e outros dispositivos é essencial para subsidiar
os Sistemas de Informação ao Usuário no provimento de informações mais relevantes e
contextualizadas (Coffey et. al., 2011) (Vieira et. al., 2011).
Informações estáticas, armazenadas nas bases de dados, inferidas e dinâmicas,
que caracterizam o estado atual do trânsito (dados históricos, condições meteorológicas,
dados geográficos em tempo real, entre outros) podem ser usadas para enriquecer as
informações prestadas aos usuários.
A Figura 3.1 ilustra as informações contextuais utilizadas pelos 10 trabalhos
selecionados. Percebemos que 80% usam informações contextuais estáticas, por
exemplo, localização das paradas. Os dados inferidos e dinâmicos são tratados em
menor escala e, na maioria dos casos, consiste de dados de localização de veículos.
32
Figura 3.1 – Informações Contextuais Utilizadas
Já como resposta à QP2, podemos dizer que os Sistemas Inteligentes de
Transporte em geral trabalham com grande quantidade de informações. A aquisição
destes dados frequentemente requer alguns cuidados, pois muitas vezes os dados
necessitam de algum tipo de ajuste para serem utilizados com segurança pelos Sistemas
de Informação ao Usuário como, por exemplo, correções e transformações de dados
geográficos (Kumar et. al., 2011).
As informações utilizadas nos sistemas de transporte podem ser estáticas,
dinâmicas ou inferidas. A aquisição de dados estáticos pode ser realizada por meio de
veículos de testes (Kumar et. al., 2011), catalogação de dados, entre outras. Estas
informações são armazenadas em uma base de dados (Bastos e Jaques, 2010).
As informações dinâmicas necessitam de uma verificação prévia de correção
antes de serem utilizadas pelas aplicações. Estas normalmente sofrem alterações
frequentemente e podem tornar a aplicação mais eficiente (Vieira et. al., 2011). As
informações inferidas são calculadas pelo próprio sistema, por meio de outras
informações (históricos dos usuários) e também agregam muito valor à aplicação
(Bertolotto et. al., 2002).
Com o crescente aumento da utilização de Smartphones, os Sistemas de
Informação ao Usuário estão se adaptando para receber dados também dos usuários,
seja por meio de GPS que equipam seus dispositivos ou pela divulgação de outras
80%
20%
10% 10% 10%
20%
80% 80%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
Localização dos
Veículos
Velocidade dos
Veículos
Feedback dos
Usuários
Incidentes nas Vias
Intensidade do Tráfego
Localização dos
Usuários
Localização das Paradas
Distância entre as Paradas
Fre
qu
ên
cia
Informações Contextuais
33
informações relevantes em tempo real como, por exemplo, informações sobre
engarrafamentos e acidentes.
A Figura 3.2 apresenta como os trabalhos selecionados na revisão adquirem
dados contextuais, pode-se verificar que em 90% dos casos, os dados são provenientes
de informações históricas previamente catalogadas. O usuário ainda é pouco utilizado
como provedor de informações para os SIU.
Figura 3.2 – Obtenção de Informações Contextuais
No que diz respeito à QP3, os Sistemas de Informação ao Usuário têm o objetivo
de facilitar o dia a dia das pessoas que utilizam transporte público, oferecendo aos
passageiros informações muitas vezes em tempo real, utilizando dados estáticos,
inferidos ou dinâmicos de contexto relacionados aos próprios meios de transporte
(Bertolotto et. al., 2002) (Vieira et. al., 2011). Estas aplicações satisfazem as
necessidades específicas dos usuários (tempo de espera na parada) ou fornecem
informações personalizadas como, por exemplo, itinerário de linhas de ônibus para
deslocamentos (Bastos e Jaques, 2010).
Os equipamentos eletrônicos são fator importante nos objetivos propostos pelos
SIU, pois quando instalados a bordo do veículo, auxiliam no anúncio das paradas,
tirando esta responsabilidade dos motoristas que permanecem focados apenas na
direção. Já os equipamentos instalados nas vias, informam horários, tempos de viagem,
60%
10% 10% 10% 10%
90%
10%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
GPS dos Ônibus
Feedback dos Usuários por Smartphone
GPS dos Usuários
Informações Históricas
Informações Inferidas
Informações Históricas
Previamente Catalogadas
Não Divulgado
Fre
qu
ên
cia
Informações Contextuais X Fontes de Contexto
34
itinerários dos ônibus e tempos de espera, reduzindo a ansiedade dos passageiros
(Coffey et. al., 2011) (Weigang et. al., 2001).
Entretanto, a instalação de equipamentos eletrônicos em todas as paradas e
dentro dos veículos pode ser extremamente cara e pouco prática. Com o aumento da
utilização de dispositivos móveis as informações oferecidas pelos SIU podem ser
exibidas nestes aparelhos que, além da mobilidade, proveem a localização atual como
grande diferencial para este tipo de aplicação (Bertolotto et. al., 2002) (Ferris et. al.,
2009).
A Figura 3.3 exibe como os trabalhos selecionados na revisão usam as
informações contextuais coletadas para prover informações aos usuários. Percebemos
que 80% dos trabalhos fornecem o tempo de chegada dos ônibus nas paradas. Outras
informações que poderiam ser de interesse aos passageiros ainda são oferecidas em
menor escala como, por exemplo, recomendação de rotas e estado do trânsito.
Figura 3.3 – Informações Providas pelos SIU
Analisando os resultados apresentados pelas questões colocadas, podemos
constatar o seguinte:
1. Muitos dos estudos selecionados (80 %) usam dados estáticos e informações
de localização dinâmica de ônibus. Outras informações dinâmicas também são
utilizadas embora em menor escala. O uso de informações dinâmicas como, por
80%
20% 20% 20%
10% 10% 10%
20%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
Tempo Chegada dos ônibus nas
Paradas
Informações Dentro dos
Ônibus
Criação de Rotas
Personalizadas
Recomendação de Rotas
Notificação de Próximas Paradas
Estado do Trânsito
Informações Adaptadas aos
Usuários
Localização dos Ônibus
Fre
qu
ên
cia
Informações Providas
35
exemplo, incidentes sobre as estradas, informação de colaboração de outros usuários,
pode permitir ao sistema fornecer aos usuários informações mais alinhadas com a
situação atual do trânsito, considerando as características dinâmicas do tráfego urbano,
principalmente nas grandes cidades;
2. Em relação à aquisição de informações pelos SIU, percebemos que muitos
dos estudos selecionados capturam esses dados através de GPS instalados nos veículos,
ou estaticamente através de informações de catalogação. No entanto, outras fontes de
aquisição poderiam ser utilizadas como, por exemplo, redes sociais, câmeras, sensores e
outros;
3. Com relação às informações oferecidas aos usuários, temos notado que
grande parte das aplicações oferecem aos passageiros o cálculo do tempo de chegada
dos veículos nas paradas. Enquanto poucas disponibilizam ao usuário funcionalidades
adaptadas, por exemplo, recomendação de melhores rotas de ônibus, entre outros
serviços personalizados aos usuários (Bertolotto et. al., 2002) (Ferris et. al., 2009).
Atualmente, os Sistemas Inteligentes de Transporte se tornaram uma alternativa
muito viável e atraente para resolver muitos problemas e superar desafios dos sistemas
de transporte nas grandes cidades. Esta tendência se dá, em parte, devido ao rápido
crescimento e disponibilidade de Tecnologias de Informação e Comunicação - TIC.
Com as respostas obtidas para as perguntas propostas podemos observar
oportunidades de pesquisa detalhadas a seguir.
1. Desenvolvimento de SIU que fazem uso de maior quantidade de
informações contextuais dinâmicas e inferidas, uma vez que essas informações podem
ajudar as aplicações a se adaptarem ao caráter dinâmico do trânsito, permitindo fornecer
informações mais adequadas à realidade atual do trânsito urbano;
2. Uso de novas fontes de dados contextuais que podem fornecer informações
em tempo real para apoiar os Sistemas de Informação ao Usuário. Com o uso crescente
das redes sociais, estas poderiam ser utilizadas como fontes de informação do usuário de
forma colaborativa;
3. Exploração do uso de aplicações móveis, aproveitando o crescente uso de
smartphones entre os usuários;
36
4. Desenvolvimento de novas funcionalidades adaptadas aos usuários,
buscando oferecer serviços personalizados, mais relevantes para as necessidades dos
usuários;
5. Análise das relações entre informação contextual, a fim de enriquecer as
funcionalidades fornecidas por Sistemas de Informação ao Usuário.
3.2 Sistemas de Recomendação e Exibição de Rotas de Transporte
Público
Na literatura é possível encontrar muitos trabalhos no domínio de ITS e SIU,
porém apenas alguns deles fazem uso da recomendação e/ou exibição de rotas de
transporte público por ônibus. O objetivo desta seção consiste na análise de trabalhos
encontrados que exploram sistemas de recomendação ou exibição de rotas aos usuários,
e que mais se correlacionam com o tema proposto, buscando assim contextualizar e
identificar a complementaridade deste trabalho no estado da arte.
Com o objetivo de facilitar a análise entre a proposta desta pesquisa e os
trabalhos relacionados adotamos alguns critérios de comparação, são eles:
• Utilização de informações contextuais: A utilização de dados contextuais
dinâmicos, estáticos ou inferidos e suas interações contribuem para que os aplicativos
possam ser capazes de se adaptar a determinada situação ou fornecer serviços mais
relevantes;
• Interface de comunicação com os usuários: A interface de comunicação
entre os sistemas de recomendação e seus usuários pode ser um fator muito importante.
Alguns destes sistemas permitem acesso de qualquer lugar e de muitas maneiras,
possibilitando que os usuários tenham informações em tempo real, adaptadas à
dinamicidade do trânsito;
• Preferências do usuário: Para os sistemas de recomendação em geral as
preferências dos usuários são fundamentais para o fornecimento de informações mais
personalizadas e adaptadas aos mesmos;
• Histórico de utilização do usuário: Os dados históricos de utilização dos
usuários podem gerar informações bastante úteis para o sistema de recomendação, pois
através delas podemos inferir dados contextuais importantes do usuário, como por
37
exemplo, preferências de utilização do sistema e, desta forma, fornecer recomendações
mais relevantes;
• Domínio de utilização apenas para transporte público por ônibus: Neste
critério avaliamos se a aplicação é direcionada ao transporte público por ônibus.
A seguir mostramos alguns trabalhos presentes na literatura e na indústria
procurando analisá-los conforme os critérios estabelecidos.
OneBusAway1
O OneBusAway (Ferris et. al., 2009) é um Sistema Inteligente de Transporte de
código aberto inicialmente desenvolvido na Universidade de Washington que utiliza
informações contextuais como distância entre as paradas e localização geográfica dos
ônibus para fornecer, em tempo real, informações aos usuários sobre: tempo de espera
nas paradas, horários e rotas dos veículos. Este sistema está disponível para muitas
interfaces entre elas Web, móvel (Android, OIS e Microsoft) e SMS. A Figura 3.4
mostra a exibição de rotas do OneBusAway.
Figura 3.4 – Sistema OneBusAway
Fonte: (Ferris et. al., 2009)
O sistema OneBusAway é voltado exclusivamente ao transporte público por
ônibus e considera informações contextuais estáticas, dinâmicas e inferidas. Além disso,
utiliza muitos tipos de interface com o usuário, permitindo assim maior flexibilidade em
relação ao tipo de aparelho que é utilizado para a iteração com o sistema. Entretanto, as
características dos usuários e suas preferências têm pouco ou nenhuma influência sobre
as informações que o sistema trata. Outras informações importantes como, por exemplo,
1 http://www.onebusaway.org/
38
o histórico de utilização dos usuários e feedbacks do usuário também são desprezadas
pela aplicação OneBusAway.
Bus Catcher
O Bus Catcher (Bertolotto et. al., 2002) é um sistema com interface móvel que
utiliza informações contextuais dos usuários e dos veículos como, por exemplo, a
localização, para prover informações apenas sobre transporte público por ônibus. Entre
tais informações podemos citar: exibição de mapas, indicações de rotas de ônibus,
horários de chegada dos ônibus nas paradas. O aplicativo propõe integração com redes
de viagem para fins turísticos, tais como: rotas, localização e características de pontos
turísticos. Adaptação do sistema para pessoas com deficiências, maior personalização
das funcionalidades e melhora no desempenho também são propostas do aplicativo. A
Figura 3.5 mostra detalhes da recomendação de rotas do Bus Catcher.
Figura 3.5 – Indicação de Rotas no Sistema Bus Catcher
Fonte: (Bertolotto et. al., 2002)
O sistema Bus Catcher se propõe a utilizar em seu funcionamento algumas
informações contextuais do trânsito e dos usuários como, por exemplo, a localização
dos passageiros. No entanto, outras informações contextuais importantes dos usuários,
do trânsito e do clima, tais como suas preferências e histórico do usuário, informações
sobre acidentes e dados climáticos, não são consideradas pela aplicação. O sistema
possui apenas interface móvel o que pode limitar seu uso, apesar da crescente utilização
de smartphones por grande parcela da população. O aplicativo Bus Catcher poderia
explorar uma maior quantidade de informações contextuais de outras fontes e fazer uso
39
do histórico de utilização dos usuários, o que poderia melhorar consideravelmente a
qualidade e a adaptabilidade das informações fornecidas aos usuários.
Sistema de Informações de Trânsito
No trabalho de Hoar (2009), é apresentado um sistema de informações de
trânsito para o usuário de transporte público por ônibus. Este aplicativo com interface
Web e móvel exibe dados como rotas, mapas, tempos de espera em paradas e
localização de ônibus. Por meio de sua interface móvel a ferramenta capta o feedback
do usuário que colabora com o sistema informando, em tempo real, se o veículo está
cumprindo o horário anteriormente determinado. Tais dados são processados e
permitem ao sistema ajustar informações que serão exibidas aos usuários. A Figura 3.6
mostra a exibição de rotas do aplicativo.
Figura 3.6 – Exibição de rotas do Sistema de Informação ao Usuário
Fonte: (Hoar, 2009)
O sistema proposto por Hoar (2009), possui dupla interface com o usuário e
extrai do feedback dos passageiros informações contextuais para inferência de situações
a serem consideradas pelo sistema. A aplicação desenvolvida por Hoar (2009), não
realiza recomendação de rotas, apenas as exibe de acordo com a escolha do usuário, não
utilizando outras informações contextuais dinâmicas importantes tais como:
preferências e histórico de utilização dos usuários, informações climática, entre outras.
PECITAS
O PECITAS (Tumas e Ricci, 2009) é um sistema móvel que recomenda rotas de
ônibus, taxi ou deslocamentos a pé, baseados em informações sobre seus usuários. O
aplicativo considera algumas preferências dos passageiros, tais como: tempo de viagem
ideal, número de mudanças de transporte, tempo de espera, preferência por caminhada e
40
rota turística. De acordo com as informações fornecidas pelo usuário, o sistema gera e
classifica múltiplas rotas por meio de diferentes heurísticas. O algoritmo deste
aplicativo precisa de aproximadamente de 8,4 segundos para obter as rotas classificadas.
Porém para a recomendação da rota mais rápida o PECITAS não leva em consideração
os transportes públicos. A Figura 3.7 ilustra a interface do sistema PECITAS.
Figura 3.7 – Sistema PECITAS
Fonte: (Tumas e Ricci, 2009)
O PECITAS utiliza as preferências dos usuários para a indicação das rotas,
apesar de não considerar seu histórico de utilização e seus feedbacks. Entretanto o
PECITAS não é totalmente direcionado ao transporte público, pois opera também com
outros tipos de transportes, sendo bastante utilizado para passeios turísticos. O
aplicativo não utiliza informações contextuais do trânsito para a recomendação das rotas
e possui apenas interface móvel.
Google Transit
O Google Transit2 tem o objetivo de auxiliar usuários de transporte público a
obterem os melhores itinerários para uma determinada viagem. Seu funcionamento se
compara com a busca por rotas de veículos particulares, porém, leva em consideração
linhas e horários pré-definidos pelos órgãos públicos responsáveis pelo transporte
urbano. Além disso, permite a localização de paradas de ônibus e a consulta de
informações sobre estações de trem e horários. O sistema apresenta ainda o valor total
que deve ser pago para o trajeto, horários dos transportes, assim como várias opções de
trajetos. A Figura 3.8 ilustra uma requisição de rota no Google Transit.
2 http://www.google.com/intl/pt-BR/landing/transit/#dmy
41
Figura 3.8 – Requisição de Rota no Google Transit
Fonte: (Google Transit)
Após uma solicitação, o sistema retorna algumas das possibilidades, que variam
desde linhas de ônibus diferentes, baldeações entre ônibus e metrô, dois ônibus, entre
outros. Informa o tempo de cada rota e o custo associado a elas, passando para o usuário
decidir qual o melhor itinerário para o seu deslocamento. A Figura 3.9 mostra os
trajetos sugeridos pelo aplicativo, após uma requisição.
Figura 3.9 – Trajetos Sugeridos pelo Google Transit
Fonte: (Google Transit)
O Google Transit é um dos sistemas para recomendação de rotas mais utilizado
no mundo devido a sua abrangência mundial. O sistema da Google utiliza algumas
informações contextuais estáticas para a recomendação de suas rotas, mas as
preferências e histórico de utilização dos usuários não são considerados para as
sugestões.
Sistema Antares
O sistema ANTARES (Bastos e Jaques, 2010) foi desenvolvido para a
plataforma Web e indica rotas de ônibus aos usuários utilizando o algoritmo A* e ruas
de origem e destino fornecidas pelo passageiro. O aplicativo fornece uma descrição
completa de linhas de ônibus e paradas que o usuário deve utilizar para chegar ao seu
destino. Além disso, devido à integração com o Google Maps API, o sistema oferece ao
42
usuário um mapa de visualização da trajetória. A Figura 3.10 mostra detalhes da
indicação de rotas do sistema ANTARES.
O ANTARES utiliza a API do Google Maps como auxílio na exibição das rotas
a serem recomendadas. No entanto o ANTARES não utiliza informações contextuais
dinâmicas o que o torna pouco flexível às mudanças do tráfego urbano. O aplicativo
também não considera informações dos usuários como, por exemplo, preferências e
feedbacks, nem tão pouco armazena seus dados históricos, que poderiam ser
empregados para sugestões de rotas mais adaptativas aos passageiros. O sistema possui
apenas a interface Web para iteração com seus usuários, conforme ilustrado na Figura
3.10.
Figura 3.10 – Indicação de Rotas do Sistema ANTARES
Fonte: (Bastos e Jaques, 2010)
Sistema UbibusRoute
O UbibusRoute (Lima et. al., 2012) é uma aplicação baseada no modelo cliente
servidor desenvolvida para interface móvel android que utiliza informações contextuais
estáticas e dinâmicas como, por exemplo, localização geográficas das paradas, distância
entre as paradas e informações do trânsito provenientes de rede social, para a
recomendação de rotas de ônibus aos usuários. A aplicação também usa a API do
Google Maps, como fonte de geolocalização e o algoritmo de Dijkstra3 para a obtenção
das rotas. O UbibusRoute recebe do usuário pontos de paradas origem, destino e as
preferências do usuário em relação à rota (menor distância percorrida, menor tempo de
percurso e menor preço gasto). Após realizar a busca o aplicativo exibe ao usuário a rota
escolhida e as informações necessárias como: a linha de ônibus escolhida; preço da
3 Dijkstra Algorithm <http://www.cs.auckland.ac.nz/~jmor159/PLDS210/dijkstra.html>.
43
tarifa; as paradas que foram anteriormente selecionadas e o tempo total do deslocamento
por meio de um mapa. A Figura 3.11 ilustra a recomendação de rotas do UbibusRoute.
No entanto, o UbibusRoute possui apenas a interface móvel como forma de
iteração com o usuário e não utiliza informações sobre o preferências e histórico de
utilização dos usuários, feedbacks dos passageiros e dados climáticos, o que tornam as
recomendações desde sistema pouco adaptadas aos passageiros.
Figura 3.11 – Recomendação de Rotas do Sistema UbibusRoute
Fonte: (Lima et. al., 2012)
A Tabela 3.1 apresenta um comparativo com as principais diferenças e
similaridades entre os sistemas de recomendação e ou exibição de rotas apresentados.
Tabela 3.1 – Comparativo entre os Trabalhos Relacionados
Sistemas
Tipo de Informações Contextuais Utilizadas
Interface de Comunicação com o Usuário
Utilização de Preferências dos
Usuários
Utilização de Informações Históricas
Domínio de Utilização Apenas para Transporte
Público por Ônibus
OneBusAway Estáticas,
Dinâmicas e Inferidas
Móvel, Web e SMS Não Não Sim
Bus Catcher Estáticas e Dinâmicas
Móvel Parcialmente Não Sim
Sistema de Informações de Trânsito (Hoar,
2009)
Estáticas e Dinâmicas
Móvel e Web Não Não Sim
PECITAS Estáticas Móvel Parcialmente Não Não
Google Transit Estáticas Móvel e Web Não Não Não
ANTARES Estáticas Web Não Não Sim
UbibusRoute Estáticas e Dinâmicas
Móvel Parcialmente Não Sim
44
3.3 Considerações Finais
A utilização de abordagens de recomendação sensíveis ao contexto tem
emergido com o objetivo de melhorar a relevância das recomendações em diversos
domínios de aplicações (Adomavicius e Tuzhilin, 2005). Atualmente na literatura e na
indústria existem alguns sistemas que recomendam e/ou exibem rotas aos passageiros
de transporte público por ônibus. No entanto, foi possível constatar que a grande
maioria deles não incorpora informações contextuais sobre o clima, tempo e contexto do
usuário como, por exemplo, preferências e histórico de utilizações. Sendo assim,
podemos concluir que estas aplicações proveem funcionalidades pouco adaptadas aos
passageiros.
Desta forma, justifica-se a realização de estudos com o objetivo de propor ou
adaptar abordagens de recomendação sensível ao contexto dos passageiros para os
transportes públicos urbanos, visando facilitar o deslocamento dos usuários e incentivar
o uso do transporte coletivo.
45
Capítulo 4
O Sistema RecRoute
A integração entre diversas tecnologias modernas vem permitindo um avanço
significativo aos ITS. Consequentemente, há uma procura crescente por sistemas cada
vez mais dinâmicos e sensíveis ao contexto. Em particular, vários sistemas de
recomendação de rotas estão sendo utilizados como forma de prover ao usuário a
melhor informação para sua tomada de decisão quanto ao seu deslocamento.
No entanto, conforme discutido no Capítulo 3, para o provimento de
informações sensíveis ao contexto do usuário e do trânsito, os sistemas devem atender a
alguns requisitos, tais como: utilização de informações contextuais dinâmicas obtidas
em tempo real, provimento de várias interfaces de comunicação com o usuário,
observância às preferências do usuário, tratamento das informações históricas, entre
outras.
No aplicativo RecRoute, as informações contextuais permitem entender as
preferências do usuário e a situação do trânsito, a fim de ajustar os resultados às
necessidades dos passageiros.
Este capítulo está dividido em três seções. A primeira tem por objetivo
apresentar o Projeto Ubibus (Vieira et. al., 2011), onde se encontra inserido o aplicativo
RecRoute. A segunda tem por objetivo apresentar os requisitos, modelagem das
informações contextuais, arquitetura e outras especificações do RecRoute e, finalmente,
a última parte tem o objetivo de apresentar alguns aspectos de implementação do
protótipo do aplicativo.
4.1 O Projeto Ubibus
O projeto Ubibus tem o objetivo de facilitar o dia a dia das pessoas que utilizam
transporte público, oferecendo acesso inteligente a informações deste tipo de transporte
aos passageiros, em tempo real, baseado em informações dinâmicas de contexto
relacionadas aos próprios meios de transporte (Vieira et. al., 2011).
46
A Figura 4.1 representa a arquitetura do projeto Ubibus, também descrita por
Vieira e colegas (2011). A Camada de Dados é a responsável pelo gerenciamento de
informações como localização, velocidade, rota dos ônibus, locais das paradas dos
ônibus, localização dos passageiros, informações do fluxo do tráfego em tempo real,
mapas e outras. As informações de congestionamento são utilizadas para identificar
obstruções no fluxo do tráfego e o seu nível, por exemplo, trânsito lento, moderado ou
congestionado.
Figura 4.1 – Arquitetura do Projeto Ubibus
Fonte: (Vieira et. al., 2011)
A camada intermediária do sistema é composta por um Middleware que facilita
a comunicação e coordenação entre os componentes de software distribuídos, tratando
de modo transparente as dificuldades e complexidades introduzidas pela comunicação
sem fio e mobilidade como, por exemplo, acesso às aplicações por diferentes tipos de
dispositivos.
O Middleware proposto é multiparadigma e extensível, pois se propõe a dar
suporte a um conjunto de paradigmas de comunicação, e atender aos diferentes tipos de
aplicações, por exemplo, Móvel e Web. Para otimizar o uso de recursos dos dispositivos
móveis integrados ao projeto, o Middleware proporciona o compartilhamento e
reutilização de componentes de sua arquitetura. Esta está subdividida em três camadas:
Camada de Comunicação, Camada de Aquisição e Camada de Processamento.
A Camada de Comunicação permite o acesso aos dados, assim como sua
atualização em tempo real, pelos gestores, operadores, usuários e condutores. Os
avanços e padronização das tecnologias de comunicação sem fio, tais como WiFi,
Bluetooth, WiMAX, GPRS e 3G, permitem a comunicação de curto e de longo alcance,
47
tornando possível o desenvolvimento de aplicações para Web, desktop, PDAs, celulares,
terminais e quiosques como, por exemplo, pontos de ônibus e estações rodoviárias.
A Camada de Aquisição é responsável por reunir informações contextuais de
diferentes fontes, encaminhando-as para a Camada de Dados. No Ubibus, as
informações contextuais poderão ser adquiridas de fontes como redes sociais, por
exemplo, Twitter4 e Facebook5, GPS e câmeras de monitoramento. Tais informações
podem ser dinâmicas (e.g. a localização dos ônibus) ou inferidas como, por exemplo, a
descoberta de congestionamentos e sua intensidade. Os usuários podem ainda utilizar o
sistema Web ou dispositivo móvel para adicionar informações sobre seu contexto atual
ou de contextos anteriores pelo qual tenham estado. Nesta camada se localizam alguns
componentes responsáveis pela captura das informações, tais como: o Minerador de
Dados de Redes Sociais responsável pela aquisição de informações de redes sociais, o
Minerador Espacial de Dados que captura dados das trajetórias dos ônibus como, por
exemplo, pontos de retenção de fluxo e, um serviço que captura Informações
Climáticas e Temporais das cidades.
A Camada de Processamento tem por objetivo realizar o tratamento das
informações de contexto adquiridas das diferentes fontes, visando transformá-las em
informações úteis para as aplicações a serem desenvolvidas. Por exemplo, em relação à
fonte de contexto GPS, a Camada de Processamento é responsável por receber arquivos
com as localizações e velocidades dos ônibus a uma determinada frequência de tempo e
processá-las de forma que sejam devidamente armazenadas na Camada de Dados.
Outro serviço constante desta camada é o Gerador de Rotas que processa informações
contextuais do trânsito atual com a finalidade de prover rotas para uma origem e
destino.
A Camada de Aplicações conterá os diferentes tipos de aplicações
desenvolvidas. Essas aplicações devem se ajustar a diferentes plataformas e dispositivos
como Web, desktop, PDAs, celulares e displays. Algumas destas aplicações e seus
requisitos são descritas a seguir.
4 https://twitter.com 5 https://www.facebook.com
48
As Aplicações Web permitem uma fácil disseminação dos dados
contextualizados relacionados com o trânsito. Uma aplicação Web do Ubibus deve
prover:
• O horário de chegada dos ônibus em cada parada;
• A definição da melhor rota com base nas prioridades (custo, tempo,
distância) do usuário;
• A intensidade de tráfego em cada rota ou região;
• O mapa com a intensidade de tráfego em diferentes regiões;
• As linhas de ônibus que passam em determinada parada de ônibus, outros.
As Aplicações Móveis têm o grande benefício de serem portáveis e, com isso, o
usuário pode tomar sua decisão sobre a rota a seguir de qualquer lugar, mesmo que não
esteja na parada de ônibus ou em casa. Tais aplicações são similares às Aplicações Web,
mas com a interface adaptada para dispositivos móveis. Também garantem a
possibilidade de usar a posição atual do dispositivo (e de seu usuário) para gerar mais
informação contextualizada.
As Aplicações dos Ônibus utilizam displays dentro dos ônibus que fornecem
informações sobre a situação atual deste. Assim os passageiros podem visualizar
informações sobre a viagem e tomar novas decisões devido a acontecimentos
imprevistos. Algumas funcionalidades que podem estar disponíveis nestas aplicações
são:
• Estimativa do tempo de chegada do ônibus em cada parada na rota;
• Descrição da parada anterior e a seguinte;
• Informação sobre o tráfego em cada trecho (intervalo entre as paradas) da
rota;
• Alertas sonoros para as paradas de ônibus, auxiliando as pessoas com
deficiência cognitiva.
As Aplicações nos Pontos de Ônibus devem fornecer informações para os
passageiros que estão esperando pelo ônibus, tais como a estimativa do horário de
chegada do ônibus na parada e a localização do próximo ônibus no mapa.
4.2 O Aplicativo RecRoute
Nesta seção, apresentamos
contextuais, arquitetura e outros detalhes
aplicativo com interfaces Móvel
transporte público, baseado em informações contextuais dos usuários
e de outros fatores que podem afetá
procura auxiliar os passageiros em seus deslocamentos realizados pelo transporte
público coletivo por ônibus, oferec
4.2.1 Especificação dos Requisitos
Segundo Sommerville (
descrever as funções que o sistema deverá desempenhar pode ajudar a atingir os
objetivos propostos e atender determinadas necessidades. Nesta fase
descritas as restrições às quais este sistema, ou seu processo de desenvolvimento, está
sujeito. Uma técnica que pode auxiliar no processo de obtenção destes requisitos é a de
casos de uso, já que estes identificam cenários através de interações que envolvem a
participação de um ou mais atores em relação ao sistema
de uso identificados para o sistema.
O diagrama de casos de uso
linguagem UML6 (Unified Model Language
próprio sistema RecRoute
6 http://www.uml.org
RecRoute
apresentamos os requisitos, a modelagem das informações
e outros detalhes de especificação do sistema RecRoute
Móvel e Web para recomendação de rotas aos usuários de
transporte público, baseado em informações contextuais dos usuários, do tráfego urbano
e de outros fatores que podem afetá-lo como, por exemplo, o clima
ra auxiliar os passageiros em seus deslocamentos realizados pelo transporte
público coletivo por ônibus, oferecendo informações em tempo real.
Requisitos
mmerville (2007), na fase de especificação de requisitos do sistema,
descrever as funções que o sistema deverá desempenhar pode ajudar a atingir os
objetivos propostos e atender determinadas necessidades. Nesta fase
descritas as restrições às quais este sistema, ou seu processo de desenvolvimento, está
Uma técnica que pode auxiliar no processo de obtenção destes requisitos é a de
casos de uso, já que estes identificam cenários através de interações que envolvem a
participação de um ou mais atores em relação ao sistema. A Figura 4.2
so identificados para o sistema.
Figura 4.2 – Diagrama de Casos de Uso
O diagrama de casos de uso apresentado na Figura 4.2, foi elaborado baseado na
Unified Model Language). Nele, podemos identificar o Usuário e o
RecRoute como atores que interagem com a aplicação para obter
49
, a modelagem das informações
do sistema RecRoute, um
para recomendação de rotas aos usuários de
do tráfego urbano
lo como, por exemplo, o clima. O RecRoute
ra auxiliar os passageiros em seus deslocamentos realizados pelo transporte
, na fase de especificação de requisitos do sistema,
descrever as funções que o sistema deverá desempenhar pode ajudar a atingir os
objetivos propostos e atender determinadas necessidades. Nesta fase, também são
descritas as restrições às quais este sistema, ou seu processo de desenvolvimento, está
Uma técnica que pode auxiliar no processo de obtenção destes requisitos é a de
casos de uso, já que estes identificam cenários através de interações que envolvem a
. A Figura 4.2 ilustra os casos
, foi elaborado baseado na
ntificar o Usuário e o
com a aplicação para obter
50
recomendações de rotas personalizadas. O Apêndice A detalha cada caso de uso
apresentado na Figura 4.2.
A partir da definição dos casos de uso podemos especificar os requisitos
funcionais e não-funcionais da aplicação. De acordo com (Sommerville, 2007), os
termos “requisitos de usuário” e “requisitos de sistema” podem ser utilizados para
designar, respectivamente, os requisitos descritos em alto e em baixo nível de abstração.
A seguir são apresentados requisitos não-funcionais (RNF) e requisitos
funcionais (RF), sendo os requisitos funcionais classificados em dois tipos: RF-U
quando se refere a um requisito funcional relacionado ao usuário, e RF-S para um
requisito funcional do sistema.
• RNF-01: Implementar mecanismos de comunicação de forma a acessar
outras funcionalidades e serviços do Middleware do projeto Ubibus;
• RNF-02: Possibilitar acesso por diferentes dispositivos Web e Móvel;
• RNF-03: Utilizar a base de dados compartilhada do projeto Ubibus;
• RF-U.1: O sistema de recomendação deverá ter mecanismos de aquisição,
manipulação e persistência de informações contextuais sobre as preferências e perfil dos
usuários, tais mecanismos deverão estar presentes nas interfaces do aplicativo;
• RF-U.2: Considerar o feedback dos usuários, a fim de atualizar a função
utilizada na classificação das rotas;
• RF-U.3: Disponibilizar um serviço de recomendação de rotas aos usuários
de transporte público por ônibus, levando em consideração informações contextuais das
preferências dos usuários;
• RF-S.1: Prover um serviço que seja responsável pela integração e controle
dos componentes do sistema;
• RF-S.2: Obter um conjunto inicial de rotas enriquecidas com informações
contextuais do trânsito por meio de serviço localizado no Middleware do projeto
Ubibus;
• RF-S.3: Prover um serviço que, por meio de Aprendizagem de Máquina e
Predição e Algoritmos de Classificação, seja capaz de criar funções que serão utilizadas
para classificar e ordenar as rotas de acordo com as preferências contextuais dos
usuários, informações climáticas e temporais;
51
• RF-S.4: Prover um serviço de interpretação de contexto responsável por, de
posse da função para classificação, ordenar um conjunto inicial de rotas e as exibir ao
usuário.
4.2.2 Modelagem das Informações Contextuais
Para prover recomendações mais adequadas as necessidades dos usuários, o
RecRoute utiliza informações contextuais estáticas, dinâmicas e inferidas. Ao
considerar as mudanças nas informações de contexto o RecRoute pode proporcionar ao
usuário uma indicação mais direcionada às suas necessidades, tendo em vista que o
trânsito tem características dinâmicas onde incidentes podem, a qualquer momento,
influenciar diretamente seu status. Sendo assim, esta seção tem por objetivo mostrar
como foram identificados os requisitos de contexto.
Inicialmente realizamos um levantamento de algumas informações contextuais
sobre preferências dos usuários que possivelmente seriam úteis aos passageiros do
transporte público durante as recomendações, são elas: menor distância a ser percorrida,
menor tempo de deslocamento, menor custo da passagem, troca de ônibus durante o
deslocamento e menor distância a ser percorrida a pé.
Para validação das preferências inicialmente consideradas, utilizamos um
questionário, constante do Apêndice B, que foi respondido por 57 pessoas, entre elas,
estudantes de graduação do CIn (Centro de Informática) e outras pessoas da sociedade
que utilizam transporte público por ônibus.
Este questionário indaga sobre a importância de cada preferência, inicialmente
levantada, para um aplicativo de recomendação de rotas direcionado aos moradores de
determinada cidade, e requisita sugestões para eventuais preferências não consideradas
durante o primeiro levantamento.
Ao consolidar os resultados percebemos que as preferências inicialmente
sugeridas foram consideradas “Muito Importantes” e de “Média Importância” com
especial destaque para o menor tempo de deslocamento com quase 90% de relevância,
menor distância a ser percorrida e troca de ônibus com 64,9% e 73,7 % de relevância
respectivamente. Verifica-se ainda que nenhuma das preferências levantadas
inicialmente foi classificada como “Pouco Importante” pela maioria dos respondentes,
conforme mostra a Figura 4.3.
Figura
Além das respostas sobre
parada foi sugerido por 60% dos
considerada durante as recomendações.
Após a análise do questionário aplicado
precisa as informações contextuais
que fazem parte do cenário de atuação do RecRoute
de informações contextuais utilizado pelo aplicativo RecRoute
Contextuais e seus respectivos
Figura
0,0%
20,0%
40,0%
60,0%
80,0%
100,0%
Menor distância
Po
rce
nta
ge
ns
Relevância das Preferências dos Usuários
Figura 4.3 – Relevância das Preferências dos Usuários
Além das respostas sobre as relevâncias das preferências, o tempo de esp
parada foi sugerido por 60% dos respondentes como informação contextual a ser
considerada durante as recomendações.
análise do questionário aplicado, pudemos modelar
as informações contextuais das preferências dos usuários e de outras entidades
do cenário de atuação do RecRoute. A Figura 4.4 apresenta o modelo
uais utilizado pelo aplicativo RecRoute, destacan
Contextuais e seus respectivos Elementos Contextuais.
Figura 4.4 – Modelagem das Informações Contextuais
Menor tempo
Menor preço
Troca de ônibus
Percurso a pé
Preferências dos Usuários
Relevância das Preferências dos Usuários
Pouco Importante
Média Importância
Muito Importante
52
, o tempo de espera na
respondentes como informação contextual a ser
de forma mais
das preferências dos usuários e de outras entidades
apresenta o modelo
, destacando as Entidades
Relevância das Preferências dos Usuários
Pouco Importante
Média Importância
Muito Importante
53
Dentre as informações contextuais modeladas na Figura 4.4, o RecRoute
implementa diretamente ações sobre as listadas a seguir:
• Passageiro
Estas informações dizem respeito ao usuário requisitante e suas preferências.
o Localização: representa a localização geográfica do usuário que está
requisitando a sugestão de rotas para o seu deslocamento;
o Deficiência: esta informação é importante para o sistema, pois informa se
o usuário possui algum tipo de deficiência, tais como: deficiência de locomoção
(cadeirante), deficiência visual ou auditiva;
o Distância percorrida a pé: este atributo informa qual a distância máxima
em metros que o usuário toleraria se deslocar a pé;
o Preferência por troca de ônibus: representa a preferência do usuário para
rotas que tenham trocas de ônibus a serem efetuadas durante o trajeto;
o Tipo de busca: representa a preferência do usuário pelo tipo de busca a
ser realizado entre as rotas como, por exemplo, menor distância percorrida, menor preço
ou menor tempo gasto;
o Preferência por tempo de espera na parada: esta informação informa qual
seria o tempo máximo em minutos que o usuário suportaria esperar na parada de ônibus
até embarcar.
• Ambiente
O ambiente em que o usuário se encontra com relação ao clima, horário do dia e
outras questões são importante para as recomendações realizadas pelo RecRoute, pois
pode influenciar sobremaneira na classificação das rotas e consequentemente nas
recomendações. Desta entidade levamos em consideração:
o Clima: representa a condição climática no momento da recomendação
como, chuvoso, ensolarado ou nublado;
o Período do dia: a informação representa o período do dia que está
ocorrendo a requisição como, manhã (06:00 as 11:59 h), tarde (12:00 as 17:59 h) ou
noite (18:00 as 05:59 h).
54
• Rota
As rotas possuem muitas informações contextuais, no RecRoute são
consideradas as informações listadas a seguir:
o Distância total: esta informação diz respeito à distância a ser percorrida
em metros;
o Tempo total: indica o tempo total para percorrer a rota;
o Preço: revela qual o custo total da rota;
o Rota com troca de ônibus: informa se o usuário precisará realizar troca de
ônibus para chegar ao seu destino;
o Distância percorrida a pé: indica a distância a ser percorrida a pé pelo
passageiro;
o Tempo de espera na parada: esta informação diz respeito a quanto tempo
em minutos, o usuário deverá permanecer na parada esperando seu transporte;
• Ônibus
Os ônibus possuem informações contextuais relevantes para a definição de
alguns elementos contextuais das rotas, para essa entidade consideramos os elementos a
seguir:
o Localização: esta informação diz respeito à localização do ônibus no
momento da requisição das rotas pelo usuário;
o Acessibilidade: revela se os ônibus que compõem a rota possuem
acessibilidade. Esta informação é importante para a qualidade das recomendações
realizadas pelo sistema, pois pessoas com deficiência de locomoção (cadeirantes)
somente poderão embarcar em ônibus com esta característica;
o Preço: representa o preço da passagem para o ônibus.
4.2.3 Arquitetura
O RecRoute utiliza vários recursos oferecidos pelo Middleware do projeto
Ubibus, entre eles podemos destacar: as Interfaces, o Banco de Dados, um serviço de
Geração de Rotas que recupera rotas enriquecidas de elementos contextuais do trânsito
de acordo com a origem e destino passadas pelo usuário, e um serviço de Informações
Climáticas e Temporais o qual fornece informações contextuais climáticas e de horários
55
utilizadas nas recomendações de rotas. A Figura 4.5 apresenta a arquitetura do sistema
RecRoute.
Figura 4.5 – Arquitetura do RecRoute
Estão presentes na arquitetura do RecRoute quatro componentes principais,
sendo eles: o Gerenciador de Recomendações que é responsável pela integração dos
demais componentes e orquestração do fluxo de execução do processo de
recomendação, gerenciando assim todas as ações do aplicativo, o Gerenciador de
Contexto que tem por objetivo gerenciar a aquisição de informações contextuais a serem
utilizadas pelo RecRoute, o Módulo de Aprendizagem responsável por gerar e manter as
funções utilizadas na classificação das rotas e o Classificador Contextual de Rotas
responsável pela ordenação das rotas utilizando a função produzida pelo processo de
aprendizagem. Este último componente faz parte do Middleware do projeto Ubibus,
oferecendo também seus serviços a outras aplicações do projeto. As rotas são
classificadas por suas características considerando o ponto de origem e destino
escolhidos pelo usuário. Todos os elementos da arquitetura são detalhados a seguir.
56
Interfaces
As Interfaces pertencentes ao projeto Ubibus, apresentado na Seção 4.1,
comunicam-se com o RecRoute por meio de suas Aplicações Web e Móvel. A Interface
Móvel tem o grande benefício de ser portátil, permitindo assim que o usuário possa
tomar sua decisão sobre a rota a seguir de qualquer lugar, mesmo que não esteja na
parada de ônibus ou em casa. A Interface Móvel é similar à Interface Web, sendo
adaptada para dispositivos móveis e também com a possibilidade de utilizar mais
precisamente a posição georeferenciada do usuário fornecida pelo dispositivo.
Gerenciador de Recomendações
O Gerenciador de Recomendações é o componente central da arquitetura do
RecRoute e gerencia todas as ações do aplicativo como, por exemplo, o acionamento de
outros componentes da arquitetura do aplicativo. É por meio deste elemento que todas
as ações dos usuários realizadas pelas Interfaces têm acesso às funcionalidades do
sistema.
Gerenciador de Contexto
O Gerenciador de Contexto é responsável pelo gerenciamento das informações
contextuais que são utilizadas para a recomendação. Este componente se comunica com
os serviços do Middleware do Ubibus para obter os dados necessários, tais como: o
conjunto inicial de rotas fornecidas pelo Gerador de Rotas para a origem e destino
informados pelo usuário e informações climáticas e temporais. Informações das
preferências do usuário requisitante também são capturas pelo componente por meio de
acesso a base de dados.
Módulo de Aprendizagem
Este módulo da arquitetura tem por objetivo principal gerir a função utilizada
para a classificação das rotas por meio de aprendizagem supervisionada (treinamento)
de forma incremental. A Figura 4.6 ilustra como a aprendizagem é realizada de forma a
se obter a função. A aprendizagem é feita por meio de um conjunto de registros,
denominado conjunto de treinamento, contendo informações sobre as preferências dos
usuários, informações temporais e climáticas, duas opções de rotas, e seus rótulos de
classes associados, neste caso a melhor rota entre as opções apresentadas.
57
Os registros de treinamento foram obtidos junto aos usuários de transporte
público, por meio de uma página web, onde os usuários informavam suas preferências,
visualizavam duas opções de rotas e um ambiente climático e temporal. Após a análise
das duas opções de rotas exibidas o usuário escolhia a melhor rota para suas
necessidades gerando assim um registro para o treinamento, sendo o rótulo da classe a
rota escolhida.
Figura 4.6 – Demonstração da Formação da Função para Classificação das Rotas
Fonte: Adaptado de (Han e Kamber 2006)
Depois de formado o conjunto com os registros para treinamento, este foi
submetido ao Algoritmo de Classificação Naive Bayes (Friedman, 1997), gerando uma
função. Outros detalhes sobre a formação dos registros de treinamento e a escolha do
Algoritmo de Classificação utilizado para gerar a função que classifica as rotas são
expostos no Capítulo 5.
Assim podemos entender melhor a Figura 4.6, onde o conjunto de registros
utilizado para o treinamento (1) foi obtido por meio da interação com os usuários de
transporte público e, posteriormente, analisado por um algoritmo de classificação (2)
para criação da função. A função (3) obtida pode ser compreendida como y=f(X), que
permite predizer o rótulo y (melhor rota entre as duas rotas iniciais) do atributo-classe.
A função, resultado da aprendizagem dos registros de treinamento pelo
algoritmo Naive Bayes, é armazenada em uma estrutura no banco de dados. Cada
função é única para os pontos de origem e destino fornecidos pelo usuário no momento
58
da requisição. A Figura 4.7 ilustra a estrutura utilizada para armazenar a função gerada
pelo processo de aprendizagem no banco de dados.
Figura 4.7 – Estrutura de Armazenamento da Função para Classificação
O Módulo de Aprendizagem também é responsável por realizar a atualização das
funções armazenadas no banco de dados. A atualização acontece utilizando o algoritmo
Naive Bayes e considerando as escolhas dos usuários entre as rotas exibidas em forma
de Realimentação de Relevância realizada implicitamente. O Quadro 4.1 apresenta o
algoritmo codificado em pseudo-código utilizado para esta tarefa.
Quadro 4.1 – Pseudo-Código para a Realimentação de Relevância
1 Programa RealizarRealimentacaoRelevancia 2 Var 3 I, PosMelhorRota: Inteiro 4 RotasNaoEscolhidas: Rotas[] 5 MelhorRota: Rota 6 Funcao: Classificador 7 Ambiente: Ambiente 8 PrefUsuario: PrefUsuario 9 Início 10 Para I � 0 Até Tamanho(RotasNaoEscolhidas) faça 11 Atualizar(Funcao,PrefUsuario,Ambiente,RotasNaoEscolhidas[I],MelhorRota,PosMelhorRota) 12 I � I + 1 13 Fim Para 14 Retorne � True 15 FIM.
Nas linhas 10,11 e 12 do pseudo-código podemos visualizar que a rota escolhida
pelo usuário, e considerada a melhor rota entre as exibidas, é submetida novamente ao
Naive Bayes, formando pares com as rotas não escolhidas. Também são informados o
ambiente climático e temporal e as preferências do usuário.
O Naive Bayes considera os registros formados para a atualização da função.
Neste caso, é informado ao algoritmo qual das duas rotas submetidas foi escolhida
como melhor rota pelo usuário, por meio da sua posição no registro. Assim, o algoritmo
poderá atualizar a função de acordo com as escolhas dos usuários. Isto acontece de
59
forma gradativa fazendo com que as rotas exibidas aos usuários no futuro sejam mais
adaptadas às suas preferências e necessidades.
Classificador Contextual de Rotas
O Classificador Contextual de Rotas é o componente responsável pelo
ordenamento das rotas utilizando a função produzida pelo Módulo de Aprendizagem. As
rotas são classificadas por suas características considerando as preferências do usuário e
os pontos de origem e destino escolhidos.
A classificação das rotas acontece agrupando-as em pares e seguindo a
expressão N*(N-1). A Figura 4.8 ilustra um caso de agrupamento de rotas para
classificação, onde temos um conjunto inicial de 4 rotas.
Figura 4.8 – Agrupamento das Rotas para Classificação
Conforme podemos verificar na Figura 4.8, para este caso são formados 12 pares
de rotas, estes pares se repetem alternando-se as posições entre as rotas (primeira e
segunda rota). Esta forma de agrupamento em pares para passagem pelo Naive Bayes foi
escolhida por que acreditamos que a repetição dos pares alternando-se as posições possa
minimizar a margem de erro da classificação. Após a formação destes pares a
classificação é iniciada.
O Quadro 4.2 ilustra o algoritmo codificado em pseudo-código utilizado na
classificação das rotas. Podemos visualizar que as rotas são submetidas em pares para
avaliação, cuja formação foi ilustrada na Figura 4.8. Após a avaliação de todos os pares
pelo classificador, é realizada a contagem da pontuação obtida por cada rota e,
finalmente, depois da consolidação das pontuações, todas as rotas são ordenadas de
acordo com a pontuação obtida por cada rota durante as avaliações.
60
Quadro 4.2 – Pseudo-Código da Classificação das Rotas
1 Programa OrdenarRotas 2 Var 3 I,J,H,Resuultado: Inteiro 4 ConjRotas: Rotas[] 5 ConjRotasAux: Rotas[] 6 Funcao: Classificador 7 Ambiente: Ambiente 8 PrefUsuario: PrefUsuario 9 Início 10 ConjRotasAux � ConjRotas 11 Para I � 0 Até Tamanho(ConjRotas) faça 12 Para J � 0 Até Tamanho(ConjRotasAux) faça 13 Se I != J então 14 Resultado � Avaliar(Funcao, PrefUsuario,Ambiente, ConjRotas[I],ConjRotasAux[J]) 15 Se Resultado == 1 então 16 ConjRotas[I].pontuacao � ConjRotas[I].pontuacao + 1 17 Senão 18 ConjRotasAux[J].pontuacao � ConjRotasAux[J].pontuacao + 1 19 Fim Se 20 Fim Se 21 J � J + 1 22 Fim Para 23 I � I + 1 24 J� 0 25 Fim Para 26 Para H � 0 Até Tamanho(ConjRotas) faça 27 ConjRotas[H].nota � ConjRotas[H].pontuacao + ConjRotasAux[H].pontuacao 28 H � H + 1 29 Fim Para 30 Retorne � Sort(ConjRotas[]) 31 FIM.
Após a ordenação, as rotas são encaminhadas ao Gerenciador de Recomendações
para exibição ao passageiro requisitante.
Serviços do Middleware Ubibus Diretamente Utilizados pelo RecRoute
Alguns serviços presentes no Middleware do projeto Ubibus são utilizados pelo
aplicativo RecRoute durante as recomendações:
• Gerador de Rotas: Este componente tem o objetivo de gerar um conjunto
de rotas de acordo com pontos de origem e destino passados pelo usuário. Elementos
contextuais do estado atual do trânsito, tais como, engarrafamentos, horários de tráfego
intenso, acidentes, alagamentos, informações de redes sociais, entre outras informações
são utilizadas para gerar as rotas;
• Condições Climáticas e Temporais: Informações contextuais sobre o
clima e horário são importantes para o sistema de recomendação de rotas. Este
componente é responsável por fornecer informações sobre o clima e o tempo que são
utilizadas pelo aplicativo RecRoute durante a classificação das rotas. Para obter estas
61
informações o Gerenciador de Contexto informa a cidade de onde é proveniente a
recomendação e recebe a situação climática e temporal da localidade.
Banco de Dados
A base de dados utilizada pelo RecRoute é compartilhada com outros aplicativos
e serviços que compõem o projeto Ubibus. Esta base contém dados contextuais estáticos
e dinâmicos do trânsito, dos ônibus, das vias, das paradas de ônibus, dos passageiros,
entre outros. A Figura 4.9 mostra um extrato do modelo relacional do banco de dados
do projeto Ubibus contendo as principais entidades que o RecRoute utiliza.
Figura 4.9 – Extrato do Modelo Relacional do Banco de Dados do Projeto Ubibus
4.3 Implementação do RecRoute
O aplicativo RecRoute utiliza a base de dados do projeto Ubibus que foi
implementada utilizando o Sistema de Gerenciamento de Banco de Dados (SGBD)
PostgreSQL7 com extensão PostGIS8, por se tratar de um SGBD de domínio público,
gratuito e com larga confiabilidade na manipulação de dados geográficos.
7 http://www.postgresql.org/ 8 http://postgis.net/
62
A base de dados do projeto Ubibus foi alimentada com dados reais. Para isso foi
realizada uma parceria com a Superintendência de Mobilidade Urbana (SEMOB) da
cidade de João Pessoa – PB. Dessa forma, um conjunto de dados reais referentes a
localizações geográficas de paradas de ônibus, trechos e linhas de ônibus, bem como
informações sobre empresas fornecedoras do serviço de transporte público, entre outras,
foram obtidos junto a SEMOB e armazenados na base de dados. Outras informações
sobre pontos de interesse e suas características foram obtidas por meio de serviço
disponibilizado pelo Google Places9. Estes dados foram inseridos na base de dados do
projeto Ubibus de acordo com a modelagem conceitual dos dados anteriormente
apresentada. Desta forma, o usuário pode escolher, como pontos de origem e destino,
paradas de ônibus ou algum ponto de interesse como, por exemplo, Universidade
Federal da Paraíba ou Prefeitura Municipal de João Pessoa.
Para realizar a inserção dos dados da cidade de João Pessoa na base do Ubibus
foram necessários alguns ajustes importantes para adaptação à modelagem conceitual da
base de dados, a saber:
• Cálculo e armazenamento de pontos geográficos intermediários entre as
paradas de origem e destino para cada trecho: Estes pontos auxiliam os aplicativos
do projeto a traçar caminhos por onde os veículos fazem seus deslocamentos. O
armazenamento destes pontos na base também proporcionou aos aplicativos maior
agilidade, pois os mesmos não necessitam recorrer a serviços externos para a obtenção
destas informações;
• Cálculo do comprimento em metros de cada trecho: Para cada trecho
inserido na base de dados foi necessário o cálculo em metros de seu comprimento.
A Figura 4.10 apresenta detalhes da modelagem das principais classes do
Módulo de Aprendizagem, do Classificador Contextual de Rotas, do Gerenciador de
Contexto e do Gerenciador de Recomendações, presentes na arquitetura do RecRoute.
A Figura 4.11 mostra um diagrama de sequência com as mensagens trocadas
pelos componentes da arquitetura. Nele podemos observar as atividades realizadas pelo
aplicativo RecRoute.
Observamos que o usuário tem a opção de realizar o login no RecRoute, caso
isso aconteça suas preferências são recuperadas do banco de dados. O aplicativo
9 www.google.com/places
também permite que um usuário não cadastrado possa realizar r
isso basta informar suas preferências como parâmetros no momento da consulta e
realizar a busca. O usuário cadastrado também pode alterar suas preferências visando
uma determinada requisição, informando as preferências como parâme
da consulta. Dessa forma, o RecRoute considera os parâmetros informados na
requisição da consulta em detrimento às preferências armazenadas no banco.
Figura
Ao receber a requisição das
destino, preferências e localização do usuário
o Gerenciador de Contexto
a recomendação.
O primeiro serviço a ser acess
Informações Climáticas e Temporais
obter as condições em que o usuário está realizando a requisição
também permite que um usuário não cadastrado possa realizar requisições de rotas, para
isso basta informar suas preferências como parâmetros no momento da consulta e
realizar a busca. O usuário cadastrado também pode alterar suas preferências visando
uma determinada requisição, informando as preferências como parâmetros no momento
da consulta. Dessa forma, o RecRoute considera os parâmetros informados na
requisição da consulta em detrimento às preferências armazenadas no banco.
Figura 4.10 – Principais Classes do RecRoute
o receber a requisição das Interfaces do aplicativo com os pontos de origem
, preferências e localização do usuário o Gerenciador de Recomendações
o, a fim de colher as informações contextuais necessárias
O primeiro serviço a ser acessado pelo Gerenciador de Contexto
Informações Climáticas e Temporais, localizado no Middleware do Ubibus, a fim de
as condições em que o usuário está realizando a requisição.
63
equisições de rotas, para
isso basta informar suas preferências como parâmetros no momento da consulta e
realizar a busca. O usuário cadastrado também pode alterar suas preferências visando
tros no momento
da consulta. Dessa forma, o RecRoute considera os parâmetros informados na
requisição da consulta em detrimento às preferências armazenadas no banco.
com os pontos de origem e
Gerenciador de Recomendações aciona
as informações contextuais necessárias para
Gerenciador de Contexto é o Serviço de
do Ubibus, a fim de
Figura
Figura 4.11 – Diagrama de Sequência das Atividades do RecRoute
64
65
O próximo passo do Gerenciador de Contexto é acessar o serviço Gerador de
Rotas que fornece um conjunto de rotas para o ponto de origem e destino fornecidos
pelo usuário e sua localização. Tais rotas estão enriquecidas com informações
contextuais da situação do trânsito atual (e.g informações sobre engarrafamentos,
acidentes, alagamentos entre outros).
Após colher estas informações o Gerenciador de Contexto as retorna ao
Gerenciador de Recomendações que aciona o Módulo de Aprendizagem a fim de
recuperar, no banco de dados, a função que será utilizada para a classificação das rotas,
considerando o ponto de origem e destino passados pelo usuário. A função é criada por
meio do Framework MOA (Massive Online Analysis) (Bifet et. al., 2010), ferramenta de
código aberto que inclui uma coleção de algoritmos de aprendizagem de máquina, entre
eles o Naive Bayes.
Após receber do Módulo de Aprendizagem a função de classificação para os
pontos de origem e destino, o Gerenciador de Recomendações aciona o módulo
Classificador Contextual de Rotas, para que estas rotas sejam classificadas. O
Classificador Contextual de Rotas recebe do Gerenciador de Recomendações as
seguintes informações:
• Preferências e informações do perfil do usuário, tais como: tipo de
necessidade especial do usuário, entre elas (nenhuma, cadeirante, visual ou auditiva);
preferência de distância a ser percorrida a pé em metros; preferência por rota com troca
de ônibus (sim ou não); tipos de busca da rota (rota mais rápida, rota mais barata e rota
de menor distância a ser percorrida) e preferência por tempo de espera na parada de
ônibus em minutos;
• Dados climáticos e temporais, tais como: período do dia (manhã, tarde ou
noite) e condições climáticas (ensolarado, chuvoso ou nublado) no momento em que a
requisição está sendo realizada;
• Características das rotas, tais como: distância total a ser percorrida em
metros, preço total em reais, tempo total a ser gasto em minutos, acessibilidade (ônibus
adaptados para cadeirantes), troca de ônibus, distância a ser percorrida a pé em metros e
tempo de espera na parada em minutos;
• A função para a classificação gerada pelo algoritmo Naive Bayes.
66
Após o recebimento destas informações o Classificador Contextual de Rotas
verifica se o usuário possui Deficiência Locomotiva (cadeirante), caso isso seja
verdadeiro, o Classificador descartará todas as rotas cujos ônibus não possuam
acessibilidade para pessoas cadeirantes.
As rotas ordenadas são retornadas pelo Classificador Contextual de Rotas ao
Gerenciador de Recomendações e, posteriormente, exibidas aos usuários por meio das
Interfaces do aplicativo. O usuário poderá visualizar as informações das rotas ordenadas
de acordo com suas preferências para os pontos de origem e destino informados e
escolher a mais interessante para si.
As rotas exibidas pelo RecRoute possuem vários parâmetros visuais, a saber:
pontos geográficos da origem, destino e localização atual do usuário, dados geográficos
das paradas de origem, destino e troca de ônibus (caso haja), trechos que os ônibus
deverão percorrer, trechos percorridos a pé pelo usuário, preço de cada passagem de
ônibus, entre outros. Outros dados textuais também poderão ser observados: a distância
a ser percorrida, o custo de tempo total da viagem, a distância total a ser percorrida a pé
e outros.
A Interface Móvel do RecRoute foi desenvolvida utilizando a plataforma
Android10, em Java11. Já a Interface Web foi desenvolvida utilizando HTML12 e
JavaScript13, ambas usando alguns recursos da API do Google Maps. As Figuras 4.12 e
4.13, mostram as Interfaces desenvolvidas para o aplicativo RecRoute.
10
http://www.android.com/ 11
http://www.java.com/ 12 http://www.html.com/ 13 http://www.javascriptsource.com/
67
Figura 4.12 – Exemplos da Interface Móvel do RecRoute
Figura 4.13 – Exemplo da Interface Web do RecRoute
68
A comunicação realizada entre as Interfaces e o Gerenciador de Recomendações
é feita seguindo os princípios REST14 (Representational State Transfer), onde as
aplicações fazem requisição HTTP, contendo origem, destino e informações das
preferências do usuário, recebendo um objeto JSON15 (JavaScript Object Notation),
com as rotas ordenadas.
O feedback do usuário é considerado por meio de sua escolha entre as rotas
exibidas e tem por objetivo manter a função utilizada na classificação sempre atualizada
para os pontos de origem e destino. Logo após o usuário escolher a rota que mais se
adéque, o Gerenciador de Recomendações aciona o Módulo de Aprendizagem
informando a rota que foi escolhida entre as que foram exibidas. O Módulo de
Aprendizagem, que por sua vez localiza a função armazenada no banco, para os pontos
de origem e destino passados pelo usuário, forma registros de treinamento similares ao
exibido na Seção 5.1.1 e os processa de modo a atualizar a função.
4.4 Considerações Finais
Este capítulo apresentou a proposta e aspectos de implementação do sistema
RecRoute um aplicativo de recomendação de rotas aos passageiros de transporte público
por ônibus, sensível ao contexto. O RecRoute, diferentemente dos outros sistemas de
recomendação e/ou exibição de rotas que foram apresentados, leva em consideração
informações contextuais dos usuários envolvidos nas recomendações, tentando torná-las
mais adaptadas às necessidades dos passageiros e à situação atual do trânsito.
Outras características importantes do RecRoute são a utilização de técnicas de
Realimentação de Relevância (Seção 2.3.3) que considera o histórico do Feedback do
usuário para atualizar a função que classifica as rotas e o acesso à aplicação por meio de
muitas interfaces. A Tabela 4.1 complementa a Tabela 3.1 que foi apresentada na Seção
3.2, inserindo-se à mesma o comparativo com o aplicativo RecRoute.
14
http://rest.elkstein.org/ 15
http://www.json.org/
69
Tabela 4.1 – Comparativo entre os Sistemas e o RecRoute
Sistemas
Tipo de Informações Contextuais Utilizadas
Interface de Comunicação com o Usuário
Utilização de Preferências dos
Usuários
Utilização de Informações Históricas
Domínio de Utilização
Apenas para Transporte Público por
Ônibus
OneBusAway Estáticas,
Dinâmicas e Inferidas
Móvel, Web e SMS
Não Não Sim
Bus Catcher Estáticas e Dinâmicas
Móvel Parcialmente Não Sim
Sistema de Informações de Trânsito (Hoar
2009)
Estáticas e Dinâmicas
Móvel e Web Não Não Sim
PECITAS Estáticas Móvel Parcialmente Não Não
Google Transit Estáticas Móvel e Web Não Não Não
ANTARES Estáticas Web Não Não Sim
UbibusRoute Estáticas e Dinâmicas
Móvel Parcialmente Não Sim
RecRoute Estáticas,
Dinâmicas e Inferidas
Móvel e Web Sim Sim Sim
Detalhes referentes à escolha do algoritmo de classificação Naive Bayes, dos
experimentos e os resultados alcançados com o protótipo do RecRoute serão
apresentados no próximo capítulo.
70
Capítulo 5
Experimentos e Resultados
Este capítulo tem por objetivo apresentar os experimentos e resultados obtidos
com o protótipo do RecRoute. Em particular, são discutidas as razões para a escolha do
Algoritmo de Classificação Naive Bayes, dentre os apresentados na Seção 2.3.4, que é
utilizado no aplicativo e outros aspectos de implementação dos módulos da arquitetura
do sistema.
5.1 Escolha do Algoritmo de Classificação
Conforme descrito na Seção 4.2.3, que apresenta a arquitetura do aplicativo
RecRoute, funções foram criadas por meio do algoritmo Naive Bayes para auxiliar na
recomendação das rotas. Estas funções são geradas pelo processamento de um conjunto
de registros denominado conjunto de treinamento.
O Naive Bayes também é utilizado para realizar a atualização das funções, de
acordo com as escolhas do usuário entre as indicações realizadas pelo sistema. Assim,
podemos perceber que a escolha do Algoritmo de Classificação teve grande importância
no escopo deste projeto. Portanto, um experimento foi realizado com a finalidade de
comparar o desempenho dos algoritmos citados na Seção 2.3.4.
A seguir detalhamos o cenário experimental utilizado para a comparação dos
algoritmos e os resultados obtidos.
5.1.1 Descrição do Cenário Experimental
O cenário experimental adotado para a comparação do desempenho dos
algoritmos teve como principal objetivo verificar qual dos algoritmos anteriormente
descritos - C4.5 (Quinlan, 1993), Naive Bayes (Friedman, 1997), Multilayer Perceptron
(Mcculloch e Pitts, 1943) - obteria o melhor desempenho para o cenário proposto pelo
aplicativo.
Neste experimento, a implementação dos algoritmos de aprendizagem de
máquina foi realizada por meio da API da ferramenta Weka (Waikato, 2010). O Weka
71
utiliza um arquivo no formato ARFF (Attribute-Relation File Format) que contém um
conjunto de registros que são utilizados na tarefa de aprendizagem. No caso deste
trabalho este arquivo consistiu do conjunto de treinamento formado por informações
contextuais dos passageiros, do ambiente e das rotas de ônibus, citadas na Seção 4.2.2.
O arquivo ARFF foi formado por registros onde cada linha representava a
comparação entre duas rotas, de acordo com as preferências dos usuários e dados
climáticos e temporais. A Figura 5.1 ilustra o formato dos registros contidos no arquivo
ARFF, que consistem de cinco partes:
• A primeira representa as informações contextuais dos usuários, que incluem
necessidades especiais (caso exista), preferência por distância a ser percorrida a pé em
metros, preferência por efetuar troca de ônibus, tipo de busca da rota (menor distância,
menor tempo ou menor preço) e preferência por tempo de espera na parada em minutos;
• A segunda representa as informações contextuais do ambiente climático e
temporal no momento da requisição da rota;
• A terceira e quarta partes contemplam as informações das duas rotas sendo
comparadas: distância total a ser percorrida pela rota em metros, preço total da
passagem em reais, tempo total de deslocamento em minutos, rota com troca de ônibus,
acessibilidade nos ônibus, distância a ser percorrida a pé e tempo de espera na parada
em minutos;
• A última parte dos registros corresponde à escolha feita pelo usuário,
considerando suas preferências, o cenário e as características das duas rotas exibidas. Na
Figura 5.1 verificamos que a rota escolhida foi a da segunda posição, no caso a rota 2.
Figura 5.1 – Ilustração de um Registro do Arquivo ARFF
Para a obtenção dos registros utilizados para o treinamento dos algoritmos, foi
desenvolvida uma página Web, onde o usuário visualizava um ambiente (condições de
tempo e clima) e características de duas rotas geradas aleatoriamente. Em seguida o
usuário preenchia suas preferências e, baseado nestas informações, escolhia uma das
72
duas rotas exibidas anteriormente, gerando assim um registro para o conjunto de
treinamento. A comparação era feita sempre entre duas rotas.
O acesso à página foi divulgado e disponibilizado no período de duas semanas,
entre os alunos do Centro de Informática da Universidade Federal de Pernambuco, e por
outros meios, tais como: Twitter e Facebook. Neste período foram coletados 742
registros16.
Após a aquisição dos registros com as informações contextuais dos usuários,
foram definidas algumas métricas de avaliação para o experimento, tendo como
parâmetros o cenário de uso do aplicativo RecRoute:
• Porcentagem de acerto nas classificações: A porcentagem de acerto é
fornecida pelo framework Weka após realizar o treinamento dos registros contidos no
arquivo ARFF, e corresponde ao grau de eficiência do algoritmo testado em predizer de
maneira correta a rota preferida pelo usuário;
• Tempo total para a construção da função: Esta medida diz respeito ao
tempo total gasto para que o algoritmo construa a função que é utilizada na classificação
das rotas;
• Tempo necessário para a classificação de 1 registro: Para indicar as rotas
aos usuários o RecRoute atribui pontuações a partir da classificação, realizada pela
função, de registros com estrutura similar ao do arquivo ARFF. Então resolvemos medir
qual o tempo necessário para a classificação de cada registro.
Na execução dos experimentos foi utilizando um computador com processador
Intel® Core™ 2 Duo Processor P7550 (3M Cache, 2.26 GHz, 1066 MHz FSB), 4 GB
de memória RAM, sistema operacional Windows 8 x64 e o Java SE na versão 1.7.0_09
x64.
5.1.2 Resultados Obtidos
Os resultados obtidos durante os experimentos são apresentados na Tabela 5.1.
Podemos observar que os algoritmos comparados tiveram desempenho muito
semelhante em alguns aspectos como, por exemplo, a porcentagem de acerto durante as
classificações que mostrou uma pequena vantagem para o Naive Bayes.
16 http://ubibus.cin.ufpe.br/recroute/Registros_Treinamento_RecRoute.arff
73
Quanto ao tempo necessário para a construção da função, notamos que o pior
desempenho foi obtido pelo algoritmo Multilayer Perceptron, com resultado bastante
acima dos demais. Quanto ao tempo necessário para a classificação de 1 registro os
algoritmos obtiveram um resultado similar com vantagem para o Multilayer Perceptron.
Tabela 5.1 – Resultados da Comparação de Algoritmos
Atributo / Algoritmo (C4.5) Multilayer
Perceptron
Naive Bayes
Porcentagem de acerto nas classificações 82,34 84,77 85,25
Tempo necessário para construir a função. (Em segundos)
0.05 9 0.01
Tempo necessário para classificação de 1 registro. (Em segundos)
0.0015 0.002 0.006
De acordo com os dados apresentados e considerando o caso exclusivo do
sistema de recomendação proposto, podemos concluir que o algoritmo Naive Bayes
obteve o melhor desempenho dentre os comparados, pois obteve melhor taxa de acerto
nas classificações e menor tempo para a geração da função que classifica as rotas.
Apesar de apresentar o pior tempo para a classificação de registros individuais a
diferença para os outros algoritmos (em segundos) é considerada pequena. Assim,
decidimos utilizar o Classificador Ingênuo de Bayes (Naive Bayes) na implementação
do RecRoute.
5.2 Experimentos
Esta seção apresenta os experimentos realizados para avaliar o RecRoute. Ao
longo desta seção abordaremos os seguintes aspectos: objetivos, elaboração,
configuração do cenário experimental, execução do experimento e os resultados
alcançados.
5.2.1 Objetivos do Experimento
A experimentação realizada com o RecRoute teve os seguintes objetivos:
1. Avaliar se o processo de recomendação é realizado como esperado, ou seja,
se o Gerenciador de Recomendações realmente coordena e controla as etapas do
processo de recomendação, se o Módulo de Aprendizagem realiza suas atribuições de
treinamento a contento, e se o módulo de Classificador Contextual de Rotas classifica
adequadamente as rotas de acordo com as preferências dos usuários;
74
2. Avaliar se as rotas exibidas como resultado final da recomendação,
realmente se adéquam às necessidades dos usuários e verificar a posição da rota
escolhida pelo usuário dentre a lista de rotas exibidas pelo RecRoute;
3. Colher informações para possíveis melhorias futuras.
5.2.2 Elaboração do Experimento
A elaboração do experimento consistiu de dois passos. O primeiro passo foi a
implementação de dois protótipos de interfaces (Móvel e Web), por meio das quais o
experimento foi realizado. Através dessas, o usuário pôde acessar o sistema, informar
parâmetros de consulta e fazer requisições por rotas para os pontos de origem e destino
já pré-estabelecidos.
O segundo passo foi a construção de dois cenários experimentais, considerando
os pontos de origem e destino estabelecidos. Haja vista que o serviço Gerador de Rotas
do Middleware do Ubibus ainda está em fase de desenvolvimento, as rotas para os
cenários experimentais foram geradas com dados reais armazenados na base do Ubibus
(e.g pontos de paradas e trechos a serem percorridos) e outras informações simuladas
(e.g tempo de espera na parada). Cada cenário apresenta rotas distintas para pontos de
origem e destino diferentes, conforme descrito a seguir.
5.2.3 Configuração e Execução dos Cenários Experimentais
Para a configuração dos cenários experimentais foram escolhidos pontos de
origem, destino e linhas de ônibus reais, constantes da base de dados do projeto Ubibus.
Estes elementos deveriam ser de fácil identificação pelos participantes do experimento.
Cada cenário experimental consiste de um ponto de origem e destino, condições
climáticas e temporais para a requisição, a posição geográfica do usuário e um conjunto
de rotas iniciais. Os cenários experimentais estão representados nas Tabelas 5.2 e 5.3,
conforme informações contextuais descritas na Seção 4.2.2, para os cenários 1 e 2
respectivamente.
Cenário Experimental 1
Ponto de origem e localização do usuário: Hiper Bompreço.
Ponto de destino: Hospital São Luiz.
Condições climáticas e temporais: ensolarado, manhã.
75
Tabela 5.2 – Rotas do Cenário Experimental 1
Característica das Rotas Rotas Rota 1 Rota 2 Rota 3 Rota 4
Distância total 6000 m 4800 m 5000 m 5000 m Preço R$ 2,30 R$ 2,30 R$ 2,30 R$ 2,30
Tempo total 60 min 42 min 55 min 30 min Rota com troca de ônibus Sim Não Não Não Acessibilidade dos ônibus Não Sim Sim Sim Distância percorrida a pé 520 m 150 m 520 m 480 m
Tempo de espera na parada 20 min 15 min 30 min 5 min
Cenário Experimental 2
Ponto de origem e localização do usuário: Terminal de Integração de Ônibus.
Ponto de destino: Hospital de Olhos da Paraíba.
Condições climáticas e temporais: chuvoso, noite.
Tabela 5.3 – Rotas do Cenário Experimental 2
Característica das Rotas Rotas Rota 1 Rota 2 Rota 3
Distância total 2350 m 2300 m 2550 m Preço R$ 2,30 R$ 2,30 R$ 2,30
Tempo total 42 min 22 min 33 min Rota com troca de ônibus Não Não Não Acessibilidade dos ônibus Sim Não Sim Distância percorrida a pé 400 m 90 m 450 m
Tempo de espera na parada 30 min 10 min 20 min
O experimento foi executado por um grupo de 20 participantes diferentes e
voluntários, moradores da cidade de João Pessoa e usuários do transporte público
coletivo por ônibus. Os experimentos com o RecRoute foram realizados
individualmente com cada voluntário de acordo com os cenários experimentais
propostos. No início do experimento, foram explicados a cada participante os objetivos,
as características do RecRoute, como utilizá-lo, os cenários experimentais propostos e o
significado de cada informação contextual (de acordo com o que foi discutido na Seção
4.2.2). Também solicitamos que os participantes fornecessem suas preferências para o
sistema.
O Apêndice C mostra as preferências escolhidas por cada participante do
experimento para os cenários experimentais 1 e 2 propostos.
Durante a execução dos experimentos, o participante executava os cenários
experimentais e, após a exibição das rotas sugeridas pelo RecRoute, o participante as
analisava e escolhia a melhor rota para o seu trajeto de acordo com os cenários
propostos.
76
5.2.4 Resultados
Os participantes foram indagados de forma a responder os itens propostos nos
objetivos dos experimentos. As respostas foram coletadas e analisadas para os dois
cenários experimentais e serão mostradas a seguir.
Quanto à qualidade e correção das recomendações realizadas pelo RecRoute,
perguntamos se a rota indicada na primeira posição da lista se adequava às necessidades
e se dentre as demais da lista esta seria a escolhida. A porcentagem de acertos para as
rotas exibidas na primeira posição do ordenamento foi de 75% para o cenário
experimental 1 e 90 % para o cenário experimental 2. Esta diferença entre os cenários
talvez possa estar relacionada à quantidade de rotas que era menor para o cenário
experimental 2. Nos demais casos a rota escolhida pelos participantes estava listada
como a segunda opção e foi escolhida pelos participantes por ter menor distância a ser
percorrida a pé em relação à rota listada em primeira opção.
As rotas sugeridas pelo aplicativo RecRoute como 3ª e 4ª opções, não foram
escolhidas em nenhum momento pelos participantes. Deste modo temos que as rotas
escolhidas sempre estavam na 1ª ou 2ª posição do ordenamento. A Figura 5.2 ilustra a
porcentagem de acertos em cada cenário experimental.
Figura 5.2 – Acertos nas Recomendações de Rotas x Cenários Experimentais
Algumas melhorias foram propostas pelos participantes do experimento,
conforme apresentado abaixo:
1. Adaptar a interface para deficientes visuais. A inclusão de alertas sonoros e
vibratórios poderia ser uma boa alternativa, bem como reconhecimento de voz;
75%
90%
25%
10%
0%
20%
40%
60%
80%
100%
Cenário Experimental 1 Cenário Experimental 2
Porcentagem de Acertos nos
Cenários Experimentais
Acertos em 1ª Opção
Acertos em 2ª Opção
77
2. Acrescentar melhorias nas interfaces existentes como, por exemplo, ajuste
de botões e ícones;
3. Incluir outras informações que poderiam influenciar na ordenação das rotas
e nas preferências dos usuários com relação às rotas mostradas. Algumas informações
sugeridas foram: lotação do ônibus, risco de perigo nos percursos a pé, no ônibus e
também nas paradas onde o usuário irá desenvolver alguma ação, tais como: embarque e
desembarque no ônibus e troca de ônibus. Também foi sugerido que o passageiro possa
informar se é estudante ou possui gratuidade de passagem, ou ainda, se está carregando
consigo alguma carga pesada. Este tipo de informação poderia influenciar na ordenação
das rotas;
4. Considerar o contexto do usuário para a exibição do caminho a ser
percorrido a pé, mostrando caminhos com maior acessibilidade no caso de cadeirantes e
deficientes visuais;
5. Desenvolver versões para outros sistemas operacionais de dispositivos
móveis;
6. Emitir sinais sonoros e/ou vibratórios quando o ônibus estiver próximo das
paradas que demandem alguma ação do usuário como, por exemplo, embarque, troca de
ônibus e desembarque;
7. Monitorar o passageiro quando da escolha da rota, mostrando a localização
atualizada do ônibus e emitindo sinais sonoros e vibrantes quando acontecer qualquer
incidente que altere as características da rota escolhida pelo passageiro.
5.3 Considerações Finais
Neste capítulo, apresentamos como foi realizada a escolha do algoritmo de
classificação Naive Bayes, que foi utilizado pelo RecRoute. Também descrevemos o
experimento envolvendo o aplicativo RecRoute. Foram apresentados os objetivos,
preparação, execução, participantes, procedimentos e resultados dos cenários
experimentais. Participaram da experimentação 20 usuários do transporte público da
cidade de João Pessoa, que utilizaram o protótipo do RecRoute em dois cenários
experimentais previamente elaborados.
Os resultados dos experimentos indicaram que o RecRoute foi bem aceito. Além
disso, pudemos verificar que o funcionamento e a comunicação entre os módulos da
arquitetura do aplicativo foram executadas com sucesso e que as rotas recomendadas
78
foram, na maioria dos casos, aprovadas pelos usuários. Sendo assim, podemos dizer que
o RecRoute realizou recomendações de rotas de ônibus sensíveis ao contexto dos
usuários de forma correta.
No entanto, poucas rotas foram incluídas para os cenários experimentais, devido à
ausência do serviço Gerador de Rotas, que está em fase de desenvolvimento e as poucas
linhas de ônibus inclusas na base de dados do projeto Ubibus.
No próximo capítulo apresentamos as conclusões deste trabalho e sugestões de
trabalhos futuros.
79
Capítulo 6
Conclusão e Trabalhos Futuros
Atualmente os Sistemas Inteligentes de Transporte se transformaram em uma
alternativa atrativa e muito viável para solucionar alguns problemas e superar desafios
na área de transporte das grandes cidades. Essa evolução se deve em parte ao acelerado
crescimento da Tecnologia da Informação e Comunicação.
Tal evolução contribui para a crescente utilização de sistemas computacionais
em praticamente todas as áreas da atividade humana. Sendo assim, há uma ascendente
procura por sistemas dinâmicos e sensíveis ao contexto. A utilização deste tipo de
aplicação no provimento de informações aos usuários de transporte público urbano pode
proporcionar maior atração e fidelização ao serviço.
Este trabalho teve por objetivo apresentar o RecRoute um sistema de
recomendação de rotas para os usuários do transporte público por ônibus, capaz de obter
e/ou processar informações contextuais dinâmicas e estáticas, quer seja dos usuários,
linhas de ônibus, clima, tempo e trânsito, fornecendo assim uma recomendação mais
adequada à realidade dos passageiros.
A solução proposta difere de outros trabalhos relacionados pelo uso de
informações contextuais dinâmicas de fontes variadas, por utilizar diferentes
dispositivos para permitir o uso ubíquo e sensível ao contexto e por ser voltado aos
passageiros de transporte público.
6.1 Contribuições
Deste trabalho de pesquisa resultaram as seguintes contribuições:
1. Projeto e implementação do RecRoute: Projeto e implementação de um
Sistema de Recomendação de rotas de transporte público sensível ao contexto dos
usuários e aos aspectos relacionados ao trânsito, este último oriundo de serviços
disponíveis no Middleware do projeto Ubibus;
2. Análise de informações contextuais em SIU: Por meio de um trabalho de
revisão sistemática (Tito et. al., 2012) foram analisadas como as informações
80
contextuais, em seus mais diversos tipos, eram utilizadas até o momento em Sistemas de
Informação ao Usuário do transporte público por ônibus. Estas informações serviram de
base para a construção do RecRoute e podem subsidiar outros trabalhos na área.
6.2 Limitações do Trabalho
Conforme descrito na arquitetura do RecRoute, é prevista a utilização de
serviços contidos no Middleware do projeto Ubibus. Porém para o protótipo de
experimentação não foi possível a utilização de alguns destes serviços como, por
exemplo, o Gerador de Rotas, devido ao atraso na implementação dos mesmos. Então,
os dados que deveriam ser fornecidos por estes serviços foram simulados para a
experimentação.
A base de dados do projeto Ubibus utilizada pelo RecRoute tem apenas 10 linhas
de ônibus cadastradas. Isso gerou pouca quantidade e variedade de rotas para os
cenários experimentais. Apesar de o projeto ter os dados para a inserção de mais linhas
de ônibus da cidade de João Pessoa, isso ainda não foi realizado, pois os dados precisam
de tratamento prévio para introdução na base de dados, o que pode ser demorado caso
não se tenha um conhecimento prévio dos itinerários dos ônibus da cidade.
6.3 Trabalhos Futuros
Os trabalhos futuros desta pesquisa estão ligados às observações feitas pelos
participantes do experimento e a uma melhor experimentação, tendo como objetivo o
aprimoramento do aplicativo RecRoute.
1. Realizar a integração com os outros serviços descritos na arquitetura do
Middleware do projeto Ubibus como, por exemplo, Gerador de Rotas. Assim o
RecRoute ficará mais dinâmico e poderá deixar de simular algumas informações
necessárias ao seu funcionamento;
2. Melhorar a interface móvel incluindo sinais sonoros, vibratórios e
reconhecimento de voz. Estas modificações possibilitarão uma melhor adaptação para
deficientes visuais e tornarão o RecRoute mais atraente aos passageiros, os avisando
quando o ônibus estiver próximo das paradas que demandem alguma ação do usuário
como, por exemplo, embarque, troca de ônibus e desembarque. Tais modificações
também devem considerar aspectos de usabilidade para aplicações móveis;
81
3. Implementar ações que levem em consideração outras informações
contextuais que poderiam influenciar na ordenação das rotas e nas preferências dos
usuários com relação às rotas mostradas como, por exemplo, lotação do ônibus, risco de
perigo nos percursos a pé, no ônibus e também nas paradas;
4. Desenvolver versões para outros sistemas operacionais de dispositivos
móveis, além do Android, tais como: IOS e Windows;
5. Possibilitar a atualização das condições dos ônibus e da rota escolhida pelo
usuário, por meio do monitoramento dos veículos e de informações sobre a situação
atual do trânsito;
6. Incluir tratamento de calibragem das informações contextuais utilizadas
pelo aplicativo;
7. Avaliar outros algoritmos que possam melhorar as recomendações
fornecidas pelo RecRoute;
8. Incluir recomendação de rotas turísticas, passando por vários pontos
turísticos da cidade.
82
Referências
Adomavicius, G. e Tuzhilin, A. (2005). Toward the next generation of recommender
systems: A survey of the state-of-the-art and possible extensions. IEEE Trans. on
Knowl. and Data Eng., 17: pp. 734–749.
Adomavicius, G. e Tuzhilin, A. (2008). Context-Aware Recommender Systems. In
Conference on Recommender Systems. ACM 978-1-60558-093-7/08/10, pp.335-336.
Alsmadi, M. K. S., Omar, K B. e Shahrul, A. N. (2009). Back propagation algorithm:
The best algorithm the multi-layer perceptron algorithm. IJCSNS International
Journal of Computer Science and Network Security, v.9, n.4: pp. 378–383.
An, S.-H., Lee, B.-H. e Shin, D.-R. (2011). A Survey of Intelligent Transportation
Systems. In 3th International Conference on Communication Systems and Networks
(CICSyN), Indonesia, pp. 332-337.
Araújo, R. B. (2003). “Computação Ubíqua: Princípios, Tecnologias e Desafios”. In
XXI Simpósio Brasileiro de Redes de Computadores, Natal, Brasil, pp. 45-115.
Aroyo, L., Bellekens, P., Bjorkman, M., Houben, G. J., Akkermans, P. e Kaptein, A.
(2007). Sensee Framework for Personalized Access to TV Content. In Interactive
TV: A Shared Experience, Amsterdam, Holanda, pp.156-165. Springer. Heidelberg.
Baltrunas, L. (2008). Exploiting Contextual Information in Recommender Systems. In
ACM Conference on Recommender Systems, pp. 295-298.
Baltrunas, L. (2011). “Context-Aware Collaborative Filtering Recommender Systems”.
172 f. Tese (Phd. em Ciências da Computação), Universidade de Bolzano. Bolzano,
Itália.
Bastos, R. e Jaques, P. (2010). Antares: Um sistema web de consulta de rotas de ônibus
como serviço público. Revista Brasileira de Computação Aplicada, vol. 2, pp. 41-56.
Bazire, M. e Brezillon, P. (2005). “Understanding Context Before Using It”. In 5th
International and Interdisciplinary Conference, CONTEXT-05, p.29-40.
Bertolotto, M., O’Hare, G., Strahan, R., Brophy, A., Martin, A. e McLoughlin, E.
(2002). Bus catcher: a context sensitive prototype system for public transportation
83
users. In Proc. 2th International Workshop on Web and Wireless Geographical
Information Systems (W2GIS), Singapore, pp. 64-72.
Blanco-Fernandez, Y., Pazos-Arias, J. J., Gil-Solla, A., Ramos-Cabrer, M. e Lopes-
Nores, M. (2006). AVATAR: An Improved Solution for Personalized TV based on
Semantic Inference. In IEEE Transactions on Consumer Electronics, v.52, n.1, pp.
223-231.
Blanco-Fernandez, Y. (2007). “Propuesta Metodológica para el Razonamento
Semántico en Sistemas de Recomendación Personalizada y Automática”. Aplicación
Al Caso de Contenidos Audiovisuales. 320f. Tese (Doutorado) - Departamento de
Enxeneria Telemática E.T.S.E. de Telecomunicación, Universidade de Vigo.
Blanco-Fernandez, Y., Lopes-Nores, M., Pazos-Arias, J. J., Gil-Solla, A. e Ramos-
Cabrer, M. (2010). Exploiting Digital TV User’s Preferences in a Tourism
Recommender System base don Semantic Reasoning. In IEEE Transactions on
Consumer Electronics, v.56, n.2, pp. 904-911.
Bifet, A., Holmes, G., Pfahringer, B., Kranen, P., Kremer, H., Jansen T. e Seidl, T.
(2010). MOA: Massive Online Analysis, a Framework for Stream Classifiation and
Clustering. In Journal of Machine Learning Research - Proceedings Track, 11 pp.
44-50.
Brézillon, P. (1999). Context in Artificial Intelligence: IA Survey of the Literature.
Computer & Artificial Intelligence 18, pp. 321-340.
Brown, P. J. (1995). The Stick-e Document: A Framework for Creating Context-Aware
Applications. Laxenburg, Austria, pp. 259-272.
Brown, P. J., Bovey, J. D. e Chen, X. (1997). Context-aware Applications: From the
Laboratory to the Marketplace. IEEE Personal Communications 4 (5), pp. 58-64.
Burke, R. (2002). Hybrid Recommender Systems: Survey and Experiments. User
Modelling and User-Adapted Interaction, pp. 331-370.
Caulfield, B. e O’Mahony, M. (2007). An examination of the public transport
information requirements of users. Intelligent Transportation Systems, IEEE
Transactions, vol.8, no.1, pp. 21-30.
84
Chen, H. (2003). An Intelligent Broker for Context-Aware Systems. Baltimore County,
University of Maryland.
Cheng, J. e Greiner, R. (2001). Learning Bayesian Belief Network Classifiers:
Algorithms and System. In 14th Biennial Conference of the Canadian Society for
Computational Studies of Intelligence, v.2056, pp.141-151.
Chorianopoulos, K. (2008). Personalized and mobile digital TV applications.
Multimedia Tools and Applications. In Kluwer Academic Publishers, v.35, n.2, pp. 1-
10.
Coffey, C., Pozdnoukhov, A. e Calabrese, F. (2011). Time of arrival predictability
horizons for public bus routes. In 4th ACM SIGSPATIAL International Workshop on
Computational Transportation Science, CTS, New York, USA, pp. 1-5.
Cotter, P. e Smyth, B. (2000). PTV: Intelligent Personalized TV Guides. In 12th
Innovative Applications of Artificial Intelligence Conference. Austin, Texas, USA,
pp. 957-964.
Cutolo, F. A. (2003). Diretrizes para sistema de informação ao usuário. In 3th
Seminário Internacional PROMOTEO, Porto Alegre, RS, Brasil, 2003.
Dey, A. K. e Abowd, G. D. (2001). A Conceptual Framework and a Toolkit for
Supporting the Rapid Prototyping of Context-Aware Applications. In Human-
Computer Interaction (HCI) Journal, 16 (2-4), pp. 97-166.
Dourish, P. (2004). What We Talk about When We Talk about Context. Personal and
Ubiquitous Computing 8 (1), pp. 19-30.
Ferris, B., Watkins, K. e Borning, A. (2009). “Onebusaway: A Transit Traveller
Information System,” in Mobicase 2009. San Diego, USA, pp. 92–106.
Ferris, B., Watkins, K. e Borning, A. (2010) .Location-Aware Tools for Improving
Public Transit Usability. IEEE Pervasive Computing, v. 9 n. 1, pp.13-19.
Figueiredo, L. M. B. (2005). “Sistemas Inteligentes de Transporte”. 277 f. Tese
(Doutorado em Engenharia Electrotécnica e de Computadores) - Departamento de
Engenharia Electrotécnica e de Computadores, Universidade do Porto, Portugal.
85
Franklin, D. e Flaschbart, J. (1998). All Gadget and no Representation Makes Jack a
Dull Environment. Spring Symposium on Intelligent Environments. Menlo Park, CA,
pp. 155-160.
Friedman, D. G. (1997). Machine Learning 29, pp. 131-163.
Gartner. (2011) “Gartner Says Sales of Mobile Devices in Second Quarter of 2011
Grew 16.5 Percent Year-on-Year”; Smartphone Sales Grew 74 Percent, 2011.
Disponível em: <http://www.gartner.com/it/page.jsp?id=1764714>. Acessado em:
Dezembro/2012.
Ghosh, S. e Lee, T. S. (2010). “Intelligent Transportation Systems: Smart and Green
Infrastructure Design”. [Book Review].
Goldberg, E. D. (1989). Genetic Algorithms in Search, Optimization and Machine
Learning. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1st
edition.
Goldberg, D., Nichols, D., Oki B. M. e Terry, D. (1992). Using Collaborative Filtering
to Weave an Information Tapestry. In Communications of The ACM, v.35, n.12.
Gómez, A., Diaz, G. e Bousetta, K. (2009). ITS Forecast: GIS Integration with Active
Sensory System. In Information Infrastructure Symposium, GlJS'09, pp. 1-6.
Goularte, R. (2003). “Personalização e adaptação de conteúdo baseadas em contexto
para TV Interativa”. 262 f. Tese (Doutorado) - Instituto de Ciências Matemáticas e
de Computação, Universidade de São Paulo, São Carlos, Brasil.
Han, J. e Kamber, M. (2006). “Data Mining: Concepts and Techniques”. Elsevier.
Herlocker, J. L., Konstan, J. A., Terveen, L. G. e Riedl, J. T. (2004). Evaluating
Collaborative Filtering Recommender Systems. In ACM Transactions on Information
Systems, v.22, n.1, p.5-53.
Hoar, R. (2010). A personalized web based public transit information system with user
feedback. In 13th International IEEE Conference on Intelligent Transportation
Systems (ITSC), Ilha da Madeira, Portugal, pp. 1807-1812.
Ingargiola, G. (1996). Building Classification Models: ID3 and C4.5. Disponível em:
http://www.cis.temple.edu/~ingargio/cis587/readings/id3-c45.html> Acesso em 07
ago. 2012.
86
IPEA. (2011). “Sistema de Indicadores de Percepsão Social”. Mobilidade Urbana.
Kitchenham, B. A. (2007). “Guidelines for Performing Systematic Literature Reviews
in Software Engineering”. Technical report, EBSE-2007-001, UK.
Kumar, S., Vanajakshi, L. e Subramanian, S. (2011). A model based approach to predict
stream travel time using public transit as probes. In Intelligent Vehicles Symposium
(IV), Baden-Baden, Alemanha, pp. 101-106.
Li, J.-q., Zhou, K., Zhang, L. e Zhang, W. B. (2010). “A Multimodal Trip Planning
System Incorporating the Park-and-Ride Mode and Real-time Traffic / Transit
Information”. Design, pp. 1–9.
Lima, V., Magalhães, F., Tito, A. O., Santos, R., Ristar, A., Santos, L., Vieira, V. e
Salgado, A. C. (2012). UbibusRoute : Um Sistema de Identificação e Sugestão de
Rotas de Ônibus Baseado em Informações de Redes Sociais. In 8th Simpósio
Brasileiro de Sistemas de Informação, São Paulo, Brasil. pp. 516-527.
Mcculloch, W. S. e Pitts, W. (1943). A Logical Calculus of the Ideas Immanent in
Nervous Activity. Bulletin of Mathematical Biophysics, n.5, p.115-133.
Mitchell, T. (1997). Machine Learning. New York: McGraw-Hill.
Osório, F. S. e Vieira, R. (1999). Sistemas Híbridos Inteligentes. In ENIA’99 –
Encontro Nacional de Inteligência Artificial (Tutorial). Congresso da SBC’99. Rio
de Janeiro, Brasil.
Pilon, J. A. (2009). “Sistema de Informação ao Usuário do Transporte Coletivo por
Ônibus na Cidade de Vitória-ES”. 125 f. Dissertação (Pós-Graduação em Engenharia
de Produção) - Universidade Tecnológica Federal do Paraná – Ponta Grossa-PR.
Quinlan, R. (1993). “C4.5: Programs for Machine Learning”, Morgan Kaufmann
Publishers, San Mateo, USA.
Reategui, E. B. e Cazella, S. C. (2005). “Sistemas de Recomendação”, Unisinos – São
Leopoldo /RS.
Resnick, P. e Varian, H. R. (1997). Recommender Systems. Communications of the
ACM, New York, v.40, n.3, pp. 55-58.
Schein, A. L. (2003). “Sistema de Informação ao usuário como estratégia de fidelização
e atração”. 148 f. Dissertação (Mestre em Engenharia de Produção) - Departamento
87
de Engenharia de Produção, Universidade Federal do Rio Grande do Sul, Porto
Alegre -RS.
Schilit, B., Adams, N. e Want, R. (1994). Context-Aware Computing Applications.
International Workshop on Mobile Computing Systems and Applications. pp. 85-90.
Sommverville, I. (2007). Engenharia de Software. 8. Ed. São Paulo: Addison-Wesley.
Silva, D. M. (2000). “Sistemas Inteligentes no transporte público por ônibus”. 143 f.
Dissertação (Mestre em Engenharia de Produção) - Departamento de Engenharia de
Produção, Universidade Federal do Rio Grande do Sul, Porto Alegre, Rio Grande do
Sul, Brasil.
Silva, F. S. (2011). “Personaltvware: Uma Infraestrutura de Suporte a Sistemas De
Recomendação Sensíveis ao Contexto para Tv Digital Personalizada”. 207f. Tese
(Doutorado em Engenharia de Computação) - Departamento de Engenharia de
Computação e Sistemas Digitais, Escola Politécnica da Universidade de São Paulo,
São Paulo, Brasil.
Sussman, J. (2005). Perspectives on Intelligent Transportation Systems. New York,
USA: Springer.
Thomas, D. (2001). Expanding Infrastructure: the ITS option. In 20 th South African
Transport Conference - Meeting the Transport Challengesin Southern Africa,
Pretoria. África do Sul, pp. 1-12.
Tito, A. O., Borgiani, F. S. M., Santos, R., Tedesco, P. e Salgado, A. C. (2012).
Contextual Information in User information Systems in Public Transportation: A
Systematic Review. In 15th IEEE Intelligent Transportation Systems Conference
(ITSC 2012), Alaska, USA. pp. 361-366.
Tumas, G. e Ricci, F. (2009). Personalized mobile city transport advisory system. In
Information and Communication Technologies in Tourism 2009, Amsterdam,
Holanda, pp. 173-183.
Vieira, V. (2008) “CEManTIKA: A Domain-Independent Framework for Designing
Context-Sensitive Systems”. 2008. 175 f. D.Sc. Tese (Doutorado em Ciência da
Computação) – Centro de Informática, Universidade Federal de Pernambuco, Recife,
Brasil.
88
Vieira, V., Tedesco, P. e Salgado, A. C. (2009). Modelos e Processos para o
Desenvolvimento de Sistemas Sensíveis ao Contexto. Jornadas de Atualização em
Informática (JAI'09). Porto Alegre, RS, Brasil, pp. 381-431.
Vieira, V., Caldas, L. e Salgado, A. C. (2011). Towards an Ubiquitous and Context
Sensitive Public Transportation System. In 4th International Conference on Ubi-
media Computing, São Paulo, SP, Brasil.
Vozalis, E. e Margaritis, K. G. (2003). Analysis of Recommender Systems Algorithms.
In 6th Hellenic European Conference on Computer Mathematics-HERCMA, Athens,
Greece, pp.732-745.
Waikato (2010). Weka 3 – Machine Learning Software in Java. Disponível no site da
University of Waikato. URL: http://www.cs.waikato.ac.nz/ml/weka.
Ward, A., Jones, A. e Hopper, A. (1997). A New Location Technique for the Active
Office. IEEE Personal Communications 4 (5), pp. 42-47.
Weigang, L., Yamashita, Y., Silva, O. Q., XiJun, D., Prazeres, M. e Oliveira, D. (2001).
Implementação do Sistema de Mapeamento de uma Linha de Ônibus para um
Sistema de Transporte Inteligente. Anais do XXI Congresso da Sociedade Brasileira
de Computação, Seminário Integrado de Software e Hardware (SEMISH), Fortaleza,
Brasil, pp. 72-85.
Weiser, M. (1991). “The Computer for the 21st Century”. Scientific American, v.265,
n.3, p.94-104, reprinted In IEEE Pervasive Computing, Jan-Mar. 2002, p.19-25.
Yu, Z e Zhou, X. (2004). TV3P: an adaptive assistant for personalized TV. In IEEE
Transactions on Consumer Electronics, v.50, Issue 1, 2004, pp.393-399.
Zavergiu, R. (1996). Intelligent Transportation Systems – An Approach to Benefit-Cost
Studies. St. Lambert, Canada: Transportation Development Centre – Transport
Canada.
Zhang, J., Wang, F., Wang, K., Lin, W., Xu, X. e Chen, C. (2011). Data-Driven
Intelligent Transportation Systems: A Survey. IEEE Transactions on Intelligent
Transportation Systems, pp. 1624-1639.
89
Ziesemer, A. C. A. e Oliveira, J. B. S. (2011). How to Know What Do You Want? A
Survey of Recommender Systems and the Next Generation. In VIII Simpósio
Brasileiro de Sistemas Colaborativos, Paraty, Rio de Janeiro, Brasil.
Zimmermann, A., Lorenz, A. e Oppermann, R. (2007). An Operational Definition of
Context. In Proc. of the 6th International and Interdisciplinary Conference on
Modeling and Using Context, pp. 558-571, Roskilde, Denmark.
90
Apêndice A
Descrição dos Casos de Uso
Caso de Uso: 01 Manter Perfil
Ator Usuário.
Descrição
O usuário pode (Criar, Alterar ou Excluir) um perfil no aplicativo RecRoute. No ato de criação informações como: nome, login, senha, e-mail, data de cadastro, data de último acesso, deficiência (caso possua) e preferências do usuário, tais como: distância que gostaria de percorrer a pé, sua preferência por troca de ônibus, o tipo de busca preferencial de sua rota (rota mais rápida, rota mais barata, ou rota com menor distância a ser percorrida) e o tempo que gostaria de esperar na parada são requeridas pela aplicação. Estas informações serão persistidas na base de dados. Para todas as ações, mensagens e alertas devem guiar o usuário em suas ações. No ato de exclusão as informações do usuário serão excluídas da base de dados.
Evento iniciador Por meio da interface do sistema de recomendação o usuário cria seu perfil.
Pré-condições Ter acessado o aplicativo.
Pós-condições Ter a ação escolhida realizada em seu perfil.
Extensões Não há extensões.
Inclusões Não há inclusões.
Caso de Uso: 02 Realizar Login
Ator Usuário.
Descrição O usuário realiza login na aplicação.
Evento iniciador Por meio da interface do sistema de recomendação o usuário realiza login.
Pré-condições Ter perfil criado no RecRoute.
Pós-condições Estar devidamente identificado pela aplicação.
91
Extensões Não há extensões.
Inclusões Caso de uso 12.
Caso de Uso: 03 Ajustar Parâmetros de Consulta
Ator Usuário.
Descrição
O usuário pode ajustar os parâmetros de consulta para determinada requisição de rotas. Ao realizar esta ação o aplicativo RecRoute irá considerar os novos parâmetros passados apenas para a próxima requisição. Logo após o aplicativo voltará a considerar as informações do usuário salvas no banco de dados
Evento iniciador Por meio da interface do sistema de recomendação o usuário ajusta os parâmetros de consulta.
Pré-condições Ter acessado o aplicativo.
Pós-condições Parâmetros de consulta estabelecidos.
Extensões Não há extensões.
Inclusões Caso de uso 12.
Caso de Uso: 04 Escolher Pontos de Origem e Destino
Ator Usuário.
Descrição O usuário escolhe o ponto de origem e destino, estes pontos podem ser pontos de parada de ônibus ou pontos de interesse para o usuário, como por exemplo: Universidade Federal da Paraíba.
Evento iniciador Por meio da interface do sistema de recomendação o usuário escolhe os pontos de origem e destino.
Pré-condições Ter acessado o aplicativo e estar com suas informações armazenas no banco de dados ou estabelecidas nos parâmetros de consulta.
Pós-condições Pontos de origem e destino escolhidos.
Extensões Não há extensões.
Inclusões Não há inclusões.
92
Caso de Uso: 05 Buscar Rotas
Ator Usuário.
Descrição O usuário requisita ao sistema as rotas mais adequadas aos seus interesses. As rotas devem ser ordenadas e exibidas em ordem de importância para o usuário.
Evento iniciador Usuário aciona o mecanismo de “buscar rotas” contido nas interfaces do aplicativo.
Pré-condições Caso de uso 04.
Pós-condições Rotas ordenadas apresentadas ao usuário.
Extensões Não há extensões.
Inclusões Casos de uso 06, 07 e 08.
Caso de Uso: 06 Obter Rotas Iniciais
Ator Sistema.
Descrição
O sistema de recomendação requisita ao serviço gerador de rotas no Middleware do projeto Ubibus um conjunto de rotas, enriquecido de informações contextuais do trânsito, para a origem e destino fornecidos pelo usuário.
Evento iniciador Caso de uso 05.
Pré-condições Caso de uso 05.
Pós-condições Conjunto de rotas iniciais obtido do gerador de rotas.
Extensões Não há extensões.
Inclusões Não há inclusões.
Caso de Uso: 07 Obter Ambiente Climático e Temporal
Ator Sistema.
Descrição
O sistema de recomendação requisita ao serviço de informações climáticas e temporais do Middleware do projeto Ubibus o ambiente da cidade onde se encontra o usuário no momento da requisição.
Evento iniciador Caso de uso 05.
Pré-condições Caso de uso 05.
93
Pós-condições Condições climáticas sobre o momento da recomendação (ensolarado, chuvoso ou nublado) e temporais (manhã, tarde ou noite) deverão ser obtidas deste serviço.
Extensões Não há extensões.
Inclusões Não há inclusões.
Caso de Uso: 08 Classificar Rotas
Ator Sistema.
Descrição
O sistema de recomendação classifica e ordena o conjunto inicial de rotas, de acordo com as preferências do usuário, do ambiente climático e temporal e, as das características das rotas. Para isso deve ser utilizada a função construída anteriormente de acordo com os pontos de origem e destino passados pelo usuário.
Evento iniciador Caso de uso 05.
Pré-condições Casos de uso 06 e 07.
Pós-condições Rotas classificadas e ordenadas retornadas ao usuário.
Extensões Não há extensões.
Inclusões Caso de uso 09.
Caso de Uso: 09 Obter Função
Ator Sistema.
Descrição Obter a função gerada pelo processo de aprendizagem de acordo com os pontos de origem e destino informados pelo usuário. Esta função será utilizada para realizar a classificação das rotas.
Evento iniciador Caso de uso 08.
Pré-condições Caso de uso 08.
Pós-condições Função para a origem e destino obtida.
Extensões Não há extensões.
Inclusões Não há inclusões.
94
Caso de Uso: 10 Escolher Rota
Ator Usuário.
Descrição O usuário visualiza as rotas retornadas pelo sistema de recomendação e escolhe a rota mais adequada as suas preferências e necessidades.
Evento iniciador
Após visualizar as rotas exibidas pelo sistema de recomendação o usuário escolhe a melhor rota para suas necessidades acionando o mecanismo de “escolher rota”, constante das interfaces do aplicativo.
Pré-condições Caso de uso 08.
Pós-condições Rota escolhida pelo usuário.
Extensões Não há extensões.
Inclusões Caso de uso 11.
Caso de Uso: 11 Atualizar Função
Ator Sistema.
Descrição O sistema de recomendação gera registros para atualizar a função utilizada para a classificação das rotas. A atualização deve ter como referência a origem e destino informados pelo usuário.
Evento iniciador Caso de uso 10.
Pré-condições Caso de uso 10.
Pós-condições Função atualizada para a origem e destino informados pelo usuário.
Extensões Não há extensões.
Inclusões Não há inclusões.
Caso de Uso: 12 Obter Preferências do Usuário
Ator Sistema.
Descrição
O sistema de recomendação obtém as preferências do usuário requisitante. Se o usuário estive logado no sistema as preferências serão recuperadas do perfil do usuário no banco de dados. Caso contrário estas serão passadas para a aplicação por meio dos parâmetros de consulta.
Evento iniciador Caso de uso 02 e 03.
95
Pré-condições Caso de uso 02 ou 03.
Pós-condições Preferências do usuário obtidas.
Extensões Não há extensões.
Inclusões Não há inclusões.
96
Apêndice B
Questionário de Pesquisa sobre Relevância de Preferências
O projeto de pesquisa Ubibus do CIn/UFPE está desenvolvendo um aplicativo para
auxiliar no planejamento de rotas de ônibus nas grandes cidades. O aplicativo permitirá
a escolha de linhas de ônibus de acordo com preferências específicas do usuário, como
uma linha que gaste menos tempo, ou se será necessário fazer uma troca de uma linha
para outra.
Gostaríamos de saber a sua opinião a respeito da relevância dessas preferências para um
aplicativo de planejamento de rotas. Para cada preferência, haverá uma nota de 1 a 3 a
ser preenchida, onde 1 representa “pouco importante”, 2 representa "importância média"
e 3 representa “muito importante”.
*Obrigatório
Preferir uma linha de ônibus que tenha a menor distância *
1 -
2 -
3 -
Preferir uma linha de ônibus cuja passagem custe menos *
1 -
2 -
3 -
Preferir uma linha de ônibus que gaste menos tempo *
1 -
2 -
3 -
Preferir não fazer troca de uma linha para outra linha de ônibus *
97
Qual o grau de importância de fazer ou não fazer trocar de ônibus durante o
deslocamento até seu destino?
1 -
2 -
3 -
A partir de uma distância previamente definida pelo usuário, preferir andar abaixo deste
valor até seu destino (Percurso percorrido a pé) *
Ex: Definido 200 metros de distância máxima que eu quero percorrer a pé. Qual a
importância de percorrer uma distância menor ou igual a definida?
1 -
2 -
3 -
Você possui alguma(s) outra(s) sugestão(ões) de preferência que possa(m) ser levada(s)
em consideração ao escolher uma rota de ônibus? Qual/Quais?
98
Apêndice C
Preferências dos Participantes do Experimento
Cenário Experimental 1
Lista de Participantes
Preferências dos Participantes
Deficiência do Participante
Preferência de distância a pé (m)
Preferência por troca de ônibus
Tipo de busca da rota
Preferência por tempo de espera na parada (min)
Participante 01 Nenhuma 10 Não Tempo 20
Participante 02 Nenhuma 100 Não Tempo 10
Participante 03 Nenhuma 100 Sim Tempo 15
Participante 04 Nenhuma 300 Sim Tempo 10
Participante 05 Nenhuma 10 Não Tempo 2
Participante 06 Nenhuma 300 Não Tempo 15
Participante 07 Nenhuma 100 Não Tempo 10
Participante 08 Nenhuma 250 Não Tempo 20
Participante 09 Nenhuma 100 Sim Tempo 10
Participante 10 Nenhuma 0 Não Tempo 5
Participante 11 Nenhuma 500 Não Tempo 15
Participante 12 Nenhuma 15 Não Tempo 10
Participante 13 Auditiva 100 Não Tempo 20
Participante 14 Visual 0 Não Distância 20
Participante 15 Cadeirante 5 Não Tempo 10
Participante 16 Cadeirante 10 Não Distância 20
Participante 17 Nenhuma 200 Sim Distância 15
Participante 18 Nenhuma 200 Não Tempo 30
Participante 19 Nenhuma 250 Não Tempo 10
Participante 20 Nenhuma 1000 Não Tempo 30
99
Cenário Experimental 2
Lista de Participantes
Preferências dos Participantes
Deficiência do Participante
Preferência de distância a pé (m)
Preferência por troca de ônibus
Tipo de busca da rota
Preferência por tempo de espera na parada (min)
Participante 01 Nenhuma 10 Não Tempo 5
Participante 02 Nenhuma 60 Não Tempo 10
Participante 03 Nenhuma 50 Não Tempo 10
Participante 04 Nenhuma 50 Sim Distância 20
Participante 05 Nenhuma 0 Não Distância 20
Participante 06 Nenhuma 300 Não Tempo 15
Participante 07 Nenhuma 10 Não Tempo 2
Participante 08 Nenhuma 0 Não Tempo 5
Participante 09 Nenhuma 10 Não Tempo 30
Participante 10 Nenhuma 0 Não Distância 5
Participante 11 Nenhuma 200 Não Tempo 15
Participante 12 Nenhuma 20 Não Tempo 5
Participante 13 Auditiva 100 Não Tempo 10
Participante 14 Visual 0 Não Distância 20
Participante 15 Cadeirante 5 Não Distância 20
Participante 16 Cadeirante 5 Não Distância 25
Participante 17 Nenhuma 250 Não Tempo 10
Participante 18 Nenhuma 20 Não Tempo 15
Participante 19 Nenhuma 100 Não Distância 10
Participante 20 Nenhuma 250 Não Distância 20