RecRoute: UM SISTEMA DE RECOMENDAÇÃO DE ROTAS DE ÔNIBUS BASEADO EM INFORMAÇÕES CONTEXTUAIS DOS USUÁRIOS

Tamanho: px
Começar a partir da página:

Download "RecRoute: UM SISTEMA DE RECOMENDAÇÃO DE ROTAS DE ÔNIBUS BASEADO EM INFORMAÇÕES CONTEXTUAIS DOS USUÁRIOS"

Transcrição

1 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 RECIFE, AGOSTO / 2013

2 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

3 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, 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, 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.) MEI

4 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 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.

5 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. iii

6 "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á) iv

7 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. v

8 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. vi

9 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. vii

10 Lista de Ilustrações Figura Categorias dos Sistemas Inteligentes de Transporte Quadro Funções dos Sistemas de Informação ao Usuário Figura 2.2 Categorias Fundamentais para as Informações Contextuais Figura Visão da Aplicação Tradicional e uma Aplicação Sensível ao Contexto Figura 2.4 Rede Neural Artificial Perceptron Multicamadas Figura 3.1 Informações Contextuais Utilizadas Figura 3.2 Obtenção de Informações Contextuais Figura 3.3 Informações Providas pelos SIU Figura 3.4 Sistema OneBusAway Figura 3.5 Indicação de Rotas no Sistema Bus Catcher Figura 3.6 Exibição de rotas do Sistema de Informação ao Usuário Figura 3.7 Sistema PECITAS Figura 3.8 Requisição de Rota no Google Transit Figura 3.9 Trajetos Sugeridos pelo Google Transit Figura 3.10 Indicação de Rotas do Sistema ANTARES Figura 3.11 Recomendação de Rotas do Sistema UbibusRoute Figura 4.1 Arquitetura do Projeto Ubibus Figura 4.2 Diagrama de Casos de Uso Figura 4.3 Relevância das Preferências dos Usuários Figura 4.4 Modelagem das Informações Contextuais Figura 4.5 Arquitetura do RecRoute Figura 4.6 Demonstração da Formação da Função para Classificação das Rotas Figura 4.7 Estrutura de Armazenamento da Função para Classificação Quadro 4.1 Pseudo-Código para a Realimentação de Relevância Figura 4.8 Agrupamento das Rotas para Classificação Quadro 4.2 Pseudo-Código da Classificação das Rotas Figura 4.9 Extrato do Modelo Relacional do Banco de Dados do Projeto Ubibus Figura 4.10 Principais Classes do RecRoute Figura 4.11 Diagrama de Sequência das Atividades do RecRoute Figura 4.12 Exemplos da Interface Móvel do RecRoute Figura 4.13 Exemplo da Interface Web do RecRoute Figura 5.1 Ilustração de um Registro do Arquivo ARFF Figura 5.2 Acertos nas Recomendações de Rotas x Cenários Experimentais viii

11 Lista de Tabelas Tabela Benefícios com a Utilização dos ITS... 9 Tabela 3.1 Comparativo entre os Trabalhos Relacionados Tabela 4.1 Comparativo entre os Sistemas e o RecRoute Tabela 5.1 Resultados da Comparação de Algoritmos Tabela 5.2 Rotas do Cenário Experimental Tabela 5.3 Rotas do Cenário Experimental ix

12 Lista de Acrônimos IPEA TIC APTS SIU ITS IVHS CLIOS ATMS ATIS AVCS CVO ARTS ETC IHC CE SR RI CARS MLP UFPE Instituto de Pesquisa Econômica Aplicada Tecnologia de Informação e Comunicação Advanced Public Transportation Systems Sistemas de Informação ao Usuário Intelligent Transportation Systems Vehicle-Highway Systems Complex, large, integrated open systems Advanced Traffic Management Systems Advanced Traveller Information Systems Advanced Vehicle Control Systems Commercial Vehicle Operations Advanced Rural Transportation Systems Electronic Toll Collection Interação Humano Computador Contextual Element Sistemas de Recomendação Recuperação de Informações Context-Aware Recommender Systems Multilayer Perceptron Universidade Federal de Pernambuco x

13 Sumário 1 Introdução Justificativa Objetivos Contribuições Esperadas Estrutura da Dissertação Conceitos Básicos Sistemas Inteligentes de Transporte Categorização dos Sistemas Inteligentes de Transporte Sistemas de Informação ao Usuário Contexto Computacional Definições de Contexto Computacional Sistemas Sensíveis ao Contexto Sistemas de Recomendação Técnicas de Filtragem de Informações Sistemas de Recomendação Sensíveis ao Contexto Realimentação de Relevância em Sistemas de Recomendação Estratégias de Aprendizagem de Máquina e Predição em Sistemas de Recomendação Considerações Finais Informações Contextuais em SIU e Sistemas de Recomendação de Rotas Utilização de Contexto em Sistemas de Informação ao Usuário Sistemas de Recomendação e Exibição de Rotas de Transporte Público Considerações Finais O Sistema RecRoute O Projeto Ubibus O Aplicativo RecRoute Especificação dos Requisitos Modelagem das Informações Contextuais Arquitetura Implementação do RecRoute Considerações Finais Experimentos e Resultados Escolha do Algoritmo de Classificação Descrição do Cenário Experimental Resultados Obtidos Experimentos Objetivos do Experimento xi

14 5.2.2 Elaboração do Experimento Configuração e Execução dos Cenários Experimentais Resultados Considerações Finais Conclusão e Trabalhos Futuros Contribuições Limitações do Trabalho Trabalhos Futuros Referências Apêndice A - Descrição dos Casos de Uso Apêndice B - Questionário de Pesquisa sobre Relevância de Preferências Apêndice C - Preferências dos Participantes do Experimento xii

15 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 1

16 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 2

17 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 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. 3

18 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; 4

19 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. 5

20 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. 6

21 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 meioambiente 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. 7

22 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 8

23 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 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% Decréscimo de 41% em combustíveis usados em Consumo de Combustível congestionamentos Decréscimo de 122 Toneladas/Ano na emissão de CO 2; Poluição Decréscimo de 1,4 Toneladas/Ano na emissão de HC; Decréscimo de 1,2 Toneladas/Ano na emissão de NO 2 Esta seção teve por objetivo apresentar os principais conceitos de Sistemas Inteligentes de Transporte, que serviram de referência para o desenvolvimento deste 9

24 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 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 10

25 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 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 Categorias dos Sistemas Inteligentes de Transporte Fonte: adaptado de (Pilon, 2009) 11

26 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. Promocional Ensinamento Operacional Moderação Quadro Funções dos Sistemas de Informação ao Usuário Fonte: (Silva, 2000) 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. Entendimento: informar como utilizar o transporte público; Adequabilidade: divulgar as regras envolvidas no uso dos sistemas. 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. 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, 12

27 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. 13

28 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 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 14

29 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; 15

30 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 16

31 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) 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 17

32 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 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 18

33 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. 19

34 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. 20

35 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 21

36 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 apresentarlhe 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). 22

37 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 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). 23

38 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 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. 24

39 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 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. 25

40 1, 00.2, sim, 6, Padrões de Entrada Rótulo de Classe 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 26

41 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. 27

42 Assim como as árvores de decisão e as redes neurais o classificador de Naive Bayes é um dos métodos de aprendizagem de utilização mais simples, tendo se destacado em problemas em que as variáveis preditoras não são fortemente correlacionadas (Cheng e Greiner, 2001), mesmo sendo comparado com classificadores mais complexos. Segundo Han e Kamber (2006) a probabilidade de um registro representado por um vetor de atributos n-dimensional, X = (x1, x2,..., xn), pertencer a uma classe particular Ci é dada por: Redes Neurais 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), altamentee 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 uma 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 intermediárias funcionam como extratoras 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 (MLP) é uma extensão do Perceptron Simples (Mcculloch e Pitts, 1943), capaz de trabalhar com problemas não-linearmente 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 determinada. A 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 camada de saída, que realiza cálculos necessários para construir um padrão que será a resposta. A Figura 2.4 ilustra a combinação de vários neurônios artificiais em um Perceptron Multicamadas. 28

43 2.4 Considerações Finais Figura 2.4 Rede Neural Artificial Perceptron Multicamadas Fonte: (Silva, 2011) 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. 29

44 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? 30

45 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. 31

46 90% 80% 70% 80% 80% 80% Frequência 60% 50% 40% 30% 20% 10% 20% 10% 10% 10% 20% 0% 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 Informações Contextuais 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 32

47 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. 100% 90% 90% 80% 70% 60% 60% Frequência 50% 40% 30% 20% 10% 10% 10% 10% 10% 10% 0% 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 Informações Contextuais X Fontes de Contexto 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, 33

48 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. 90% 80% 80% 70% 60% 50% Frequência 40% 30% 20% 10% 20% 20% 20% 10% 10% 10% 20% 0% Tempo Chegada dos ônibus nas Paradas Informações Dentro dos Ônibus Criação de Recomendação Notificação de Rotas Personalizadas de Rotas Próximas Paradas Informações Providas Estado do Trânsito Informações Adaptadas aos Usuários Localização dos Ônibus 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 34

49 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; 35

50 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 36

51 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. OneBusAway 1 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,

52 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 38

53 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 39

54 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 Transit 2 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

55 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 41

56 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 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 Dijkstra 3 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 < 42

57 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 OneBusAway Bus Catcher Sistema de Informações de Trânsito (Hoar, 2009) Tipo de Informações Contextuais Utilizadas Estáticas, Dinâmicas e Inferidas Estáticas e Dinâmicas Estáticas e Dinâmicas 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 Móvel, Web e SMS Não Não Sim Móvel Parcialmente Não Sim 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 43

58 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. 44

59 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). 45

60 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, 46

61 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, Twitter 4 e Facebook 5, 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

62 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. 48

63 4.2 O Aplicativo RecRoute Nesta seção, apresentamos os requisitos, a modelagem das informações contextuais, arquitetura e outros detalhes de especificação do sistema RecRoute, um aplicativo com interfaces 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. O RecRoute procura auxiliar os passageiros em seus deslocamentos realizados pelo transporte público coletivo por ônibus, oferecendo informações em tempo real Especificação dos Requisitos Segundo Sommerville (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, também são 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. A Figura 4.2 ilustra os casos de uso 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 linguagem UML 6 (Unified Model Language). Nele, podemos identificar o Usuário e o próprio sistema RecRoutee como atores que interagem com a aplicação para obter

64 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; 50

65 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 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

66 100,0% Relevância das Preferências dos Usuários Porcentagens 80,0% 60,0% 40,0% 20,0% 0,0% Menor distância Menor tempo Menor preço Troca de ônibus Percurso a pé Pouco Importante Média Importância Muito Importante 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 espera na parada foi sugerido por 60% dos respondentes como informação contextual a ser considerada durante as recomendações. Após a análise do questionário aplicado, pudemos modelar de forma mais precisa as informações contextuais das preferências dos usuários e de outras entidades que fazem parte do cenário de atuação do RecRoute. A Figura 4.4 apresenta o modelo de informações contextuais utilizado pelo aplicativo RecRoute, destacando as Entidades Contextuais e seus respectivos Elementos Contextuais. Figura 4.4 Modelagem das Informações Contextuais 52

67 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). 53

68 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 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 54

69 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. 55

70 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. 56

71 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 57

72 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 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 58

73 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. 59

74 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 Senão 18 ConjRotasAux[J].pontuacao ConjRotasAux[J].pontuacao Fim Se 20 Fim Se 21 J J Fim Para 23 I I 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 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 60

75 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) PostgreSQL 7 com extensão PostGIS 8, por se tratar de um SGBD de domínio público, gratuito e com larga confiabilidade na manipulação de dados geográficos

76 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 Places 9. 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

77 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 momentoo 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 Ao receber a requisição das Interfaces do aplicativo com os pontos de origem e destino, preferências e localização do usuário o Gerenciador de Recomendações aciona o Gerenciador de Contexto, a fim de colher as informações contextuais necessárias para a recomendação. O primeiro serviço a ser acessado pelo Gerenciador de Contextoo é o Serviço de Informações Climáticas e Temporais, localizado no Middleware do Ubibus, a fim de obter as condições em que o usuário está realizando a requisição. 63

78 Figura 4.11 Diagrama de Sequência das Atividades do RecRoute 64

79 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. 65

80 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 Android 10, em Java 11. Já a Interface Web foi desenvolvida utilizando HTML 12 e JavaScript 13, ambas usando alguns recursos da API do Google Maps. As Figuras 4.12 e 4.13, mostram as Interfaces desenvolvidas para o aplicativo RecRoute

81 Figura 4.12 Exemplos da Interface Móvel do RecRoute Figura 4.13 Exemplo da Interface Web do RecRoute 67

MOBILIDADE E SISTEMAS DE TRANSPORTES TECNOLOGIAS PARA MONITORAMENTO E CONTROLE DE TRANSPORTES. Prof. Dr. Daniel Caetano

MOBILIDADE E SISTEMAS DE TRANSPORTES TECNOLOGIAS PARA MONITORAMENTO E CONTROLE DE TRANSPORTES. Prof. Dr. Daniel Caetano MOBILIDADE E SISTEMAS DE TRANSPORTES TECNOLOGIAS PARA MONITORAMENTO E CONTROLE DE TRANSPORTES Prof. Dr. Daniel Caetano 2019-1 Objetivos Conceituar os Sistemas Inteligentes de Transporte (ITS) Conhecer

Leia mais

Banco de dados e Contexto. Carlos Victor

Banco de dados e Contexto. Carlos Victor Banco de dados e Contexto Carlos Victor cvgpb@cin.ufpe.br Agenda Contexto Banco de dados e contexto Desafios da área Referências Cenário atual da computação Cada vez mais o uso de sistemas computacionais

Leia mais

Demonstração Internacional da Plataforma de informações de tráfego e de trânsito

Demonstração Internacional da Plataforma de informações de tráfego e de trânsito Demonstração Internacional da Plataforma de informações de tráfego e de trânsito As grandes cidades e áreas metropolitanas encaram o aumento da demanda nos sistemas de transportes, especialmente nas regiões

Leia mais

Sistema embarcado de ônibus integrado

Sistema embarcado de ônibus integrado Sistema embarcado de ônibus integrado O Sistema Embarcado de Ônibus Integrado concebido pela Consilux tem por objetivo atender às demandas de melhorias contínuas na malha de transporte coletivo da cidade

Leia mais

SISTEMA PARA PREVER A CHEGADA DE ÔNIBUS NOS PONTOS DE PARADA Felipe Saraiva da Costa¹, André Castelo Branco Soares².

SISTEMA PARA PREVER A CHEGADA DE ÔNIBUS NOS PONTOS DE PARADA Felipe Saraiva da Costa¹, André Castelo Branco Soares². SISTEMA PARA PREVER A CHEGADA DE ÔNIBUS NOS PONTOS DE PARADA Felipe Saraiva da Costa¹, André Castelo Branco Soares². Resumo Visto o aumento na quantidade de veículos em circulação e dos congestionamentos

Leia mais

IF-705 Automação Inteligente Sistemas de Controle - Fundamentos

IF-705 Automação Inteligente Sistemas de Controle - Fundamentos IF-705 Automação Inteligente Sistemas de Controle - Fundamentos Aluizio Fausto Ribeiro Araújo Universidade Federal de Pernambuco Centro de Informática - CIn Departamento de Sistemas da Computação aluizioa@cin.ufpe.br

Leia mais

SIT (ITS) Sistemas Inteligentes de Transporte. Lino Figueiredo DEE ISEP GRIS

SIT (ITS) Sistemas Inteligentes de Transporte. Lino Figueiredo DEE ISEP GRIS SIT (ITS) Sistemas Inteligentes de Transporte Lino Figueiredo DEE ISEP GRIS 1 Resumo O que é ITS? Evolução Histórica Sistemas avançados de ITS Perspectivas de desenvolvimentos futuros Demonstração de sistemas

Leia mais

Introdução a Engenharia de Software

Introdução a Engenharia de Software Engenharia de Software Aula 02 Introdução a Engenharia de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@dcc.ufmg.br ou disciplina.eduardo@gmail.com 7 Março de 2018 Bibliografia

Leia mais

SISTEMAS INTELIGENTES DE TRANSPORTE APLICADOS EM SISTEMAS DE ALTA CAPACIDADE: O CASO BRT E METRÔ DA CIDADE DE BRASÍLIA

SISTEMAS INTELIGENTES DE TRANSPORTE APLICADOS EM SISTEMAS DE ALTA CAPACIDADE: O CASO BRT E METRÔ DA CIDADE DE BRASÍLIA SISTEMAS INTELIGENTES DE TRANSPORTE APLICADOS EM SISTEMAS DE ALTA CAPACIDADE: O CASO BRT E METRÔ DA CIDADE DE BRASÍLIA ALEX HERIBERTO ROJAS ALVARADO NILO FLÁVIO ROSA CAMPOS JÚNIOR PROFESSOR DR. PASTOR

Leia mais

Inteligência Artificial Agentes Inteligentes

Inteligência Artificial Agentes Inteligentes Inteligência Artificial Jarley P. Nóbrega, Dr. Faculdade Nova Roma Bacharelado em Ciência da Computação jpn@jarley.com Semestre 2018.2 Jarley P. Nóbrega, Dr. (Nova Roma) Inteligência Artificial Semestre

Leia mais

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks 48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o

Leia mais

Análise e projeto de sistemas

Análise e projeto de sistemas Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os

Leia mais

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare). 1 Introdução 1.1 Contextualização Recentemente, tem-se percebido um movimento de integração de comunidades físicas e comunidades virtuais. As pessoas utilizam cada vez mais a Internet para se comunicar

Leia mais

3.1 Reflexão Computacional

3.1 Reflexão Computacional 3 Adaptação Dinâmica Adaptação dinâmica é a capacidade de um sistema ser modificado durante sua execução para se adequar a novas necessidades. Recentemente, esse tem se tornado um tópico de pesquisa proeminente

Leia mais

EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua

EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua Universidade Católica de Pelotas Centro Politécnico Programa de Pós-Graduação em Informática EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua Luthiano Venecian, João Lopes, Adenauer

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Tópico 1 - Visão Geral da Engenharia de Software Sistemas Computacionais o Definição e conceitos básicos o Evolução do desenvolvimento Natureza do produto software Definição de Engenharia

Leia mais

Sistema de recomendação de segundo nível para suporte à produção de matérias jornalísticas

Sistema de recomendação de segundo nível para suporte à produção de matérias jornalísticas Demetrius Costa Rapello Sistema de recomendação de segundo nível para suporte à produção de matérias jornalísticas Dissertação de mestrado Dissertação apresentada como requisito parcial para a obtenção

Leia mais

MOBILIDADE E SISTEMAS DE TRANSPORTES PLANEJAMENTO DA OFERTA DE. Prof. Dr. Daniel Caetano

MOBILIDADE E SISTEMAS DE TRANSPORTES PLANEJAMENTO DA OFERTA DE. Prof. Dr. Daniel Caetano MOBILIDADE E SISTEMAS DE TRANSPORTES PLANEJAMENTO DA OFERTA DE SISTEMAS DE TRANSPORTES Prof. Dr. Daniel Caetano 2019-1 Objetivos Tomar contato com os principais conceitos de medida de qualidade da oferta

Leia mais

1. INTRODUÇÃO A MODELAGEM DE DADOS

1. INTRODUÇÃO A MODELAGEM DE DADOS 1. INTRODUÇÃO A MODELAGEM DE DADOS Para se construir uma casa ou um prédio de qualidade, é essencial fazer um planejamento detalhado, com a finalidade de pensar sobre as formas de construção, fazer estimativas

Leia mais

Gestão Logística Inteligente

Gestão Logística Inteligente Gestão Logística Inteligente O que é o Compulog? É uma solução completa de software voltada à Gestão e Operação de Processos Logísticos. Compulog é um sistema integrado e flexível Integrado porque suporte

Leia mais

UNIVERSIDADE FEDERAL DEPERNAMBUCO

UNIVERSIDADE FEDERAL DEPERNAMBUCO UNIVERSIDADE FEDERAL DEPERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Uma proposta de implementação do serviço de push notifications como Generic Enabler para a Plataforma FIWARE Proposta

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 1: Introdução e Conceitos Básicos Professora Sheila Cáceres O que é um paradigma??? Paradigmas de Linguagens - Sheila Cáceres 2 O que é um paradigma??? Paradigmas de Linguagens

Leia mais

Sistemas Especialistas (SE)

Sistemas Especialistas (SE) Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Sistemas Especialistas (SE) Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

UBIBUSANALYSIS UMA FERRAMENTA DE INTERPRETAÇÃO DE

UBIBUSANALYSIS UMA FERRAMENTA DE INTERPRETAÇÃO DE U NIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2 0 1 2. 2 UBIBUSANALYSIS UMA FERRAMENTA DE INTERPRETAÇÃO DE MENSAGENS DE TRÂNSITO COM ANÁLISE DE SENTIMENTOS

Leia mais

Sistemas de Informação e Decisão. Douglas Farias Cordeiro

Sistemas de Informação e Decisão. Douglas Farias Cordeiro Sistemas de Informação e Decisão Douglas Farias Cordeiro Decisão Tomamos decisões a todo momento! O que é uma decisão? Uma decisão consiste na escolha de um modo de agir, entre diversas alternativas possíveis,

Leia mais

1 - A capacidade de fluxo que corresponde a capacidade máxima que pode passar pelo arco.

1 - A capacidade de fluxo que corresponde a capacidade máxima que pode passar pelo arco. CONCEITOS DE REDE Uma rede é formada por um conjunto de nós, um conjunto de arcos e de parâmetros associados aos arcos. Nós Arcos Fluxo Interseções Rodovias Veículos Rodoviários Aeroportos Aerovia Aviões

Leia mais

THE SUCCESS YOU WANT. O SUCESSO QUE VOCÊ DESEJA.

THE SUCCESS YOU WANT. O SUCESSO QUE VOCÊ DESEJA. THE SUCCESS YOU WANT. O SUCESSO QUE VOCÊ DESEJA. Gerenciamento de equipamentos Produtividade Segurança Sustentabilidade COMBINANDO EQUIPAMENTOS, TECNOLOGIA E SERVIÇOS PARA AJUDAR A CONSTRUIR SEU SUCESSO.

Leia mais

SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi

SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi Material

Leia mais

3 Arquitetura MVC baseada em modelos

3 Arquitetura MVC baseada em modelos Arquitetura MVC baseada em modelos 30 3 Arquitetura MVC baseada em modelos 3.1. Visão geral Na arquitetura proposta os componentes de Controle e Visão, da arquitetura tradicional do padrão de projetos

Leia mais

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2 UNIVERSIDADE FEDERAL DE PERNAMBUCO PRÓ-REITORIA PARA ASSUNTOS DE PESQUISA E PÓS-GRADUAÇÃO ESTRUTURA CURRICULAR STRICTO SENSU (baseada na Res. 10/2008 do CCEPE) NOME DO CURSO: Pós-Graduação em Ciência da

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Criado: mar/2001 Atualizado: set/2005 Tópicos Definição de Requisitos Participantes Processo Documento de Requisitos (SRS) Evolução dos Requisitos 2 Referência I.Sommerville. Sw

Leia mais

3) Qual é o foco da Governança de TI?

3) Qual é o foco da Governança de TI? 1) O que é Governança em TI? Governança de TI é um conjunto de práticas, padrões e relacionamentos estruturados, assumidos por executivos, gestores, técnicos e usuários de TI de uma organização, com a

Leia mais

Agentes Inteligentes. Módulo 02 27/02/2013. Inteligência Artificial. Profª Hemilis Joyse

Agentes Inteligentes. Módulo 02 27/02/2013. Inteligência Artificial. Profª Hemilis Joyse Agentes Inteligentes Módulo 02 1 Agente É tudo que pode ser considerado capaz de perceber seu ambiente por meio de sensores e de agir sobre esse ambiente por intermédio de atuadores. 2 Agente Tabela parcial

Leia mais

a redução do tamanho das células (cell spliting); a utilização de antenas inteligentes, e;

a redução do tamanho das células (cell spliting); a utilização de antenas inteligentes, e; 19 1. Introdução Nas últimas décadas, a demanda por serviços de comunicação móvel celular tem crescido de forma espantosa em todo o mundo, principalmente com relação a serviços suplementares e complementares.

Leia mais

Adaptação Dinâmica desistemas Distribuídos p.1/54

Adaptação Dinâmica desistemas Distribuídos p.1/54 Adaptação Dinâmica de Sistemas Distribuídos Francisco José da Silva e Silva Orientadores: Prof. Dr. Markus Endler Prof. Dr. Fabio Kon Instituto de Matemática e Estatística da Universidade de São Paulo

Leia mais

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados Aula 1 Introdução a Banco de Dados 1. Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Engenharia de Software I 2013.2 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo

Leia mais

Computação Ubíqua Ubicomp

Computação Ubíqua Ubicomp Computação Ubíqua Ubicomp Anubis Graciela de Moraes Rossetto Doutoranda anubisrossetto@gmail.com Computação Ubíqua - Visão Visão de Weiser Computação Ubíqua - Auxiliar usuários de forma que eles mesmos

Leia mais

CENTRO PAULA SOUZA ETEC DE REGISTRO TÉCNICO EM INFORMÁTICA. Henrique Mitsuo Imanobu de Brito Guilherme Mota Andrade Messias Moisés Duarte Junior

CENTRO PAULA SOUZA ETEC DE REGISTRO TÉCNICO EM INFORMÁTICA. Henrique Mitsuo Imanobu de Brito Guilherme Mota Andrade Messias Moisés Duarte Junior CENTRO PAULA SOUZA ETEC DE REGISTRO TÉCNICO EM INFORMÁTICA Henrique Mitsuo Imanobu de Brito Guilherme Mota Andrade Messias Moisés Duarte Junior TRANSPORTE PÚBLICO PARA DEFICENTES FÍSICOS Registro 2017

Leia mais

15/03/2018. Professor Ariel da Silva Dias Introdução a Engenharia de Software. O mundo moderno poderia existir sem software?

15/03/2018. Professor Ariel da Silva Dias Introdução a Engenharia de Software. O mundo moderno poderia existir sem software? O mundo moderno poderia existir sem software? Professor Ariel da Silva Dias Introdução a Engenharia de Software 1 Software Associação de programas de computador e documentação; Atributos de um bom software

Leia mais

Engenharia Software. Ení Berbert Camilo Contaiffer

Engenharia Software. Ení Berbert Camilo Contaiffer Engenharia Software Ení Berbert Camilo Contaiffer Características do Software Software não é um elemento físico, é um elemento lógico; Software é desenvolvido ou projetado por engenharia, não manufaturado

Leia mais

A solução cloud mais eficiente para administrar as equipes de trabalho móveis

A solução cloud mais eficiente para administrar as equipes de trabalho móveis A solução cloud mais eficiente para administrar as equipes de trabalho móveis Nos próximos 4 anos, quase 70% das grandes empresas com serviços de campo, fornecerão a seus técnicos com aplicativos móveis

Leia mais

A Realidade ITS dos Membros da APCAP e os seus desafios

A Realidade ITS dos Membros da APCAP e os seus desafios A Realidade ITS dos Membros da APCAP e os seus desafios Rui Veiga rveiga@aeatlantico.pt Auto-Estradas do Atlântico Sumário A Redução da sinistralidade (Segurança), a redução do congestionamento de tráfego

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Antes de qualquer

Leia mais

2 Fundamentação Conceitual

2 Fundamentação Conceitual Fundamentação Conceitual 17 2 Fundamentação Conceitual Este capítulo apresenta os principais conceitos utilizados pelo Moratus, como o conceito de contexto local e contexto global (de grupo), o conceito

Leia mais

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO Bruno Loureiro Rezende Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós-graduação em Informática

Leia mais

Rational Unified Process (RUP)

Rational Unified Process (RUP) Rational Unified Process (RUP) A Rational é bem conhecida pelo seu investimento em orientação em objetos. A empresa foi à criadora da Unified Modeling Language (UML), assim como de várias ferramentas que

Leia mais

PLANO DE PROGRAMAÇÃO DE SEMÁFOROS ELETRÔNICOS PARA A CIDADE DE BOTUCATU

PLANO DE PROGRAMAÇÃO DE SEMÁFOROS ELETRÔNICOS PARA A CIDADE DE BOTUCATU PLANO DE PROGRAMAÇÃO DE SEMÁFOROS ELETRÔNICOS PARA A CIDADE DE BOTUCATU Bernadete Rossi Barbosa Fantin 1 1 Professora Mestre da Faculdade de Tecnologia de Botucatu FATEC, Botucatu, SP, Brasil. bfantin@fatecbt.edu.br

Leia mais

PEA5918 Redes Elétricas Inteligentes e Microrredes (Smart Grids e Microgrids)

PEA5918 Redes Elétricas Inteligentes e Microrredes (Smart Grids e Microgrids) PEA5918 Redes Elétricas Inteligentes e Microrredes (Smart Grids e Microgrids) Métodos Avançados de Controle Giovanni Manassero Junior Depto. de Engenharia de Energia e Automação Elétricas Escola Politécnica

Leia mais

Iam Vita Jabour. O Impacto de Atributos Estruturais na Identificação de Tabelas e Listas em Documentos HTML. Dissertação de Mestrado

Iam Vita Jabour. O Impacto de Atributos Estruturais na Identificação de Tabelas e Listas em Documentos HTML. Dissertação de Mestrado Iam Vita Jabour O Impacto de Atributos Estruturais na Identificação de Tabelas e Listas em Documentos HTML Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de

Leia mais

ISO/IEC Prof. Alexandre Luís Franco

ISO/IEC Prof. Alexandre Luís Franco ISO/IEC 9126 Prof. Alexandre Luís Franco ISO/IEC 9126 Contém as seguintes partes, sobre o título genérico de Engenharia de Software Qualidade do Produto Parte 1 Modelo de Qualidade Parte 2 Métricas Externas

Leia mais

Supply Chain. Inspiring consumer goods sector by everis

Supply Chain. Inspiring consumer goods sector by everis Supply Chain Inspiring consumer goods sector by everis Cadeia de suprimentos (CS): Somos capazes de fornecer serviços e soluções importantes em todas as etapas do ciclo de vida de um produto. Para melhorarmos

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Marcelle Mussalli Cordeiro {mmussalli@gmail.com} Cordeiro Reflexão O que é software?? Cordeiro 2 O que é Software? Programa Dados de configuração Dados de documentação Tudo que esteja

Leia mais

Ciclo de vida do projeto x do

Ciclo de vida do projeto x do Gestão de Projeto Material Preparado pelo Prof. William Chaves de Souza Carvalho Ciclo de vida do projeto x do produto Ciclo de vida do produto Plano de Negócio Projeto Operações Retirada Ciclo de vida

Leia mais

COMUNICAÇÕES TÉCNICAS 21º CONGRESSO BRASILEIRO DE TRANSPORTE E TRÂNSITO SÃO PAULO 28, 29 E 30 DE JUNHO DE 2017

COMUNICAÇÕES TÉCNICAS 21º CONGRESSO BRASILEIRO DE TRANSPORTE E TRÂNSITO SÃO PAULO 28, 29 E 30 DE JUNHO DE 2017 COMUNICAÇÕES TÉCNICAS 21º CONGRESSO BRASILEIRO DE TRANSPORTE E TRÂNSITO SÃO PAULO 28, 29 E 30 DE JUNHO DE 2017 A ANTP convida a todos os integrantes das entidades associadas, seus membros individuais e

Leia mais

POLÍTICA DE PRIVACIDADE

POLÍTICA DE PRIVACIDADE POLÍTICA DE PRIVACIDADE A Sascar, empresa do grupo Michelin, construiu o aplicativo Sascar como um aplicativo comercial. Esse SERVIÇO é providenciado pela Sascar e é usado com esta pretensão. Essa página

Leia mais

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações Sistema (SI) Coleção de atividades de Banco de Dados que regulam o compartilhamento, SI nas Organizações a distribuição de informações Fernando Fonseca e o armazenamento de dados relevantes ao gerenciamento

Leia mais

1.1. Objetivos do Estudo

1.1. Objetivos do Estudo 12 1. Introdução A utilização de sistemas de informação nas organizações tem auxiliado as empresas no mercado competitivo dos dias atuais, na medida em que, facilitando o trabalho diário com a automatização

Leia mais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas

Leia mais

APRESENTAÇÃO MONITRIIP

APRESENTAÇÃO MONITRIIP APRESENTAÇÃO MONITRIIP REGULARIZAÇÃO MONITRIIP ANTT REGULAMENTA O SISTEMA DE MONITORAMENTO DE TRANSPORTE RODOVIÁRIO DE PASSAGEIROS A Agência Nacional de Transportes Terrestres (ANTT) publicou a Resolução

Leia mais

DRE Gerencial. Como utilizar o Demonstrativo de Resultados do Exercício para diagnosticar a saúde financeira da empresa

DRE Gerencial. Como utilizar o Demonstrativo de Resultados do Exercício para diagnosticar a saúde financeira da empresa DRE Gerencial Como utilizar o Demonstrativo de Resultados do Exercício para diagnosticar a saúde financeira da empresa Introdução INTRODUÇÃO O DRE Gerencial é um tipo de relatório indispensável para os

Leia mais

Computação Ciente de Contexto

Computação Ciente de Contexto Computação Ciente de Contexto O que (não) é contexto e perspectivas futuras para smartphones Andrew Toshiaki Nakayama Kurauchi kurauchi@ime.usp.br 1 Tópicos 2 Tópicos Introdução 2 Tópicos Introdução O

Leia mais

O que é um sistema distribuído?

O que é um sistema distribuído? Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores

Leia mais

Marque a opção do tipo de trabalho que está inscrevendo: ( x ) Resumo ( ) Relato de Caso

Marque a opção do tipo de trabalho que está inscrevendo: ( x ) Resumo ( ) Relato de Caso Marque a opção do tipo de trabalho que está inscrevendo: ( x ) Resumo ( ) Relato de Caso PRÉ-REQUISITOS PARA A SUSTENTABILIDADE EM MUNICÍPIOS DO RIO GRANDE DO SUL EIXO MOBILIDADE URBANA AUTOR PRINCIPAL:

Leia mais

ELABORAÇÃO DE PLANO MUNICIPAL DE MOBILIDADE URBANA

ELABORAÇÃO DE PLANO MUNICIPAL DE MOBILIDADE URBANA PROGRAMA MUNICIPAL DE MOBILIDADE URBANA ELABORAÇÃO DE PLANO MUNICIPAL DE MOBILIDADE URBANA PREFEITURA DE CAÇAPAVA DO SUL-RS JULHO DE 2013 Pág. 1 : 5 SRCRETARIA DE MUNICÍPIO DO PLANEJAMENTO E MEIO AMBIENTE

Leia mais

50º Encontro tele.síntese:

50º Encontro tele.síntese: 50º Encontro tele.síntese: soluções para cidades inteligentes Alberto Rodrigues Diretor de IoT Ericsson Brasil São Paulo, 17/10/2017 Ericsson no brasil (92 anos) Ericsson em smart cities 20 1B BRL Projetos

Leia mais

SISTEMA DE INTELIGÊNCIA INTEGRADA EM COMUNICAÇÃO AUTOMOTIVA URBANA

SISTEMA DE INTELIGÊNCIA INTEGRADA EM COMUNICAÇÃO AUTOMOTIVA URBANA Blucher Engineering Proceedings Agosto de 2014, Número 2, Volume 1 SISTEMA DE INTELIGÊNCIA INTEGRADA EM COMUNICAÇÃO AUTOMOTIVA URBANA Fabio Pires 1, Eduardo Mario Dias², Felippe da Silva Pires 3, Caio

Leia mais

Um Middleware de Inteligência Artificial para Jogos Digitais 105

Um Middleware de Inteligência Artificial para Jogos Digitais 105 6 Conclusão Este capítulo apresenta alguns comentários e considerações gerais sobre o trabalho de pesquisa realizado durante o desenvolvimento desta dissertação, as contribuições alcançadas e sugestões

Leia mais

4 Caso de Uso no Ambiente Oracle

4 Caso de Uso no Ambiente Oracle 4 Caso de Uso no Ambiente Oracle No capítulo anterior foi definido o processo para definição de uma estratégia de rastreabilidade. Neste capítulo será realizada uma instanciação do processo em um ambiente

Leia mais

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE PERNAMBUCO Centro de Informática Departamento de Sistemas de Computação

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE PERNAMBUCO Centro de Informática Departamento de Sistemas de Computação SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE PERNAMBUCO Centro de Informática Departamento de Sistemas de Computação CONCURSO PÚBLICO PARA DOCENTES DO MAGISTÉRIO SUPERIOR Edital nº 42, de 27 de maio

Leia mais

Tema 3: Almoxarifado (recursos materiais, laboratório, farmácia) + Controle de Escala e Plantões

Tema 3: Almoxarifado (recursos materiais, laboratório, farmácia) + Controle de Escala e Plantões Tema 3: Almoxarifado (recursos materiais, laboratório, farmácia) + Controle de Escala e Plantões Mabi Prux von Steinkirch Prof Letícia Mara Peres Universidade Federal do Paraná - ago/2017 Gerenciamento

Leia mais

PROJETO DE INTERFACES PARA ÁLGEBRA DE MAPAS EM GEOPROCESSAMENTO NO AMBIENTE SPRING

PROJETO DE INTERFACES PARA ÁLGEBRA DE MAPAS EM GEOPROCESSAMENTO NO AMBIENTE SPRING MINISTÉRIO DA CIÊNCIA E TECNOLOGIA INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS INPE-9307-TDI/820 PROJETO DE INTERFACES PARA ÁLGEBRA DE MAPAS EM GEOPROCESSAMENTO NO AMBIENTE SPRING Ivan Soares de Lucena Dissertação

Leia mais

APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA

APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA Guilherme de Souza Ferreira Discente do curso Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

Inconsistência na estrutura de transporte público das cidades brasileiras

Inconsistência na estrutura de transporte público das cidades brasileiras Inconsistência na estrutura de transporte público das cidades brasileiras Por Mateus Araújo Maia A expansão do meio urbano tem sido um fator desafiador para que a mobilidade seja desenvolvida afim de que

Leia mais

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software INTRODUÇÃO AO SWEBOK Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Origens do corpo de conhecimentos da Engenharia de Software: Engenharia da Computação Ciência da

Leia mais

NÓS CONECTAMOS A INDÚSTRIA COM A EMPRESA A SOLUÇÃO COMPLETA PARA OPERAÇÕES DE MANUFATURA

NÓS CONECTAMOS A INDÚSTRIA COM A EMPRESA A SOLUÇÃO COMPLETA PARA OPERAÇÕES DE MANUFATURA NÓS CONECTAMOS A INDÚSTRIA COM A EMPRESA A SOLUÇÃO COMPLETA PARA OPERAÇÕES DE MANUFATURA INDÚSTRIA 4.0 PRONTO! CONCEBIDA, PROJETADA E DESENVOLVIDA DE ACORDO COM OS PARADIGMAS DA INDÚSTRIA 4.0, BRICK REPLY

Leia mais

Bosch Service Solutions Serviços de Rastreamento e Gestão de Frotas

Bosch Service Solutions Serviços de Rastreamento e Gestão de Frotas Service Solutions Serviços de Rastreamento e Gestão de Frotas 1 Sistemas de Segurança O que a oferece? Serviço de Gestão de Frota para veículos de passeio, comerciais leves, caminhões e frota de veículos:

Leia mais

Introdução Automatic Vehicle Control Automated Highway Systems

Introdução Automatic Vehicle Control Automated Highway Systems 1 Introdução O trânsito nas estradas está ficando cada vez mais intenso, ao passo que os acidentes, o tempo de percurso, e o stress aumentam a cada dia devido a esse fato. Resultados de pesquisas já mostram

Leia mais

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO. Desenvolvimento de projetos de inovação em mobilidade urbana

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO. Desenvolvimento de projetos de inovação em mobilidade urbana ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Desenvolvimento de projetos de inovação em mobilidade urbana Prof. Leopoldo Yoshioka 2 de abril de 2019 Objetivo da palestra Aprender a aplicar os conhecimentos

Leia mais

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO Sumário PREFÁCIO...3 MODELO DA DOCUMENTAÇÃO...3 1. INTRODUÇÃO AO DOCUMENTO...3 1.1. Tema...3 2. DESCRIÇÃO

Leia mais

Prof. Ms. Ronaldo Martins da Costa

Prof. Ms. Ronaldo Martins da Costa Prof. Ms. Ronaldo Martins da Costa Diferentes conjuntos de etapas que envolvem métodos, ferramentas e procedimentos utilizados no desenvolvimento de software CiclodeVidaClássico Prototipação Modelo Espiral

Leia mais

Robô Móvel Colaborativo

Robô Móvel Colaborativo Lançamento Modernize seu processo produtivo Robô Móvel Colaborativo O Robô Móvel Colaborativo da Omron é um Veículo Autônomo Inteligente (AIV) projetado para aumentar a produtividade em processos industriais

Leia mais

CARACTERIZAÇÃO BÁSICA DOS MEIOS DE TRANSPORTE MAIS UTILIZADOS NA CIDADE DE BOTUCATU

CARACTERIZAÇÃO BÁSICA DOS MEIOS DE TRANSPORTE MAIS UTILIZADOS NA CIDADE DE BOTUCATU CARACTERIZAÇÃO BÁSICA DOS MEIOS DE TRANSPORTE MAIS UTILIZADOS NA CIDADE DE BOTUCATU Simara Cristina Ferreira 1 Bernadete Rossi Barbosa Fantin 2 Faculdade de Tecnologia, Botucatu,SP, Brasil. E-mail: simara@ibd.com.br

Leia mais

1.1. Posicionamento e Motivação

1.1. Posicionamento e Motivação 1 Introdução Os evidentes avanços computacionais têm proporcionado mudanças de paradigma na interação humano-computador. No passado, na chamada era mainframe, um computador era compartilhado por vários

Leia mais

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS Tereza Gonçalves Kirner Apresentação elaborada com base em: Hoffer, Jeffrey A., George, Joey F. Modern Systems Analysis and Design (Capítulo 1), Pearson,

Leia mais

Os desafios de interface e de interação na computação ciente de contexto

Os desafios de interface e de interação na computação ciente de contexto Mariana Ferreira Gomes Corrêa Google App: Os desafios de interface e de interação na computação ciente de contexto Dissertação de Mestrado Dissertação apresentada ao Programa de Pósgraduação em Design

Leia mais

GERENCIAMENTO DE DADOS Exercícios

GERENCIAMENTO DE DADOS Exercícios GERENCIAMENTO DE DADOS Exercícios EXERCÍCIO 1 Marque a opção correta: 1. O conceito de administração de recursos de dados envolve o gerenciamento dos: a. Recursos de dados de uma organização e do seu pessoal.

Leia mais

Escalonador de Ordens de Produção Utilizando Algoritmos Genéticos

Escalonador de Ordens de Produção Utilizando Algoritmos Genéticos Escalonador de Ordens de Produção Utilizando Algoritmos Genéticos Nome: Wilian Kohler Supervisor na FURB: Prof. Jomi Fred Hübner Orientador na Empresa: Evaldo Moresco Jr. Empresa: Metalúrgica Siemsen Ltda.

Leia mais

Sistemas de Computação e de Informação

Sistemas de Computação e de Informação Sistemas de Computação e de Informação SLIDE 9 Professor Júlio Cesar da Silva juliocesar@eloquium.com.br site: http://eloquium.com.br/ twitter: @profjuliocsilva Linguagens de Programação Os computadores

Leia mais

Fase 2 Pesquisa Domiciliar de Origem e Destino entrevistas

Fase 2 Pesquisa Domiciliar de Origem e Destino entrevistas Planejamento participativo Foram realizadas em todos os municípios da AMFRI para elaboração do Plan Mob: Fase 1 - Consultas Públicas 26 reuniões 742 cidadãos participantes 1.410 propostas produzidas Fase

Leia mais

VII ENCONTRO BIENAL DE LOGÍSTICA E CADEIAS DE VALOR E SUPRIMENTOS MACKENZIE

VII ENCONTRO BIENAL DE LOGÍSTICA E CADEIAS DE VALOR E SUPRIMENTOS MACKENZIE VII ENCONTRO BIENAL DE LOGÍSTICA E CADEIAS DE VALOR E SUPRIMENTOS MACKENZIE POLÍTICA NACIONAL DE MOBILIDADE URBANA POLÍTICA NACIONAL DE MOBILIDADE URBANA MARTHA MARTORELLI Mobilidade Urbana: Conceito Histórico

Leia mais

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída 11 1 Introdução Recentes avanços em redes de computadores impulsionaram a busca e o desenvolvimento de meios para facilitar e acelerar o desenvolvimento de aplicações em sistemas distribuídos, tornando

Leia mais

Universidade Federal de Pernambuco

Universidade Federal de Pernambuco Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática ESTUDO DE TÉCNICAS DE FILTRAGEM HÍBRIDA EM SISTEMAS DE RECOMENDAÇÃO DE PRODUTOS PROPOSTA DE TRABALHO DE GRADUAÇÃO

Leia mais

Sistemas de Recomendação Uma abordagem geral

Sistemas de Recomendação Uma abordagem geral Sistemas de Recomendação Uma abordagem geral Universidade Estadual de Maringá Departamento de Informática Programa de Pós-Graduação Mestrado em Ciência da Computação Disciplina: Seminários II Aluna: Késsia

Leia mais

BRT Experiência no Rio de Janeiro. Eunice Horácio Gerente de Mobilidade Urbana

BRT Experiência no Rio de Janeiro. Eunice Horácio Gerente de Mobilidade Urbana BRT Experiência no Rio de Janeiro Eunice Horácio Gerente de Mobilidade Urbana 27/11/2014 Federação das Empreas de Transportes de Passageiros do Estado do Rio de Janeiro Sindicatos filiados: 10 Empresas

Leia mais

1. Fundamentos do Sistema de Informação. Objetivos do Módulo 1

1. Fundamentos do Sistema de Informação. Objetivos do Módulo 1 Objetivos do Módulo 1 Explicar por que o conhecimento dos sistemas de informação é importante para os profissionais das empresas e identificar as cinco áreas dos sistemas de informação que esses profissionais

Leia mais