Planeador colaborativo de deslocações de bicicleta em meio urbano Nelson Filipe Nunes Dissertação para obtenção do Grau de Mestre em Engenharia Informática e de Computadores Júri Presidente: Prof. Doutor João Emílio Segurado Pavão Martins Orientador: Prof. Doutor João Pedro Faria Mendonça Barreto Vogal: Prof. Doutor Bruno Emanuel da Graça Martins Novembro 2013 ii Agradecimentos Na elaboração desta dissertação não posso deixar de agradecer a todas as pessoas que contribuı́ram para a conclusão da mesma. Em primeiro lugar agradeço ao meu orientador, João Barreto, pela sua disponibilidade, paciência e atenção durante a realização desta dissertação. Agradeço também a todos os utilizadores de bicicleta que responderam aos inquéritos e que acabaram por testar o sistema. Agradeço aos meus amigos Gil Lacerda, Simão Martins e João Santos pela convivência e pela preciosa ajuda e disponibilidade sempre que foi necessário. Agradeço aos meus pais por todo o apoio que me deram, pelo incentivo e pelos meios necessários que me proporcionaram para chegar até aqui. Quero ainda agradecer à minha irmã pela amizade, carinho, apoio e pelas suas palavras de incentivo. iii iv Resumo Nas principais cidades da Europa, as bicicletas já conquistaram o seu espaço e têm sido utilizadas, para pequenas distâncias, como meio de transporte alternativo ao automóvel. Nos últimos anos, os utilizadores de bicicleta têm vindo a usar cada vez mais serviços de pesquisa de trajectos na web. Contudo, a maioria dos sistemas existentes são limitados, uma vez que devolvem um trajecto segundo critérios estáticos como a distância ou o tipo de via. No contexto desta dissertação é proposto um serviço de pesquisa de trajectos para bicicleta que pode ser adaptado a qualquer cidade, mesmo que para a qual não exista informação detalhada, precisa e actualizada sobre os atributos da rede viária que são relevantes para a pesquisa de trajectos seguros, competitivos e confortáveis para bicicleta (declive, intensidade e velocidade de tráfego, largura de vias, qualidade de piso, etc.). O sistema proposto, designado CycleOurCity, envolve e tira partido dos esforços da comunidade de utilizadores de bicicleta de cada cidade. Por essa razão, a nossa solução não precisa de uma entidade central responsável pela introdução e manutenção dos atributos da rede viária. O CycleOurCity permite que o utilizador atribua pesos aos critérios distância, inclinação e segurança, por forma a serem utilizados na pesquisa do trajecto. Além da avaliação quantitativa realizada, o sistema foi avaliado com utilizadores reais e os resultados são promissores. Palavras-chave: Sistema de pesquisa de trajectos colaborativo, Classificação de troços, Mecanismo de Reputação, Utilizadores de bicicleta O trabalho apresentado nesta dissertação foi parcialmente descrito na seguinte publicação: Nelson Nunes e João Barreto. Planeador colaborativo de deslocações de bicicleta em meio urbano. Sessão CMU do INForum, Évora, 2013. v vi Abstract In the main cities of Europe, bicycles have already conquered their space and have been used, for short distances, as an alternative means of transport to the car. In recent years, bicycle users have increasingly been using route finding services on the web. However, most of the existing systems are limited, since they return a path according static criteria like distance and type of road. In the context of this dissertation it is proposed a route finding service for bicycles only, that can be adapted to any city, even where there is no detailed, accurate and updated information as to the attributes of the road network that are relevant to the search of safe, competitive and comfortable paths for cycling (slope, intensity and speed of traffic, width of roads, quality of pavement, etc.). The proposed system called CycleOurCity involves and takes advantage of the efforts of the bicycle user community in each city. For this reason, our solution does not need a central entity responsible for the introduction and maintenance of road network attributes. CycleOurCity allows the user to weight the search criteria, such as distance, slope and safety, to be used on the route finding. The system was tested with real users and the results are promissing. Keywords: Collaborative route finding system, Segment classification, Reputation mechanism, Bicycle users vii viii Índice Agradecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Lista de Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv 1 Introdução 1 2 Trabalho Relacionado 5 2.1 Critérios relevantes na deslocação de um utilizador de bicicleta . . . . . . . . . . . . . . . 5 2.2 Descrição do problema do planeamento de trajectos . . . . . . . . . . . . . . . . . . . . . 6 2.2.1 Soluções para planeamento de trajectos . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Algoritmos de pesquisa de trajectos . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 Sistema colaborativo de recolha de informação geográfica . . . . . . . . . . . . . 11 2.3 Sistemas de referência para planeamento de trajectos . . . . . . . . . . . . . . . . . . . . 13 2.3.1 OpenCycleMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.2 Ride The City . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.3 OpenTripPlanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.4 Cyclopath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.5 OurWay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.6 CycleVancouver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.7 Planeamento de trajectos saudáveis para modos suaves . . . . . . . . . . . . . . 17 2.4 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 Arquitectura 19 3.1 Descrição sucinta do funcionamento do sistema . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 OpenTripPlanner original . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 OpenTripPlanner com as classificações dos utilizadores . . . . . . . . . . . . . . . . . . . 21 3.3.1 Escalas para classificação de troços . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.2 Cálculo da reputação de um utilizador . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3.3 Consolidar as classificações de um troço . . . . . . . . . . . . . . . . . . . . . . . 24 ix 3.3.4 Cálculo do custo de atravessamento de um troço baseado nas classificações consolidadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Implementação 24 27 4.1 Geração do grafo com as classificações dos utilizadores . . . . . . . . . . . . . . . . . . . 27 4.2 Alteração da RESTful API do OTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3 Realização da interface web 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Avaliação 31 5.1 Escolha de escalas para classificação de troços . . . . . . . . . . . . . . . . . . . . . . . 31 5.2 Testes com utilizadores reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.2.1 Primeira fase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2.2 Segunda fase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.3 Avaliação quantitativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.3.1 Tempo de resposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.3.2 Espaço de memória necessário . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.3.3 Tempo para actualizar o grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6 Conclusões e Trabalho Futuro 47 6.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.2 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 A Inquérito para determinar as melhores formulações 49 A.1 Descrição do inquérito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 A.2 Resultados do inquérito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 B Inquérito para avaliar o CycleOurCity 56 Bibliografia 62 x Lista de Tabelas 2.1 Relevância dos critérios na escolha de trajectos segundo os utilizadores de bicicleta . . . 6 2.2 Tabela comparativa dos sistemas de pesquisa de trajectos . . . . . . . . . . . . . . . . . 18 3.1 Escala para classificar a inclinação de um troço . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Escala para classificar a segurança de um troço . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 Escala para classificar um troço relativamente à existência de carris . . . . . . . . . . . . 23 3.4 Escala para classificar o tipo de pavimento de um troço . . . . . . . . . . . . . . . . . . . 23 5.1 Desvio padrão obtido, em média, para cada escala . . . . . . . . . . . . . . . . . . . . . . 33 5.2 Resultados dos trajectos A-B obtidos com o critério segurança . . . . . . . . . . . . . . . 38 5.3 Resultados dos trajectos A-B obtidos com o critério inclinação . . . . . . . . . . . . . . . 38 5.4 Resultados dos trajectos C-D obtidos com o critério segurança . . . . . . . . . . . . . . . 41 5.5 Resultados dos trajectos C-D obtidos com o critério inclinação . . . . . . . . . . . . . . . 42 5.6 Tempos de carregamento e escrita dos grafos . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.7 Tempos para incorporar as classificações no grafo de Lisboa . . . . . . . . . . . . . . . . 45 A.1 Desvio padrão para cada escala segundo determinado trajecto . . . . . . . . . . . . . . . 55 xi xii Lista de Figuras 1.1 Tempo de viagem em função da distância percorrida para cada meio de transporte . . . . 1 2.1 Espaço de procura do algoritmo de Dijkstra para pesquisa do trajecto entre Karlsruhe e Berlim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Ficheiro XML gerado para a adição de um nó que representa um bar 10 . . . . . . . . . . . 12 2.3 Área do mapa onde se situa o bar adicionado com o ficheiro XML . . . . . . . . . . . . . 12 2.4 Área de Lisboa obtida com o OpenCycleMap . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1 Arquitectura do CycleOurCity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.1 Resposta do CycleOurCity a um pedido de pesquisa de trajecto . . . . . . . . . . . . . . 28 4.2 Interface do CycleOurCity - separador ”planear” aberto . . . . . . . . . . . . . . . . . . . 29 4.3 Interface do OpenTripPlanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.4 Interface do CycleOurCity - separador ”classificar” aberto . . . . . . . . . . . . . . . . . . 30 5.1 Classificações com a escala de Rosa para avaliar o tipo de pavimento - Rua da Prata . . 32 5.2 Área considerada na experiência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.3 Troços classificados durante a experiência . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.4 Troços classificados com declive ascendente . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.5 Área com os locais de partida e de chegada assinalados . . . . . . . . . . . . . . . . . . 36 5.6 Trajecto A-B obtido com o critério segurança - CycleOurCity . . . . . . . . . . . . . . . . . 37 5.7 Trajecto A-B obtido com o critério segurança - OpenTripPlanner . . . . . . . . . . . . . . . 37 5.8 Trajecto A-B obtido com o critério inclinação - CycleOurCity . . . . . . . . . . . . . . . . . 39 5.9 Trajecto A-B obtido com o critério inclinação - OpenTripPlanner . . . . . . . . . . . . . . . 39 5.10 Trajecto C-D obtido com o critério segurança - CycleOurCity . . . . . . . . . . . . . . . . 40 5.11 Trajecto C-D obtido com o critério segurança - OpenTripPlanner . . . . . . . . . . . . . . 40 5.12 Trajecto C-D obtido com o critério inclinação - CycleOurCity . . . . . . . . . . . . . . . . . 41 5.13 Trajecto C-D obtido com o critério inclinação - OpenTripPlanner . . . . . . . . . . . . . . . 42 5.14 Pontos definidos para avaliar o planeamento de trajectos . . . . . . . . . . . . . . . . . . 43 5.15 Tempos de planeamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.16 Tamanho da base de dados em função do número de classificações . . . . . . . . . . . . 44 A.1 Av. Fontes Pereira de Melo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 xiii A.2 Av. Duque de Loulé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 A.3 Av. da Liberdade (corredor central) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 A.4 Rua Garret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 A.5 Rua do Ouro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 A.6 Rua da Prata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 A.7 Praça Dom Pedro IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 A.8 Av. Duque de Ávila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 B.1 Trajectos entre os pontos A e B obtidos com o critério segurança . . . . . . . . . . . . . . 57 B.2 Trajectos entre os pontos A e B obtidos com o critério inclinação . . . . . . . . . . . . . . 58 B.3 Trajectos entre os pontos C e D obtidos com o critério segurança . . . . . . . . . . . . . . 59 B.4 Trajectos entre os pontos C e D obtidos com o critério inclinação . . . . . . . . . . . . . . 60 xiv Capı́tulo 1 Introdução Nas principais cidades da Europa, as bicicletas já conquistaram o seu espaço e têm sido utilizadas, para pequenas distâncias, como meio de transporte alternativo ao automóvel [13]. O meio de transporte bicicleta tem benefı́cios ambientais e energéticos. A utilização da bicicleta diminui a emissão de gases para a atmosfera, o ruı́do ambiente e ainda a dependência pelo consumo de recursos energéticos não-renováveis. Melhora a qualidade do ambiente urbano, tendo impacto no bem-estar fı́sico, social e mental dos cidadãos [20]. As pessoas que andam de bicicleta regularmente têm, em média, uma vida mais saudável e uma longevidade maior do que as outras pessoas [15]. Ao diminuir a poluição atmosférica, os problemas respiratórios diminuem. Para além disso, andar de bicicleta diminui os nı́veis de sedentarismo e o risco de vir a ter doenças cardiovasculares, oncológicas e osteoarticulares. A bicicleta constitui o meio de deslocação mais rápido e eficiente dentro das áreas urbanas, especialmente para distâncias inferiores a 5 km, como está demonstrado na Fig. 1.1 [5]. Usar a bicicleta reduz de forma eficiente o número de horas despendido em troços congestionados, pois na maioria das vezes, os seus utilizadores conseguem ultrapassar os veı́culos que circulam em marcha lenta. Figura 1.1: Tempo de viagem em função da distância percorrida para cada meio de transporte Tendo presente todos os benefı́cios referidos anteriormente, torna-se necessário estimular a utilização da bicicleta como meio de transporte no nosso paı́s [3]. Em cidades portuguesas como Lisboa, Porto, etc., que apresentam um baixo número de utilizadores 1 de bicicleta e que ainda fornecem uma infra-estrutura escassa para este meio de transporte, a escolha de trajectos seguros e confortáveis é um factor crucial. Isto é, para além de ser necessário criar uma infra-estrutura que ofereça condições de conforto e segurança para os utilizadores de bicicleta [7], é fundamental que haja uma maneira de eles poderem pesquisar pelos melhores trajectos. Nessas cidades, a escolha destes trajectos para uma pessoa se deslocar é normalmente uma habilidade acessı́vel apenas aos utilizadores de bicicleta mais experientes da cidade. Winters et al. [22] realizaram um inquérito dirigido aos utilizadores de bicicleta da cidade de Vancouver, para apurar quais são os factores que aumentam a probabilidade de uma pessoa realizar os trajectos urbanos de bicicleta. Entre os factores mais relevantes, destacam-se os factores ”existência de um sistema de planeamento de trajectos” e ”existência de informações relativas ao trajecto”. Os melhores trajectos são aqueles que têm em conta todos os factores relevantes na deslocação de um utilizador de bicicleta. Factores como distância percorrida, inclinação e segurança são os mais relevantes para a pesquisa de um bom trajecto [9]. Enquanto que o factor distância apenas tem em consideração a distância, permitindo obter o trajecto mais curto, o factor inclinação permite evitar subidas inclinadas, devolvendo se possı́vel um trajecto mais plano. O último factor tem como objectivo devolver um trajecto mais seguro e confortável. Este é um trajecto que tem em conta o tipo de pavimento, tenta abranger pistas exclusivas a bicicletas e ruas com tráfego motorizado pouco intenso e calmo. Hoje em dia, nota-se cada vez mais a expansão de serviços de pesquisa de trajectos para a bicicleta em ambiente web. Entre os exemplos mais populares que permitem pesquisa de trajectos para bicicleta encontram-se: Google Maps1 (disponı́vel nos Estados Unidos, Reino Unido e recentemente na França, Alemanha, Polónia, Irlanda e Luxemburgo), Ride The City2 (algumas cidades dos Estados Unidos, Espanha e França), entre outros. O Via Michelin3 permite a pesquisa de trajectos para bicicleta na cidade de Lisboa, ainda que este sistema esteja direccionado para viagens de automóvel. Já existem algoritmos eficientes e escaláveis de pesquisa de trajectos para bicicleta, bases de dados geográficos, arquitecturas e interfaces web bem definidas e já são utilizados serviços de pesquisa de trajectos, incluindo serviços multimodais e serviços de código aberto, com grande sucesso em algumas cidades do mundo [4, 6, 10, 2, 12]. O que impede então que esses serviços sejam replicados noutras cidades? A falta de informação detalhada (declive, intensidade e velocidade de tráfego, largura de vias, qualidade de piso, etc.) sobre os troços da rede viária dessas cidades contribui largamente para a não existência desses serviços em muitas cidades. Para além disso, verifica-se a ausência de entidades disponı́veis para manter essa informação actualizada ao longo do tempo. Por exemplo, o Google Maps já suporta pesquisa de trajectos para utilizadores da bicicleta para várias cidades dos Estados Unidos e Grã-Bretanha. Contudo, a cobertura de novas cidades tem sido lenta porque, para a maior parte das cidades, a informação disponı́vel é insuficiente. Esta dissertação surge então da necessidade de promover a mobilidade de transportes suaves, 1 https://google.com/maps 2 http://ridethecity.com 3 http://www.viamichelin.pt/ 2 nomeadamente o uso da bicicleta como meio de transporte, em Portugal, através de um serviço que auxilie os seus utilizadores. A nossa contribuição é um sistema em que os dois desafios acima são ultrapassados envolvendo os próprios utilizadores de bicicleta, num esforço colaborativo de classificação de trajectos e troços da cidade. Com o CycleOurCity, à medida que os utilizadores pedalam, classificam os troços dos trajectos de forma colaborativa. Desta forma, o conhecimento da informação sobre a rede viária é cada vez maior e mais actualizado para que o sistema possa devolver melhores trajectos aos seus utilizadores. Os principais desafios do nosso sistema são: 1. Como facilitar a introdução das classificações? 2. Como motivar os utilizadores a colaborar activamente? 3. Como filtrar a informação incorrecta? O CycleOurCity pretende explorar uma direcção inovadora, tratando-se de um sistema colaborativo que aprende com as classificações introduzidas pelos próprios utilizadores de bicicleta. O sistema utiliza o OpenTripPlanner para o planeamento dos trajectos, e este utiliza os dados geográficos do OpenStreetMap (OSM) para construir o grafo que é explorado quando o utilizador pesquisa por um trajecto. As classificações dos utilizadores são incorporadas nos troços do grafo e são tidas em conta pelo algoritmo de pesquisa de trajectos. É de referir que o projecto OSM não pode ser utilizado para guardar as classificações dos utilizadores nos troços das vias. Por um lado, o OSM não tem conhecimento de um troço individual, mas sim de um conjunto de troços contı́nuos que dão origem ao elemento caminho (ver Secção 2.2.3). Por outro lado, os valores guardados no OSM são valores objectivos com os quais toda a comunidade concorda. Há cerca de dois anos, foi proposto uma novo atributo denominado bike safety 4 , mas este não foi aceite pela comunidade do OSM pelo facto de ser um factor subjectivo. O CycleOurCity consiste numa aplicação cliente que corre na web e num servidor que permite o planeamento e classificação de trajectos. Os resultados indicam que o sistema pode ser bastante útil para os utilizadores partilharem as suas experiências de forma a que seja sugerido melhores trajectos aos utilizadores menos experientes no uso deste meio de transporte. A presente dissertação foi estruturada em 6 capı́tulos, incluindo a introdução. No Capı́tulo 2, é apresentado o trabalho relacionado. Neste capı́tulo são abordados os critérios mais relevantes na deslocação de um utilizador de bicicleta. Além disso, descrevo diferentes tipos de sistemas de planeamentos de trajectos e dou ênfase a uma base de dados geográficos livre. No Capı́tulo 3, é descrita a arquitectura do sistema e a solução proposta para a presente dissertação. No Capı́tulo 4, são apresentados alguns detalhes da implementação do sistema. No Capı́tulo 5, o sistema é avaliado de forma quantitativa e qualitativa. Por fim, no sexto capı́tulo, apresentam-se as conclusões do sistema desenvolvido e apresentam-se sugestões para a continuação do sistema. 4 http://wiki.openstreetmap.org/wiki/Proposed features/bike safety 3 4 Capı́tulo 2 Trabalho Relacionado Este capı́tulo começa por enumerar os critérios mais relevantes na deslocação de um utilizador de bicicleta. Na Secção 2.2 é descrito o problema subjacente ao planeamento de trajectos. Esta secção apresenta as soluções existentes para os utilizadores de bicicleta planearem os seus trajectos. Além disso, descreve os algoritmos mais utilizados na pesquisa de trajectos e termina com um sistema colaborativo de recolha de informação geográfica. A Secção 2.3 descreve os sistemas de referência existentes e o capı́tulo termina com um breve sumário na Secção 2.4. 2.1 Critérios relevantes na deslocação de um utilizador de bicicleta Em 2012, Rosa Félix elaborou um questionário dirigido aos utilizadores de bicicleta de Lisboa e recolheu 892 respostas válidas. Esta dimensão da amostra sugere que os resultados extraı́dos da análise de respostas são consistentes e reflectem a realidade. Este inquérito permitiu identificar a importância de cada critério na deslocação de um utilizador de bicicleta. Como a Tabela 2.1 indica, os critérios segurança na circulação, rapidez, inclinação das vias e existência de ciclovias são considerados pelos utilizadores de bicicleta muito relevantes para a sua deslocação na cidade de Lisboa [9]. É de referir a preocupação que os utilizadores de bicicleta manifestam com a sua segurança, sendo este o critério mais relevante. Segundo os resultados apurados neste inquérito, os trajectos que os ciclistas de Lisboa escolhem são: os mais rápidos, os mais seguros, por eixos onde a velocidade de circulação dos automóveis é menor, e os mais planos. O inquérito permitiu também perceber se uma plataforma online que permitisse pesquisar pelo melhor trajecto entre qualquer par origem-destino seria útil para os utilizadores de bicicleta. Os resultados mostram que 95% dos inquiridos consideram esta plataforma útil. 5 Tabela 2.1: Relevância dos critérios na escolha de trajectos segundo os utilizadores de bicicleta 2.2 Descrição do problema do planeamento de trajectos Um sistema de planeamento de trajectos permite efectuar o planeamento de um trajecto entre dois pontos geográficos à escolha do utilizador. Os sistemas de planeamento de trajectos para os utilizadores de bicicleta acrescentam à pesquisa de trajectos para automóveis uma complexidade maior que resulta num maior número de variáveis relevantes. De facto, os planeadores de trajectos convencionais e os equipamentos de navegação móveis, baseados em sistemas de georreferenciacão associados ao GPS, são concebidos para o planeamento de viagens que têm como principal objectivo minimizar diferentes variáveis, como a distância (trajecto mais curto), o tempo (trajecto mais rápido), ou o custo da viagem (trajecto menos dispendioso). No entanto, como referi na secção anterior, o planeamento de trajectos para a deslocação de um utilizador de bicicleta deve considerar variáveis associadas a diferentes critérios, nomeadamente a segurança e a inclinação. Os sistemas de planeamento precisam de uma fonte de dados geográficos para tomarem conheci6 mento da rede viária. Além disso, os sistemas de planeamento automático de trajectos precisam de um motor de planeamento de trajectos que utilize algoritmos de cálculo do caminho de menor custo (ver Secção 2.2.2) sobre a rede viária. Um sistema que permite o planeamento automático ou não de trajectos, pode ser dividido em dois grupos: sistema offline e sistema online. Um sistema Desktop ou offline é instalado e executado num computador pessoal, permitindo apenas aos utilizadores desse computador, a visualização de mapas e a pesquisa de trajectos. O sistema MoNav1 é um exemplo destes sistemas. Um sistema online trata-se então de um sistema que permite a pesquisa de trajectos na web. Estes sistemas consistem num servidor que é responsável por distribuir os mapas e serviços de pesquisa de trajectos para serem utilizados pelos clientes. 2.2.1 Soluções para planeamento de trajectos Sistemas de visualização Há sistemas que apenas permitem a visualização de mapas, mostrando informação útil para os utilizadores de bicicleta. Geralmente, apresentam as ciclovias existentes, oficinas e parques de estacionamento para as bicicletas. Apesar destes sistemas não planearem automaticamente um trajecto entre os pontos de partida e de chegada, ajudam os utilizadores pois estes podem planear as suas deslocações diárias com base na informação disponibilizada no mapa. O sistema OpenCycleMap2 (ver Secção 2.3.1) insere-se neste tipo de sistemas. Sistemas de partilha de trajectos Estes são sistemas que permitem que os utilizadores partilhem os seus trajectos com a comunidade dos utilizadores de bicicleta. Dependendo do sistema, o utilizador pode partilhar os seus trajectos com ajuda de uma interface que permita desenhar o trajecto, ou então pode ainda carregar os seus trajectos no formato GPX3 . O sistema Bikely4 é um bom exemplo destes websites de partilha de trajectos. Este permite ao utilizador carregar os seus trajectos coleccionados a partir do seu dispositivo GPS ou desenhar os trajectos com a ajuda de ferramentas no website. Os trajectos carregados no sistema podem ser visualizados e descarregados por qualquer utilizador. Sistemas tradicionais de pesquisa de trajectos Estes permitem aos seus utilizadores pesquisar por um trajecto entre dois locais. Para isso, o utilizador introduz os locais de partida e chegada e em alguns sistemas pode seleccionar critérios para o sistema ter em conta na escolha do trajecto. Frequentemente, estes sistemas são conhecidos por planeadores 1 http://wiki.openstreetmap.org/wiki/MoNav 2 http://www.opencyclemap.org/ 3 http://www.topografix.com/gpx.asp 4 http://www.bikely.com/ 7 de trajectos. Enquanto que estes sistemas devolvem um trajecto que é óptimo para determinados critérios, como tempo e distância, os sistemas enunciados em seguida devolvem um trajecto que é optimizado para satisfazer as preferências subjectivas do utilizador que pesquisou pelo trajecto. Sistemas personalizados de pesquisa de trajectos O número de websites que personalizam experiências dos utilizadores tem vindo a aumentar nos últimos anos. Por exemplo, o website da Amazon5 depende de sistemas de recomendação para sugerir a compra de livros aos utilizadores. Um sistema de pesquisa de trajectos personalizado é um sistema orientado ao utilizador, isto é, devolve um trajecto que satisfaz as preferências de cada utilizador. Para isto os utilizadores precisam de expressar as suas preferências para trajectos que já realizaram. Normalmente, depois de realizarem o trajecto, os utilizadores classificam cada troço que o constitui. Nas pesquisas futuras de trajectos, o sistema tenta devolver um trajecto ao utilizador que não passe pelos troços que ele classificou de forma negativa. Existem já vários sistemas personalizados que recomendam pontos de interesse próximos da localização actual ou futura do utilizador, como restaurantes [17] e destinos turı́sticos [1, 23]. Contudo, a personalização de serviços de pesquisa de trajectos é um tema bastante recente. Segundo Reid et Al. [18], os sistemas de pesquisa de trajectos geram trajectos melhores se tiverem em conta preferências subjectivas dos utilizadores. Estes sistemas usam algoritmos de supervised learning para detectar padrões nas preferências passadas dos utilizadores de modo a inferir preferências noutros troços semelhantes da rede. Assim como os sistemas tradicionais, os sistemas personalizados precisam de utilizar algoritmos de pesquisa de trajectos. Na secção seguinte são apresentados três algoritmos para pesquisa de trajectos, sendo o algoritmo A*, o mais utilizado. 2.2.2 Algoritmos de pesquisa de trajectos Quando o utilizador pesquisa por um trajecto que comece no local A (nó de origem) e termine no local B (nó destino), o planeador tem de invocar um determinado algoritmo para indicar um trajecto possı́vel de A para B. Os algoritmos que calculam os caminhos de menor custo podem ser divididos em algoritmos de procura informada e não informada. Os algoritmos de procura informada, também conhecidos como algoritmos de procura melhor primeiro, usam conhecimento especı́fico do problema para determinar a ordem de expansão dos nós. Este conhecimento é baseado em heurı́sticas, com o objectivo de explorar menos vértices, reduzindo assim o espaço de procura e consequentemente o tempo de execução do algoritmo. 5 http://www.amazon.co.uk/ 8 Algoritmo A* Um dos algoritmos mais populares de procura informada para o cálculo do caminho de menor custo trata-se do A* [4]. Os algoritmos de procura informada usam uma função de avaliação, f (n), para cada nó. O melhor nó é o que tem menor valor de f (n), com f (n) = g(n) + h(n). A função g(n) representa o custo de alcançar o nó n a partir do nó inicial (v1), h(n) a estimativa do custo do nó n até ao estado final (vn) e f (n) a estimativa do custo total da solução (caminho do nó inicial até ao nó final, passando por n) . O algoritmo A* encontra o caminho mais curto num grafo, expandindo em cada iteração o nó com menor valor de f (n) da lista de nós candidatos (lista de nós abertos, denominada por O). O algoritmo termina quando se tira o nó final da lista de nós abertos. O pseudo-código do algoritmo é apresentado abaixo. Algoritmo: A* (G, v1, vn, h) O ← v1 while O not empty do remove i ∈ O such that f (i) is least if i == vn then return path to i for all k ∈ children(i) do calculate h(k) calculate f (k) insert k into O ordered by f (k) fail Se h(n) é consistente, então este algoritmo encontra a solução óptima para o problema do caminho mais curto. As heurı́sticas consistentes garantem que se existirem dois caminhos para chegar ao nó final, então o caminho de menor custo é sempre seguido em primeiro lugar. O A* é o algoritmo mais utilizado nos sistemas que permitem a pesquisa de trajectos. Algoritmo de Dijkstra Este é um exemplo de um algoritmo de procura não informada. O algoritmo de Dijkstra, cujo nome se origina do seu inventor Edsger Dijkstra, resolve o problema do caminho mais curto num grafo com arestas de peso não negativo, em tempo computacional O((m+n)log(n)) onde m é o número de arestas e n é o número de vértices [6]. O algoritmo mantém um atributo distância d(v) para cada vértice, e este representa o limite superior no valor do peso do caminho mais curto entre o nó inicial s e o vértice v. O primeiro passo do algoritmo consiste em inicializar o d(s) a zero e a infinito para todos os outros vértices. A cada iteração, é retirado um vértice u, que é o vértice que tem o menor valor no atributo d. Para cada arco (u, v), se d(v) é maior que d(u) + w(u, v), actualiza-se o valor de d(v) para d(u) + w(u, v). O algoritmo termina quando o vértice retirado for o vértice destino. Abaixo é mostrado o pseudo-código do algoritmo. A Fig. 2.1 mostra o espaço de procura usando o algoritmo de Dijkstra numa rede de estradas da Alemanha, para calcular o caminho mais curto de Karlsruhe para Berlim [14]. Os arcos que foram 9 Algoritmo: Dijkstra (G, w, s) Initialize-Single-Source (G, s) S←∅ Q ← V [G] while Q not empty do u ← Extract Min (Q) S ← S ∪ {u} for all v ∈ Adj[u] do Relax (u, v, w) visitados durante a execução do algoritmo estão pintados a preto e os que fazem parte do caminho mais curto estão realçados num preto mais carregado. Figura 2.1: Espaço de procura do algoritmo de Dijkstra para pesquisa do trajecto entre Karlsruhe e Berlim Hierarquias de contracção (HC) Como é mostrado na Fig. 2.1, o algoritmo de Dijkstra não só determina um caminho mais curto, mas os caminhos mais curtos de um nó de origem para muitos dos vértices do grafo. Devido a esta razão, o algoritmo de Dijkstra é bastante ineficiente para aplicações que só estão interessadas num único caminho mais curto entre dois vértices, pois pode haver muitos vértices que são processados durante este algoritmo que são irrelevantes para o problema. Para resolver este problema, surgiram vários algoritmos designados speedup techniques para o algoritmo de Dijkstra. Um destes designa-se hierarquias de contracção e trata-se do mais popular actualmente. A ideia principal consiste em organizar todos os nós por ordem crescente da sua importância (obtida a partir de heurı́sticas), e de seguida iterativamente contrai-los nesta ordem, adicionando atalhos, de modo a preservar os caminhos mais curtos [10]. Contrair o nó v significa substituir os caminhos mais curtos que passam por v com atalhos, removendo v da rede. Desta forma, os caminhos mais curtos são preservados. As consultas são efectuadas ao grafo recorrendo ao algoritmo Dijkstra bidireccional, que procura evitar os nós menos significativos usando os atalhos adicionados na etapa de pré-processamento. 10 2.2.3 Sistema colaborativo de recolha de informação geográfica Para suportar a pesquisa de trajectos, o sistema precisa de ter conhecimento de uma rede de troços. Para construir essa rede é absolutamente necessário uma base de dados geográficos. Uma nova tendência para recolha de dados geográficos tem evoluı́do, nos últimos anos, reportando uma recolha de informação voluntária e colaborativa. De acordo com Elwood [8], para esta tendência existem vários termos, embora um dos termos mais populares seja Volunteered Geographic Information (VGI). O OpenStreetMap6 (OSM) é um projecto livre para construir uma base de dados geográficos do mundo. O OSM começou em 2004 por Steve Coast e é provavelmente o projecto VGI mais popular e bem sucedido. OpenStreetMap A base de dados do OSM é construı́da por colaboradores que reúnem informação sobre elementos geográficos como ruas, praias, edifı́cios através do seu dispositivo GPS. Grande parte dos colaboradores são voluntários que apoiam o projecto no seu tempo livre. Desde 2004, o projecto cresceu rapidamente e em Janeiro de 2013, já havia mais de 1.000.000 de utilizadores registados7 . Em Portugal, já existe um movimento que visa a recolha de informação geográfica por voluntários espalhados por todo o paı́s. Para além de ter como missão elaborar o melhor mapa do paı́s, o movimento ”Vamos mapear Portugal”8 pretende criar mecanismos e dinâmicas necessárias para que a informação seja actualizada constantemente e disponibilizada gratuitamente aos cidadãos. Deste modo, o OSM está a ser fortemente promovido em Portugal e em constante crescimento. O OSM é frequentemente comparado à Wikipédia9 devido às inúmeras semelhanças dos projectos. Ambos os projectos criam conteúdo livre de licenças e usam a web para permitir a participação de colaboradores espalhados pelo mundo. Este processo de mapear a informação através de um grupo de pessoas denomina-se mapeamento colaborativo10 . O OSM não usa nenhum dos sistemas de informação geográfica existente para armazenar os dados. Em vez disso, usa o seu próprio programa e modelo de dados para tornar o processo de crowdsourcing 11 mais simples. Este projecto é livre e de código aberto e por isso qualquer pessoa pode usar os dados de forma livre, sendo possı́vel copiá-los, modificá-los e posteriormente distribuı́-los. Há vários mapas disponı́veis na web que são livres de usar e alguns desses até fornecem uma API para poderem ser embutidos em páginas web. Contudo têm restrições no que podemos fazer com eles. Nenhum desses serviços permite a modificação e a distribuição dos dados. Se os dados estiverem errados, temos de esperar que sejam corrigidos, o que pode levar meses. Pelo contrário, o OSM é constantemente actualizado e as alterações estão disponı́veis para descarregar imediatamente. Enquanto que as bases de dados 6 http://www.openstreetmap.org/ 7 Documentação acessı́vel em http://wiki.openstreetmap.org/wiki/Statistics http://wiki.osgeopt.pt/index.php/Vamos mapear Portugal 9 http://www.wikipedia.org/ 10 Do inglês crowd-sourced mapping 11 http://en.wikipedia.org/wiki/Crowdsourcing 8 11 privadas podem ser actualizadas frequentemente, essas alterações não são logo acessı́veis aos seus clientes, deixando-os com bases de dados desactualizadas por algum tempo. Como já referi, o OSM usa o seu próprio modelo de dados12 para representar todos os elementos geográficos que conhece. O modelo foi construı́do para ser o mais simples possı́vel e baseia-se apenas em três tipos primitivos: nós, caminhos e relações [2]. As caracterı́sticas geográficas que estes elementos representam, podem ser descritas pelo mecanismo de etiquetagem13 . O formato default para representar o modelo de dados é XML14 . O tipo primitivo nó define um único ponto geográfico. É o único tipo que tem informação sobre a sua localização, nomeadamente a latitude e longitude. A altitude também pode ser descrita, embora seja um parâmetro opcional. Os nós podem ser usados para mapearem pontos de interesse (por exemplo, cidades) ou para unirem dois ou mais caminhos. A Fig. 2.2 [2] mostra o ficheiro XML gerado por uma aplicação de edição dos dados do OSM para adicionar um nó que posteriormente é visualizado na Fig. 2.3 [2]. Figura 2.2: Ficheiro XML gerado para a adição de um nó que representa um bar Figura 2.3: Área do mapa onde se situa o bar adicionado com o ficheiro XML O segundo tipo primitivo, caminho, trata-se de uma sequência ordenada de nós e permite representar vias, rios, entre outras entidades geográficas. Este pode ser aberto ou fechado. Um caminho é fechado, quando o último nó corresponde ao primeiro nó. Caso seja aberto, pode descrever, por exemplo uma rua, enquanto que se for fechado, descreve uma área. Dois caminhos estão ligados fisicamente, se partilham pelo menos um nó. O último tipo primitivo, denominado relação, consiste numa lista de tipos primitivos, incluindo outras relações. Este tipo existe para modelar caracterı́sticas que não podem ser descritas usando um simples nó ou caminho. Permite modelar relações lógicas ou geográficas entre os membros que as constituem. 12 Documentação acessı́vel em http://wiki.openstreetmap.org/wiki/Elements inglês tagging 14 http://en.wikipedia.org/wiki/XML 13 Do 12 Um membro da relação pode ter um papel que descreve o que faz na relação. Há vários tipos de relação, dos quais destaco o tipo rota e o tipo restrição. O tipo rota é usado para descrever rotas de muitos tipos, incluindo rotas de bicicleta. Como normalmente numa rua é permitida a circulação de vários tipos de veı́culos, o OSM permite que a um caminho possam ser atribuı́das várias relações do tipo rota. O tipo restrição descreve restrições, tais como, o facto de não poder virar à direita devido à presença de um sinal de proibição. Estas relações são muito relevantes para o bom funcionamento dos algoritmos utilizados na pesquisa de trajectos. Aos tipos primitivos são atribuı́dos etiquetas que consistem num par chave-valor, utilizadas para os descrever com maior detalhe. Por exemplo, na Fig. 2.2, a etiqueta com o valor pub faz com que o nó represente um bar e não outra entidade. Há inúmeros projectos de código aberto de pesquisa de trajectos baseados nos dados fornecidos pelo OSM: OpenTripPlanner15 , Open Source Routing Machine16 , entre outros. O website Ride The City17 também usa os dados do OSM e é especı́fico para pesquisa de trajectos para bicicleta. 2.3 2.3.1 Sistemas de referência para planeamento de trajectos OpenCycleMap O OpenCycleMap18 permite apenas a visualização do mapa e utiliza o OSM como fonte de dados. Este sistema é um serviço que apresenta um mapa internacional para bicicletas que tem como objectivo fornecer informações úteis para todos os utilizadores de bicicleta, como caminhos, ciclovias, estacionamentos e lojas dedicadas a bicicletas. A Fig. 2.4 mostra uma área próxima de São Sebastião, representando as ciclovias mapeadas no OSM a tracejado. 2.3.2 Ride The City Este sistema começou por permitir a pesquisa de trajectos de bicicleta em Nova Iorque e actualmente já disponibiliza esse serviço para dezenas de cidades. O sistema devolve um trajecto com base na opção escolhida pelo utilizador. Este sistema disponibiliza três opções para a escolha de um trajecto: seguro, mais seguro e directo. Estas três opções estão relacionadas com o critério distância. O sistema atribui uma distância menor às vias consideradas mais seguras para a deslocação de um utilizador de bicicleta. As pistas exclusivas para ciclistas são um exemplo dessas vias. Ou seja, quando o utilizador selecciona o critério seguro ou mais seguro, o que o sistema faz na realidade é multiplicar a distância de algumas vias por um factor entre 0 e 1 de modo a devolver um trajecto mais seguro. O factor multiplicativo usado no critério mais seguro é menor que o 15 http://opentripplanner.com/ 16 http://project-osrm.org/ 17 http://www.ridethecity.com 18 http://www.opencyclemap.org/ 13 Figura 2.4: Área de Lisboa obtida com o OpenCycleMap factor usado no critério seguro. O critério directo é usado quando o utilizador pretende o trajecto com menor distância real entre os locais de partida e chegada. O Ride The City utiliza uma ferramenta de código aberto, o pgRouting19 para permitir o planeamento dos trajectos. O pgRouting estende a base de dados espacial PostGIS/PostgreSQL, de modo a incorporar funcionalidades para tornar possı́vel o planeamento de trajectos. Esta ferramenta oferece um conjunto de algoritmos para o cálculo do caminho de menor custo. A ferramenta osm2pgrouting20 permite que os dados do OpenStreetMap sejam importados directamente para a base de dados, formando uma rede de troços. Neste sistema é possı́vel classificar os troços, escolhendo uma categoria numa escala de respostas (excelente, bom, etc.). Contudo, na versão actual, as classificações só servem como notificações para que a equipa que mantém o serviço corrija manualmente os atributos do mapa. Este sistema só funciona em cidades nas quais há uma equipa que mantém a informação (de declive, segurança, conforto, etc.) da rede viária. Essa informação não pode ser corrigida directamente pelos utilizadores de bicicleta. 2.3.3 OpenTripPlanner O OpenTripPlanner21 é um planeador multimodal de itinerários de código aberto que surgiu de um trabalho colaborativo entre a TriMet, operador de transportes públicos que actua na região de Portland, e um conjunto de empresas de software de código aberto nas áreas de transportes e informação geográfica, entre as quais a OpenPlans22 . A versão actual do OTP, permite o planeamento de itinerários a pé, bicicleta e transportes públicos (metro, comboio, autocarro). Este sistema tem como fonte de dados o OpenStreetMap para construir 19 http://pgrouting.org/ 20 http://workshop.pgrouting.org/chapters/osm2pgrouting.html 21 http://opentripplanner.com/ 22 http://openplans.org/ 14 a rede de troços. Também importa dados do General Transit Feed Specification23 (GTFS) para ter conhecimento de horários e rotas dos transportes públicos e do US National Elevation Dataset (NED)24 para ter conhecimento da inclinação das vias. Através do OTP os utilizadores planeiam um trajecto, podendo utilizar vários modos de transporte, como por exemplo, andar a pé e de bicicleta. Este sistema utiliza o algoritmo A* na pesquisa de trajectos. O OTP permite aos utilizadores de bicicleta uma forma de planearem as suas deslocações, com base em três parâmetros: distância, segurança e inclinação. O sistema fornece um triângulo de preferências onde o utilizador especifica o peso de cada um desses critérios. A segurança está relacionada com a distância, e tal como no sistema Ride The City, o OTP usa factores multiplicativos para cada tipo de caminho no OSM, diminuindo as distâncias dos caminhos mais apropriados para os utilizadores da bicicleta. O OTP encontra-se em constante desenvolvimento, tendo uma comunidade activa que continua a adicionar novas funcionalidades e a melhorar o software. Assim como o OSM, não há pagamentos de licenças para modificar ou distribuir o OTP. O OpenTripPlanner encontra-se em utilização final em várias cidades do mundo. Por exemplo, a TriMet disponibiliza o seu serviço de pesquisa de trajectos25 para Portland. A empresa municipal de transportes de Valência também usa o OTP no seu portal26 de pesquisa de trajectos. 2.3.4 Cyclopath O Cyclopath27 é um exemplo de um sistema personalizado de pesquisa de trajectos que actua numa área denominada Twin Cities no estado de Minnesota dos Estados Unidos [18]. Este projecto utiliza os dados geográficos fornecidos pelo departamento de transportes de Minnesota28 , pelo Concelho Metropolitano29 e pelo United States Geological Survey 30 . Este sistema utiliza preferências subjectivas para devolver um trajecto aos diferentes perfis de utilizadores. Os utilizadores classificam cada arco com um atributo denominado bikeability numa escala de 0 (intransitável) a 4 (excelente). As classificações inseridas por um utilizador não são usadas nas pesquisas solicitadas por outros utilizadores. Como um utilizador expressa as suas preferências para uma pequena parte da rede, é necessário algoritmos de supervised learning para inferir as suas preferências para os outros arcos. O Cyclopath usa o algoritmo A* na pesquisa dos trajectos. O peso dos arcos é dado através de uma função que tem em conta o atributo denominado bikeability, o comprimento do arco e as preferências do utilizador especificadas na pesquisa do trajecto. 23 http://en.wikipedia.org/wiki/General Transit Feed Specification 24 http://ned.usgs.gov/ 25 http://ride.trimet.org/ 26 http://www.emtvalencia.es/geoportal/?lang=en otp 27 http://magic.cyclopath.org 28 http://www.dot.state.mn.us/ 29 http://www.metrocouncil.org/ 30 http://www.usgs.gov/ 15 Este sistema não resolve o problema descrito nesta dissertação pois as contribuições dos utilizadores não são partilhadas com o resto da comunidade. O objectivo deste sistema é devolver um trajecto consoante o perfil do utilizador que solicita a sua pesquisa. É de referir que o conceito bikeability é muito vago, não sendo consensual entre os utilizadores de bicicleta. Apenas em 53% dos casos, os utilizadores classificaram um troço com o mesmo valor [18]. Os resultados obtidos sugerem que sistemas personalizados de pesquisa de trajectos geram melhores trajectos através das preferências subjectivas indicadas pelos utilizadores. 2.3.5 OurWay O OurWay é um sistema colaborativo de planeamento de trajectos que usa feedback dos utilizadores para devolver trajectos que se adaptam aos seus interesses [11]. Este projecto é usado dentro de um edifı́cio e suporta navegação pedestre, sobretudo para utilizadores em cadeiras de rodas. O projecto utiliza ferramentas do OpenStreetMap para criar a rede do edifı́cio que é depois importada para o servidor. Utiliza o algoritmo A* para encontrar o caminho de menor custo entre dois nós na rede geográfica. Os utilizadores classificam os segmentos do trajecto relativamente a uma escala de acessibilidade (bom, não confortável ou inacessı́vel). As classificações fornecidas pelos utilizadores aplicam um peso aos arcos na rede. Baseado na agregação das classificações dos utilizadores, o servidor calcula o melhor trajecto entre duas localizações. Harald et al. [11] concluem que a ideia do OurWay é bastante promissora e que a sua escala para classificar os troços converge rapidamente. 2.3.6 CycleVancouver O CycleVancouver31 é também um planeador de trajectos para o meio de transporte bicicleta e actua na cidade de Vancouver no Canadá [21]. Foi desenvolvido na University of British Columbia (UBC) a pedido da comunidade dos ciclistas. Este sistema utiliza várias variáveis que influenciam a pesquisa de um trajecto: distância, inclinação, existência de espaços verdes/paisagem e poluição. Estas variáveis resultaram de um inquérito dirigido aos próprios ciclistas de Vancouver, sendo consideradas as mais relevantes na deslocação de um ciclista. Desta forma, o sistema disponibiliza cinco opções para o utilizador pesquisar por um trajecto: máximo declive, trajecto mais curto, trajecto menos poluı́do, trajecto mais plano e trajecto mais bonito. Se o utilizador escolher a opção máximo declive, pode especificar esse valor em percentagem. Quando o utilizador pesquisa por um trajecto, é apresentada diversa informação sobre o trajecto: distância total percorrida, tempo total estimado para realizar o trajecto, quantidade evitada de dióxido de carbono (CO2 ) emitido se o utilizador fosse de automóvel, calorias queimadas, nı́vel médio de poluição (medido pela concentração de dióxido de azoto, N O2 ) e o total de ganho de elevação. Além dessa 31 http://www.cyclevancouver.ubc.ca 16 informação, é possı́vel extrair um conjunto de coordenadas que define o trajecto para depois carregar no dispositivo GPS. Para o bom funcionamento do sistema é absolutamente necessário ter conhecimento dos mapas de poluição e de espaços verdes da cidade. 2.3.7 Planeamento de trajectos saudáveis para modos suaves Paulo et al. constroem um modelo conceptual de geração de trajectos saudáveis para os modos pedonal e ciclável [19]. Como o nome indica, o modelo preocupa-se com a saúde dos peões e dos utilizadores de bicicleta, e tem como objectivo reduzir a sua exposição à poluição sonora e atmosférica e o risco de desenvolverem doenças respiratórias e cardiovasculares. Este planeador gera percursos alternativos para os modos suaves, tendo em consideração não só a segurança, mas também as condições ambientais a que estes possam estar expostos. O método para determinar o trajecto saudável consiste na construção de uma infra-estrutura de informação, através da simulação dos nı́veis de ruı́do e dos ı́ndices de poluição atmosférica. Desta infraestrutura, é extraı́da a informação relevante para cada troço da rede (por exemplo, 69dBA, 10mg/m3 de P M 10 e 70mg/m3 de N Ox), que dá origem às impedâncias, e consequentemente a uma rede viária contaminada, que é utilizada no algoritmo de planeamento de itinerários. Este método pode ser dividido em duas fases: i) produção do mapa de poluição (sonora e atmosférica); ii) contaminação das distâncias. O algoritmo de planeamento determina o caminho de menor custo, sendo as distâncias reais dos troços da rede substituı́das pelas distâncias ”contaminadas”. Para calcular a distância ”contaminada”, utiliza-se variáveis do tipo fuzzy, de forma a estimar o impacto dos diferentes poluentes. Este modelo permite que os seus utilizadores escolham entre o trajecto mais curto, o trajecto menos poluı́do e o trajecto mais saudável. Paulo et al. [19] concluem que a utilização de um planeador de rotas saudáveis poderá minimizar os efeitos da poluição em todos os cidadãos, com particular relevância para os grupos mais vulneráveis da população, reduzindo eventuais problemas de saúde e custos associados. 2.4 Sumário Neste capı́tulo foi revisto vários sistemas para pesquisa de trajectos de bicicleta. Na Tabela 2.2 são comparados os diferentes sistemas enunciados de acordo com as várias caracterı́sticas apresentadas ao longo deste capı́tulo: tipos de sistemas, fonte de informação geográfica e algoritmos de pesquisa de trajectos. 17 Tabela 2.2: Tabela comparativa dos sistemas de pesquisa de trajectos 18 Capı́tulo 3 Arquitectura O CycleOurCity foi implementado com recurso a um sistema de pesquisa de trajectos de código aberto, o OpenTripPlanner. O sistema desenvolvido trata-se de um sistema baseado em informação que é voluntariamente mantida pelos próprios utilizadores de bicicleta. O sistema permite que os utilizadores pesquisem por um trajecto na cidade de Lisboa e classifiquem os troços do trajecto com base em escalas que medem a inclinação, segurança, existência de carris e o tipo de pavimento. Foi necessário o desenvolvimento de uma interface web especı́fica para os utilizadores de bicicleta, onde podem planear os seus trajectos e classificar os troços de cada trajecto de forma rápida e simples. Na Secção 3.1 é apresentada a arquitectura do CycleOurCity numa vista de módulos e são indicadas as funcionalidades de cada módulo existente. Na Secção 3.2, é descrito o OpenTripPlanner original e a necessidade de incorporar as classificações dos utilizadores para melhorar os trajectos devolvidos pelo OTP. Com a Secção 3.3, o capı́tulo termina dando ênfase ao sistema desenvolvido. 3.1 Descrição sucinta do funcionamento do sistema O CycleOurCity consiste numa aplicação cliente que corre num navegador web e num servidor que oferece o serviço de pesquisa de trajectos. A aplicação cliente permite ao utilizador pesquisar por trajectos segundo os critérios de distância, segurança e inclinação. Além disso, permite também ao utilizador classificar os troços segundo critérios de inclinação, segurança, existência de carris e tipo de pavimento. O servidor é responsável por responder a pedidos de pesquisa de trajectos e por armazenar as classificações submetidas pelos utilizadores. A arquitectura do sistema está representada numa vista de módulos na Fig. 3.1. O utilizador acede ao sistema através de um website onde pode visualizar o mapa da sua cidade. De seguida, introduz os parâmetros para a pesquisa de um determinado trajecto e o servidor devolve o trajecto que posteriormente é desenhado no mapa. O módulo denominado Gestor do grafo é responsável por construir o objecto Java que representa o grafo correspondente à rede viária. Os recursos usados para criar o grafo são os dados do OpenStreetMap da cidade em causa e a base de dados que guarda as classificações introduzidas pelos 19 Figura 3.1: Arquitectura do CycleOurCity utilizadores. Este grafo tem de ser criado e guardado em disco previamente, para depois ser usado pelo módulo denominado Planeador, que é invocado quando o utilizador envia um pedido HTTP ao servidor, ou seja, quando solicita uma pesquisa por um trajecto. O módulo planeador utiliza o algoritmo A* para encontrar o caminho de menor custo entre dois nós na rede. Este algoritmo percorre os arcos que são encapsulados previamente no objecto grafo guardado em disco. 3.2 OpenTripPlanner original O OpenTripPlanner já permite ao utilizador planear o seu trajecto dando a importância que desejar aos critérios distância, segurança e inclinação. Para calcular o caminho de menor custo é utilizada a seguinte fórmula que determina o custo de atravessamento de um arco s: Cs = l ∗ W dis + l ∗ f actorInclinacao ∗ W inc + l ∗ f actorSeguranca ∗ W seg vm (3.1) Os parâmetros W dis , W inc e W seg são os pesos especificados pelos utilizadores aos critérios distância, inclinação e segurança, respectivamente. O parâmetro l trata-se do comprimento do arco e vm é a velocidade média. O f actorInclinacao é determinado pelo OpenTripPlanner e depende dos dados de elevação. Por outro lado, o OTP estima um valor para o f actorSeguranca através das etiquetas (OSM) presentes no nó primitivo caminho que abrange esse arco. Como já referi anteriormente, para o sistema suportar o planeamento de trajectos precisa de construir o objecto grafo que é guardado em disco e depois usado durante a pesquisa de um trajecto. Este 20 objecto pode ser construı́do a partir de dados do OpenStreetMap, dados altimétricos e dados dos transportes públicos. Os planeadores para as cidades dos Estados Unidos usam o NED para terem conhecimento dos dados altimétricos. Contudo, em Portugal não há nenhuma base de dados livre de altitudes, e por isso o OTP não tem conhecimento desta informação para considerá-la na pesquisa de um trajecto. Desta forma, o f actorInclinacao toma o valor 1, e por isso o critério inclinação acaba por não ser utilizado. Relativamente ao f actorSeguranca, este é atribuı́do de acordo com o tipo de rua (por exemplo, primária ou secundária), se tem ou não ciclovia, e de acordo com a velocidade máxima permitida. Contudo, esta informação é pouco precisa, uma vez que a velocidade que se verifica numa rua pode ser muito maior do que a velocidade permitida. Além disso, há troços em que a velocidade máxima é 50Km/h e devido à intensidade do tráfego, os veı́culos automóveis não ultrapassam os 30Km/h. Com a colaboração dos utilizadores o sistema pode ter informação de inclinação e informação de segurança mais precisa para ter em conta na pesquisa de trajectos. Para tal, o nosso sistema permite que os utilizadores classifiquem os troços do trajecto devolvido segundo escalas de inclinação, segurança e tipo de pavimento. Desta forma, se essas classificações reflectirem ou estiverem próximas da realidade, o sistema tem a capacidade de devolver melhores trajectos. 3.3 OpenTripPlanner com as classificações dos utilizadores Em vez dos utilizadores classificarem o trajecto como um todo, o trajecto é dividido em troços de modo a permitir um mecanismo de classificações mais granular. Isto porque os trajectos podem conter não só troços muito bons, mas também troços muito maus em termos de segurança, inclinação e tipo de pavimento. 3.3.1 Escalas para classificação de troços Foi necessário definir escalas para classificação de troços segundo critérios de segurança, inclinação, existência de carris e tipo de pavimento. Apesar destas escalas terem sempre categorias subjectivas, tentámos elaborar escalas mais objectivas possı́vel. Para isto foi realizado um inquérito descrito no Apêndice A em que os utilizadores classificavam vários troços com diferentes escalas de segurança, inclinação e tipo de pavimento. Depois de analisar as respostas ao inquérito (ver Secção 5.1), escolhemos as escalas que achamos mais apropriadas, sabendo que nem sempre foram as mais consensuais. As Tabelas 3.1, 3.2, 3.3 e 3.4 mostram as categorias que constituem as escalas de inclinação, segurança, existência de carris e tipo de pavimento, respectivamente. A coluna denominada V alor, representa apenas a forma numérica da respectiva categoria, que depois é tida em conta nas funções de custo de cada critério. 21 Tabela 3.1: Escala para classificar a inclinação de um troço Tabela 3.2: Escala para classificar a segurança de um troço 3.3.2 Cálculo da reputação de um utilizador O funcionamento do nosso sistema é bastante parecido ao sistema da Wikipedia1 . Sistemas como este permitem a qualquer pessoa com acesso à Internet inserir/editar informação sobre os mais variados domı́nios para assegurar o crescimento do sistema. A principal preocupação com este tipo de sistemas prende-se com a credibilidade da informação introduzida. Utilizadores mal intencionados ou negligentes podem contribuir com informações erradas. No contexto do nosso sistema, caso todas as classificações fossem consideradas com igual importância, as classificações desses utilizadores poderiam prejudicar de forma significativa a qualidade dos trajectos planeados pelo sistema. Desta forma, a nossa solução utiliza um sistema de reputação para impedir que os utilizadores prejudiquem o desempenho do algoritmo de pesquisa de trajectos. De uma forma geral, a reputação de um utilizador é considerada a opinião geral que o sistema tem da qualidade das classificações desse utilizador. O sistema estima a reputação dos utilizadores de acordo com as classificações que estes inserem nos troços. Para isto, o sistema utiliza fórmulas já existentes para domı́nios colaborativos como a Wikipedia. Pantola et al. [16] propõem um sistema de reputação, onde a reputação de um autor é baseada na qualidade das suas contribuições e na credibilidade das suas classificações ao rever artigos elaborados por outros autores. Tal como nesse 1 http://www.wikipedia.org/ 22 Tabela 3.3: Escala para classificar um troço relativamente à existência de carris Tabela 3.4: Escala para classificar o tipo de pavimento de um troço sistema, a reputação de um utilizador varia entre -1 e +1. A reputação de um utilizador i, para um dado critério j, Rij , assume que, se o utilizador classificou um troço segundo o critério j de forma fidedigna, a sua classificação será próxima da média das classificações existentes segundo o mesmo critério nesse troço. Se as classificações feitas pelo Ui forem próximas das classificações médias para os diferentes troços classificados por Ui , o valor de reputação Rij será próximo de 1. Caso contrário, será próximo de -1. Nas expressões seguintes, o termo ρi refere-se ao conjunto de classificações realizado por Ui . Um factor importante no cálculo da reputação de um utilizador trata-se da medida de semelhança das classificações de um determinado critério j, Φji,s , definida na equação 3.4. A classificação sobre o critério j do utilizador i, Ui , no troço s, é denominada por ρji,s e corresponde a um dos valores indicados nas tabelas anteriores, referentes às escalas. Na equação 3.3, o termo Φj,n trata-se da medida de i semelhança da última classificação segundo o critério j feita pelo Ui . Sendo o termo y o peso da última classificação, a medida de semelhança da última classificação, Φj,n i , tem mais importância do que as anteriores (i.e. Φj,n−1 a Φj,1 i i ). A Equação 3.3 permite calcular o termo ψij,n que consolida a medida de semelhança das classificações sobre um determinado critério j feitas pelo Ui . ψ j,n i Rij = 0 ψij,n , se ρi 6= {} (3.2) , se ρi = {} ψ j,n−1 ∗ (1 − y) + Φj,n i ∗y i j,n−1 = ψi ∗ (n − 1) ∗ y + Φj,n i ∗y 0 23 , se n > 1 y 6= {}, n 6= 0 , se n ≤ 1 y 6= {}, n 6= 0 , se n = 0 (3.3) Φji,s +1.0 +0.5 = 0.0 −0.5 −1.0 , se ρji,s in µjs ± 0.5 ∗ σsj , se ρji,s in µjs ± 1.0 ∗ σsj , se ρji,s in µjs ± 1.5 ∗ σsj , se , se ρji,s ρji,s (3.4) in µjs ± 2.0 ∗ σsj not in µjs ± 2.0 ∗ σsj Note-se que as equações apresentadas anteriormente ignoram o facto das caracterı́sticas dos troços poderem variar ao longo do tempo. Isto é um aspecto relevante a resolver, ficando por isso para trabalho futuro. 3.3.3 Consolidar as classificações de um troço O conjunto de utilizadores que classificaram um determinado troço s é denotado por Us . É de referir que quando um utilizador classifica um troço, classifica-o segundo todos os critérios: inclinação, segurança, existência de carris e tipo de pavimento. Deste modo, se dois utilizadores classificaram o mesmo troço, existe duas classificações para cada critério. Quando há várias classificações sobre determinado critério j por troço, é necessário consolidar as classificações dos vários utilizadores num único valor ρjs para depois ser mapeado para um factor que é usado pelo sistema de pesquisa de trajectos. Apenas são consideradas as classificações de utilizadores com reputação positiva relativa às classificações sobre o critério j (Us+ : {Ui }∀i tal que Rij > 0) no cálculo de ρjs . A Equação 3.5 permite consolidar as múltiplas classificações sobre o critério j no troço s numa única classificação. ρjs = P ρji,s ∗Rij P j i Ri i ,∀i tal que Ui ∈ Us+ (3.5) , Us+ = {} O programa que incorpora as classificações no algoritmo de pesquisa de trajecto tem de aplicar esta fórmula para todos os troços existentes no grafo segundo os quatro valores possı́veis de j. Uma vez que é possı́vel não haver classificações ou não haver classificações feitas por utilizadores com reputação positiva num troço, o valor representa um troço que ainda não está classificado. 3.3.4 Cálculo do custo de atravessamento de um troço baseado nas classificações consolidadas A Equação 3.1 para cálculo do custo de atravessamento do troço s descrita anteriormente pode ser transformada na Equação 3.6: Cs = W dis ∗ Csdis + W inc ∗ Csinc + W seg ∗ Csseg (3.6) Os parâmetros W dis , W inc e W seg continuam a ser os pesos especificados pelos utilizadores aos critérios distância, inclinação e segurança, respectivamente. Nesta forma, Csdis , Csinc e Csseg são as 24 funções de custo para o troço s segundo os mesmos critérios. Função de custo para o critério distância Este critério prende-se absolutamente com o comprimento do troço, representado por l. Assumindo que a velocidade (vm ) é constante, o tempo para percorrer determinado troço depende apenas do seu comprimento. Como a função de factor de custo deste critério toma o valor unitário, a função de custo da distância é o próprio tempo de atravessamento, t (Eq. 3.7). Cdis = t = l vm (3.7) Função de custo para o critério inclinação A inclinação entra na função de custo como um tradutor do esforço do ciclista – quantidade de energia que um ciclista tem de despender para se deslocar num troço com um certo declive –, fazendo com que o tempo de atravessamento aumente no caso dos troços com declive ascendente. Nos troços com declive descendente, o esforço é menor e a velocidade aumenta, reduzindo assim o tempo de atravessamento do troço. As funções que modelam o factor e o custo da inclinação são descritas nas Equações 3.8 e 3.9, respectivamente. Fsinc 8 5 1.5 = 1 0.75 0.6 , se ρinc =1 s =2 , se ρinc s =3 , se ρinc s =4 , se ρinc s (3.8) , se ρinc =5 s =6 , se ρinc s Csinc = t ∗ Fsinc (3.9) Os factores apresentados na Equação 3.8 foram escolhidos e utilizados para fazer a avaliação do sistema. Contudo, é muito importante uma análise de sensibilidade aos factores escolhidos de modo a calibrar o sistema. Esta análise não foi feita e por isso será alvo de trabalho futuro. Função de custo para o critério segurança Para a função do factor de segurança (Eq. 3.10) foram seleccionados valores que penalizam o seu custo de atravessamento nos troços com existência de tráfego automóvel, beneficiando os atravessamentos por troços onde não é permitido tráfego automóvel. A função de custo do segurança é apresentada na Equação 3.11 em que o custo de atravessamento (tempo) é multiplicado uma vez mais pelo factor de custo da segurança. 25 Fsseg 6 3 1.5 = 1.1 0.75 0.6 , se ρseg =1 s , se ρseg =2 s , se ρseg =3 s , se ρseg =4 s (3.10) , se ρseg =5 s , se ρseg =6 s Csseg = t ∗ Fsseg (3.11) Assim como os factores de inclinação apresentados anteriormente, os factores de segurança não foram alvo de uma análise detalhada. Estes factores foram escolhidos, olhando para a forma como o OpenTripPlanner original atribui os mesmos factores consoante as etiquetas do OSM. É de referir que as classificações dadas pelos utilizadores sobre o tipo de pavimento e existência de carris não chegaram a ser utilizadas no cálculo do custo de atravessamento dos troços. Estas classificações deveriam ser usadas na Equação 3.10. 26 Capı́tulo 4 Implementação Neste capı́tulo são apresentadas as ferramentas, tecnologias e abordagens utilizadas para resolver a problemática imposta e atingir os objectivos inicialmente propostos. Para o desenvolvimento do CycleOurCity, escolhemos o sistema OTP para usar como serviço de pesquisa de trajectos. Para além deste sistema já permitir a pesquisa de um trajecto segundo os critérios mais relevantes na deslocação de um utilizador de bicicleta, tem uma grande comunidade de programadores a desenvolverem novas funcionalidades e a melhorarem constantemente o código. Inicialmente o código do OTP foi importado para o Eclipse, para que desta forma fosse possı́vel estudar o código e proceder a todas as alterações necessárias para a criação da solução proposta. Estas alterações consistiram na geração de um grafo com o conhecimento das classificações dos utilizadores e na alteração da RESTful API do OTP para devolver os troços individuais de um trajecto de modo a estes serem identificados do lado da interface para poderem ser classificados. 4.1 Geração do grafo com as classificações dos utilizadores O OTP usa os dados do OpenStreetMap para construir o grafo que modela a rede viária, ao qual são aplicados um conjunto de algoritmos de cálculo do caminho de menor custo, nomeadamente o algoritmo A*. A configuração usada para se construir o grafo encontra-se num ficheiro XML, denominado graphbuilder.xml. Neste ficheiro são definidos os diferentes tipos de dados necessários para construir o grafo. No caso do sistema proposto, só é necessário importar os dados do OSM. Note-se que a geração do grafo pode ser um processo demorado, dependendo do tamanho dos dados do OSM. Para os troços existentes no grafo terem conhecimento do seu novo custo de atravessamento foram adicionados dois atributos, um para o custo de atravessamento de acordo com a segurança e outro baseado na inclinação. Foi desenvolvido um módulo que permite calcular as reputações dos utilizadores, e atribuir os custos de atravessamento aos troços com base nas equações apresentadas no Capı́tulo 3. Este módulo faz parte do módulo Gestor do Grafo, enunciado no capı́tulo anterior. As classificações submetidas pelos utilizadores são guardadas numa base de dados MySQL e por 27 isso não têm efeito imediato no sistema de pesquisa de trajectos, isto é, apenas são consideradas quando o grafo em memória é actualizado. Contudo, este grafo pode ser actualizado várias vezes ao dia. 4.2 Alteração da RESTful API do OTP Foi também necessário configurar o componente servidor web para utilizar o grafo serializado em disco com as classificações dos utilizadores. Os ficheiros que constituem o componente do servidor web são compactados no ficheiro opentripplanner-api-webapp.war. Este ficheiro no formato WAR (Web Application Archive) é simplesmente uma estrutura de directórios de uma aplicação web que posteriormente é copiado para a pasta webapps do servidor Tomcat. Quando este servidor é iniciado, os ficheiros são automaticamente instalados, ficando disponı́veis para utilização. Este componente trata-se de uma aplicação web que expõe uma RESTful API para permitir o planeamento de trajectos solicitados pelos clientes. Na presente implementação do OTP, este componente precisa sempre de ser instalado para fazer uso de um grafo mais recente. No entanto, os programadores do OTP estão a desenvolver meios para a aplicação web ser capaz de utilizar outro grafo serializado em disco dinamicamente. Além de ser preciso alterar os ficheiros de configuração deste componente, foi necessário alterar a resposta devolvida quando o utilizador solicita uma pesquisa de trajecto. A resposta devolvida pelo OTP original, não permitia identificar os troços no lado da interface. A resposta devolvia um vector de legs que são um conjunto de troços contı́nuos percorridos com a bicicleta, ou a pé. No nosso sistema, a resposta tem um vector de troços e estes são identificados do lado do cliente pelo seu identificador. Na Fig. 4.1 é mostrada uma parte da resposta enviada pelo componente servidor do OTP. Note que neste caso como todos os troços (streetEdges) são percorridos com recurso à bicicleta, existe apenas um leg. Figura 4.1: Resposta do CycleOurCity a um pedido de pesquisa de trajecto 4.3 Realização da interface web A interface web é o componente que o utilizador tem acesso através de um navegador web. Foi necessário criar uma nova interface web especı́fica para os utilizadores de bicicleta. Esta interface além 28 de permitir a pesquisa de trajectos, permite aos utilizadores consultarem os troços dos trajectos por classificar e classificá-los. Como é mostrado na Fig. 4.3, a interface disponibilizada pelo OTP é composta por dois painéis, um onde é apresentado o mapa, e o outro onde o utilizador define os parâmetros para o planeamento do seu trajecto. Esta interface é construı́da com base no OpenLayers, um software para criação de mapas. A interface implementada tem apenas um painel, isto é, o mapa ocupa toda a janela do navegador web. Os parâmetros para pesquisa de um trajecto, aparecem numa div HTML composta por dois separadores ”Planear” e ”Classificar” sobre o mapa. Estes dois separadores servem para os utilizadores planearem e classificarem os trajectos, respectivamente. A interface do CycleOurCity está ilustrada nas Figuras 4.2 e 4.4. Este componente foi construı́do tendo como base o software Leaflet1 que é bastante mais recente do que o OpenLayers. O Leaflet é uma biblioteca JavaScript de código aberto e fornece ferramentas para criar mapas interactivos na web. A interface comunica com o componente servidor do OTP através de pedidos AJAX (Asynchronous JavaScript and eXtensible Markup Language). O componente servidor do OTP recebe um pedido HTTP de pesquisa de trajecto e devolve o trajecto planeado no formato JSON. Este objecto é tratado do lado do cliente, sendo posteriormente desenhado no mapa. A interface permite também a um utilizador com sessão iniciada, classificar os troços pretendidos com formulários HTML, que depois de submetidos são tratados por scripts php que processam os dados do formulário e inserem as classificações dos utilizadores na base de dados. A Fig. 4.4 mostra a interface com o separador ”Classificar” aberto, mostrando um troço seleccionado (troço colorido a cinzento) a ser classificado. Figura 4.2: Interface do CycleOurCity - separador ”planear” aberto 1 http://leafletjs.com/ 29 Figura 4.3: Interface do OpenTripPlanner Figura 4.4: Interface do CycleOurCity - separador ”classificar” aberto 30 Capı́tulo 5 Avaliação Neste capı́tulo começa-se por justificar as escalas de classificação de troços utilizadas no sistema. Na Secção 5.2 são descritos os testes com utilizadores reais de modo a podermos avaliar os trajectos devolvidos pelo CycleOurCity e compará-los com os trajectos devolvidos pelo OTP. Concluı́mos este capı́tulo com a avaliação quantitativa realizada ao CycleOurCity. 5.1 Escolha de escalas para classificação de troços Foi realizado um primeiro inquérito aos utilizadores de bicicleta com o objectivo de perceber se, quando solicitados para classificar vários aspectos de um troço ciclável, diferentes utilizadores de bicicleta respondem de forma semelhante. O inquérito, assim como os resultados, podem ser consultados no Apêndice A. O inquérito englobava um conjunto de oito troços, e os inquiridos classificavam cada troço que conheciam segundo diferentes escalas de segurança, inclinação e tipo de pavimento. Desta forma, pretendia-se saber quais as escalas mais consensuais ou objectivas para avaliar cada critério, de modo a serem utilizadas no sistema. O inquérito foi difundido através de um formulário online por duas listas de e-mails de utilizadores de bicicleta da cidade de Lisboa, nomeadamente pela ”bicicletada lx” e pela lista de e-mails da Associação pela Mobilidade Urbana em Bicicleta (MUBI). O inquérito decorreu entre 22 de Julho e 13 de Agosto, permitindo recolher 51 respostas. A Tabela 5.1 sintetiza a análise das respostas ao inquérito. Além das escalas realizadas (escalas S2, S3, I2, I3, T P 2 e C), foram utilizadas escalas de segurança (S1), inclinação (I1) e tipo de pavimento (T P 1) propostas na dissertação de Rosa Félix [9], e ainda a escala de classificação presente no sistema Cyclopath (B) [18]. Como a tabela indica, a escala utilizada no Cyclopath, com o identificador B, foi a que teve maior desvio padrão, tal como já era esperado devido a ser uma escala muito subjectiva. Relativamente ao critério segurança, a escala proposta por Rosa Félix (escala S1) obteve, em média, o menor desvio padrão. Contudo, esses valores justificam-se pois a escala tem apenas cinco catego31 rias, quando as outras escalas de segurança (S2 e S3) utilizadas têm seis categorias. Além disso, as escalas S2 e S3 tem quatro categorias para troços com tráfego automóvel e a escala S1 tem apenas três. A escala de Rosa é baseada na hierarquia da rede viária (”via de distribuição primária”, ”via de distribuição secundária”, etc.) e por isso pode resultar num mau indicador da velocidade e da intensidade do tráfego existentes num troço. Por outro lado, a escala S2 (a segunda escala com menor desvio padrão) baseia-se na velocidade e intensidade do tráfego automóvel, observadas pelos utilizadores de bicicleta e não da velocidade máxima permitida num troço. Assim sendo, foi escolhida a escala S2 por ser bastante mais precisa. Relativamente ao critério de inclinação, a escala da Rosa (escala I1) com os declives em percentagem teve o maior desvio padrão, pelo que optámos pela escala I2 por ser a mais consensual entre os utilizadores de bicicleta. A escala de Rosa (escala T P 1) para avaliar o tipo de pavimento junta categorias como ”betuminoso”, ”com perturbações”, ”com carris”, ”empedrado” e ”empedrado com carris”. De acordo com as respostas obtidas, como há mais que uma categoria que se aplica a um determinado troço, os utilizadores tendem a divergir. Na Fig. 5.1 é mostrado um gráfico que mostra a distribuição de respostas num troço da Rua da Prata com a escala T P 1, ilustrando o referido anteriormente. Figura 5.1: Classificações com a escala de Rosa para avaliar o tipo de pavimento - Rua da Prata Decidimos então elaborar uma escala só para avaliar um troço quanto à existência de carris (C), e outra escala (T P 2) para distinguir entre o tipo de pavimento betuminoso e empedrado, em boas ou más condições. Como já era esperado, a escala que avalia os carris é a mais objectiva de todas. 5.2 Testes com utilizadores reais Para a realização das experiências com o CycleOurCity foi necessário definir uma área do concelho de Lisboa. Esta não podia ser uma área muito grande, pois o objectivo era ter a maioria dos troços da área 32 Tabela 5.1: Desvio padrão obtido, em média, para cada escala classificados, e cada troço ter mais do que uma classificação. A área escolhida tem aproximadamente 9000 troços e está representada na Fig. 5.2. Esta área inclui ruas com grande declive e alternativas a estas mais suaves, ruas com tráfego perigoso, com piso em más condições e ruas alternativas com tráfego menos intenso e de melhor pavimento. A área está contida nos seguintes limites: latitude mı́nima de 38.7188, longitude mı́nima de -9.1571; latitude máxima de 38.7357, longitude máxima de -9.1364. Figura 5.2: Área considerada na experiência 5.2.1 Primeira fase Para a realização da primeira experiência, foram elaborados vários guiões e estes foram distribuı́dos pelos vários participantes. Esta experiência começou dia 19 de Agosto e decorreu durante aproximadamente um mês. Foi pedido aos vários participantes para classificarem um conjunto de dez trajectos 33 definidos no guião com a ajuda de um vı́deo1 . Caso não conhecessem alguns troços, era pedido para se deslocarem ao local ou para utilizarem o Google Street View. Duas semanas depois, devido à existência de poucas classificações (aproximadamente 500 classificações), foi pedido aos utilizadores para planearem os seus próprios trajectos e classificarem os troços que conhecessem. Foi então realizado mais um vı́deo2 que mostra um utilizador a planear o seu trajecto e a classificar os troços. Para classificarem um determinado trajecto definido no guião, os participantes carregavam na hiperligação correspondente ao trajecto e eram reencaminhados automaticamente para o sistema. Desta forma, os locais de partida e de chegada de cada trajecto apareciam logo marcados no mapa. Em seguida, pesquisavam pelo trajecto e classificavam os troços do trajecto devolvido. Apesar de terem sido entregues 50 guiões, apenas 36 utilizadores introduziram classificações. Além disso, foram poucos os utilizadores a classificarem todos os trajectos definidos no guião. Grande parte das classificações resultaram de utilizadores que planearam os seus próprios trajectos e classificaram os troços que conheciam. Ao todo foram reunidas 1358 classificações de cada critério e o sistema tomou conhecimento de 661 troços classificados. Os troços mais classificados tinham cerca de 11 classificações, havendo troços com apenas uma classificação. Na Fig. 5.3 são mostrados a azul os troços classificados nesta experiência. Na Fig. 5.4 são apresentados os troços classificados como tendo declive igual ou superior a zero. A amarelo são marcados os troços classificados com a categoria ”plano”; a laranja os troços classificados com ”Subida sem esforço”; a vermelho os troços classificados com ”Subida com esforço” e por fim a categoria ”Subida impraticável para a maioria das pessoas” está representada num vermelho mais escuro. Figura 5.3: Troços classificados durante a experiência 1 Disponı́vel 2 Disponı́vel em http://www.youtube.com/watch?v=6KdGuEWMrC0 em http://www.youtube.com/watch?v=5cCmpBB8Gyg 34 Figura 5.4: Troços classificados com declive ascendente 5.2.2 Segunda fase Esta segunda fase teve o objectivo de comparar os trajectos devolvidos pelo sistema com e sem o conhecimento das classificações introduzidas pelos utilizadores da primeira experiência. Foi necessário escolher uma área interior à referida anteriormente para que os trajectos devolvidos não fossem constituı́dos por troços fora da área assinalada. Desta forma, dividimos a área como está representado na Fig. 5.5. O objectivo foi encontrar 4 pontos (A, B, C e D), o mais distantes possı́vel para se exercitar a maior área possı́vel do mapa, mas assegurando que não estavam demasiado perto do limites do mapa, para evitar trajectos fora da área considerada. De seguida, escolhemos como trajectos para serem avaliados, o trajecto de A para B e o trajecto de C para D. Para avaliarmos os trajectos, realizou-se um inquérito que aborda quatro pares de trajectos. O inquérito, assim como os resultados, podem ser consultados no Apêndice B. Este inquérito recolheu 31 respostas. Os primeiros dois pares de trajectos têm como locais de partida e de chegada, os pontos A e B, respectivamente. Enquanto que um par de trajectos é obtido com o critério inclinação no máximo, o outro é obtido com o critério segurança no máximo. O mesmo acontece para os dois últimos pares, tendo como locais de partida e de chegada, os pontos C e D, respectivamente. Para cada par de trajectos apresentado, os inquiridos respondiam a uma escala de Likert com cinco categorias (”Discordo totalmente; Discordo; Nem discordo, nem concordo; Concordo; Concordo totalmente”). A escala de Likert pretendia saber se os trajectos apresentados eram tão seguros como o melhor trajecto, de acordo com a interpretação subjectiva de cada utilizador, entre um par de pontos. 35 Desta forma, o inquérito estava formulado não só para permitir a comparação dos dois trajectos, mas também para permitir a comparação de cada trajecto com o melhor trajecto possı́vel. Note-se que o CycleOurCity poderia devolver um trajecto melhor do que o devolvido pelo OTP, mas que mesmo assim não se aproximasse do melhor trajecto. Para isto, os inquiridos eram solicitados, não só a concordarem ou discordarem das afirmações, mas também a informarem o seu nı́vel de concordância ou discordância quanto às afirmações utilizadas (”O trajecto X é tão seguro/plano como o melhor trajecto em que pensei.”). Os resultados recolhidos foram alvo de uma análise estatı́stica descritiva, possibilitando a sumarização dos dados em várias tabelas de fácil leitura e compreensão. Figura 5.5: Área com os locais de partida e de chegada assinalados Trajectos A-B obtidos com o critério segurança Como é descrito no Apêndice B, o inquérito começava por pedir aos participantes para pensarem no trajecto mais seguro entre os pontos A e B. De seguida era mostrado o trajecto obtido com o OTP (Fig. 5.7), juntamente com o trajecto obtido com o CycleOurCity (Fig. 5.6). Os participantes não tinham conhecimento do sistema utilizado para cada trajecto. Os resultados obtidos (ver Tabela 5.2) sugerem que o trajecto obtido com o OTP original é o mais seguro e é aquele que mais se aproxima do melhor trajecto possı́vel em termos de segurança entre os pontos A e B. 63% dos inquiridos respondem à afirmação relativa a este trajecto com as categorias ”Concordo” e ”Concordo Totalmente”. Apenas 13% dos inquiridos discordam da afirmação. As medidas de tendência central utilizadas, mostram que a moda e a mediana têm o valor 4, que corresponde à categoria ”Concordo”. Relativamente ao trajecto obtido com o CycleOurCity, apenas 35% dos inquiridos concordam com a afirmação. A maioria, 54% dos inquiridos, respondem de forma negativa. Para este trajecto, os valores da moda e da mediana correspondem à categoria ”Discordo”. O trajecto obtido pelo nosso sistema (ver Fig. 5.6) leva os utilizadores de bicicleta pelo Parque 36 Figura 5.6: Trajecto A-B obtido com o critério segurança - CycleOurCity Figura 5.7: Trajecto A-B obtido com o critério segurança - OpenTripPlanner Eduardo VII. Estes troços são obviamente seguros pois não há tráfego automóvel. O trajecto evita também ruas com grande intensidade de tráfego como a Rua Tomás Ribeiro e a Rua Luciano Cordeiro. Desta forma, os resultados obtidos não se aproximam dos resultados que eram esperados. Os resultados devem-se à grande subjectividade do critério segurança. A escala considerada para os utilizadores classificarem um troço baseia-se exclusivamente na existência de tráfego automóvel, da 37 velocidade e da intensidade do tráfego. O sistema dá preferência a vias com pouco ou nenhum tráfego automóvel, e isso é bastante visı́vel com o trajecto devolvido. Contudo, a segurança tem em conta outros factores, como por exemplo, o número de mudanças de direcção do trajecto, as vias que são necessárias atravessar nas intersecções com tráfego automóvel, etc. Tabela 5.2: Resultados dos trajectos A-B obtidos com o critério segurança Trajectos A-B obtidos com o critério inclinação Neste cenário era pedido aos participantes para pensarem no trajecto mais plano entre os pontos A e B. Os resultados obtidos indicam que o trajecto devolvido pelo nosso sistema (Fig. 5.8) é muito melhor em termos de inclinação que o trajecto obtido pelo sistema OTP (Fig. 5.9) . O trajecto devolvido pelo OTP devolve o trajecto de menor distância entre os pontos A e B. Os troços finais desse trajecto têm um declive considerável, nomeadamente, os troços da rua Alameda Santo António dos Capuchos e o troço da Rua Dr. Almeida Amaral. Relativamente aos resultados (ver Tabela 5.3), 67% dos inquiridos discordam que o trajecto devolvido pelo OTP seja o mais plano para os pontos considerados. Por outro lado, 81% dos inquiridos concordam que o trajecto devolvido pelo nosso sistema está próximo do melhor trajecto em termos de inclinação. A mediana e a moda para cada trajecto, permitem afirmar as diferenças em termos de inclinação entre os dois trajectos. Tabela 5.3: Resultados dos trajectos A-B obtidos com o critério inclinação Trajectos C-D obtidos com o critério segurança Neste cenário, as diferenças em termos de segurança entre os dois trajectos obtidos não são visı́veis pelos utilizadores. O trajecto obtido pelo OTP é mostrado na Fig. 5.11 e o trajecto obtido pelo nosso 38 Figura 5.8: Trajecto A-B obtido com o critério inclinação - CycleOurCity Figura 5.9: Trajecto A-B obtido com o critério inclinação - OpenTripPlanner sistema é apresentado na Fig. 5.10. Em ambos os trajectos, a categoria mais frequente é ”Concordo”, mas a mediana é maior para o trajecto devolvido pelo OTP. Os resultados são apresentados na Tabela 5.4. 61% dos inquiridos concordam que o trajecto devolvido pelo OTP se trata do melhor trajecto entre os pontos C e D. Apenas 26% respondem negativamente à afirmação. 39 Por outro lado, apenas 45% dos inquiridos respondem de forma positiva ao trajecto devolvido pelo nosso sistema. 29% dos inquiridos respondem com a categoria ”Nem discordo, nem concordo”. O trajecto obtido com o nosso sistema passa por ruas com menor tráfego automóvel, mas tem muitas mudanças de direcção, que como já referi, pode afectar a segurança de um utilizador de bicicleta. Figura 5.10: Trajecto C-D obtido com o critério segurança - CycleOurCity Figura 5.11: Trajecto C-D obtido com o critério segurança - OpenTripPlanner 40 Tabela 5.4: Resultados dos trajectos C-D obtidos com o critério segurança Trajectos C-D obtidos com o critério inclinação De acordo com os resultados, o trajecto devolvido pelo nosso sistema (Fig. 5.12) é melhor do que o trajecto devolvido pelo OTP (Fig. 5.13). Os resultados são apresentados na Tabela 5.5. Dos 58% inquiridos que concordam que o trajecto se aproxima do trajecto mais plano, 23% concordam totalmente. Há ainda 25% de respostas negativas. Relativamente ao trajecto planeado pelo OTP, 45% dos participantes respondem em concordância com a afirmação, dos quais apenas 6% concordam totalmente. Para este trajecto, 33% das respostas são negativas. O trajecto devolvido pelo OTP passa pela Avenida Duque de Loulé. Olhando para o mapa de declives de Lisboa elaborado por Rosa Félix [9], a Avenida Duque de Loulé tem alguns troços com declive entre 5% e 8%. Por outro lado, o trajecto devolvido pelo nosso sistema sugere uma alternativa mais suave em termos de inclinação, a Avenida Fontes Pereira de Melo. Figura 5.12: Trajecto C-D obtido com o critério inclinação - CycleOurCity 41 Figura 5.13: Trajecto C-D obtido com o critério inclinação - OpenTripPlanner Tabela 5.5: Resultados dos trajectos C-D obtidos com o critério inclinação 5.3 Avaliação quantitativa Na Secção 5.3.1 comparo os tempos de resposta do CycleOurCity com os tempos de resposta obtidos com o sistema OTP para mostrar que o facto do nosso sistema usar as classificações dos utilizadores em nada afecta o desempenho do planeamento dos trajectos, uma vez que apenas alteramos os valores do custo de atravessamento nos troços classificados. Na Secção 5.3.2 é estimado o tamanho da base de dados que guarda as classificações dos utilizadores. Por fim, na Secção 5.3.3 são apresentados os tempos para o sistema actualizar o grafo com as novas classificações. 5.3.1 Tempo de resposta Para compararmos os tempos de resposta do nosso sistema com o sistema original, foram escolhidos vários pontos de partida e de chegada dentro da área escolhida para a experiência referida anteriormente. Estes pontos foram escolhidos ao longo de uma recta, como mostra a Fig. 5.14. Foram planeados os trajectos com pares de pontos partida-chegada, A-B, A-C, A-D, A-E, E-D, E-C, E-B e E-A, 42 dando igual importância aos critérios segurança, inclinação e distância. Como podemos observar, na Fig. 5.15, em alguns trajectos, o tempo de planeamento obtido com o nosso sistema é superior ao tempo obtido com o sistema OTP, e noutros acontece o inverso. Apesar de ser solicitada a mesma pesquisa nos dois sistemas, como o custo de atravessamento dos troços é diferente, o algoritmo A* acaba por não percorrer os mesmos troços. Ou seja, para uma determinada pesquisa por um trajecto, a nossa solução pode gerar e/ou expandir mais vértices do que a solução do OTP, ou vice-versa. Figura 5.14: Pontos definidos para avaliar o planeamento de trajectos Figura 5.15: Tempos de planeamento 5.3.2 Espaço de memória necessário Em termos de espaço de memória, a Fig. 5.16 mostra o tamanho da base de dados em função do número de classificações existente. Note-se que uma classificação num troço corresponde na verdade a quatro classificações para o mesmo troço, segundo os quatro critérios possı́veis. 43 A base de dados tem de ter uma tabela com todos os arcos presentes no grafo. Devido a esse motivo, o tamanho inicial da base de dados, é aproximadamente 32 MB, isto considerando o grafo para a cidade de Lisboa. Podemos observar que para um número considerável de classificações, 500.000, é necessário aproximadamente 178 MB para armazenar essas classificações. Hoje em dia, uma base de dados com aproximadamente 200 MB não é problema, havendo bases de dados a serem processadas com Terabytes de informação. Figura 5.16: Tamanho da base de dados em função do número de classificações 5.3.3 Tempo para actualizar o grafo As classificações dos utilizadores não são tidas em conta logo que são submetidas, sendo necessário reconstruir o grafo para estas serem consideradas. A operação para actualizar o grafo é para ser executada uma ou duas vezes por dia. O tempo para actualizar o grafo pode ser divido em três parcelas: tempo de carregamento do grafo, tempo para incorporar as classificações no grafo e o tempo de escrita do grafo com os novos pesos em disco. Enquanto que o tempo de escrita do grafo consiste no tempo que o sistema leva para serializar o objecto grafo num ficheiro, o tempo de carregamento consiste no processo inverso. A Tabela 5.6 mostra o tempo de carregamento e de escrita do grafo, assim como o número de troços existente para cada uma das áreas consideradas. O tempo para incorporar as classificações no grafo abrange obviamente o tempo de cálculo da reputação dos utilizadores e o tempo de consolidar as classificações por troço. Na Tabela 5.7 são indicados tempos para incorporar classificações no grafo de Lisboa. A segunda coluna denominada ”Classificações por troço” corresponde ao número de utilizadores distintos que classificaram os troços. Como se pode observar, se considerarmos o grafo da cidade de Lisboa e se existirem 5000 troços 44 Tabela 5.6: Tempos de carregamento e escrita dos grafos distintos classificados e 100 classificações por cada troço feitas por utilizadores distintos, o tempo que o sistema demora para actualizar o grafo é dado pela soma do tempo de carregamento (71, 81s), do tempo de incorporar as classificações (421, 48s) e o tempo de escrita do novo grafo (3, 76s), ou seja, aproximadamente 8min. Este tempo mostra que é absolutamente possı́vel actualizar um grafo com estas caracterı́sticas várias vezes ao dia. Tabela 5.7: Tempos para incorporar as classificações no grafo de Lisboa 45 46 Capı́tulo 6 Conclusões e Trabalho Futuro 6.1 Conclusões Nesta dissertação foi desenvolvido um sistema que lida com o problema da falta de informação sobre diversos atributos da rede viária, nomeadamente aqueles que são relevantes na pesquisa de trajectos para o meio de transporte bicicleta. Para resolver este problema, o sistema tem a capacidade de reunir essa informação a partir das classificações dadas por utilizadores voluntários, e utilizá-la na pesquisa de trajectos de forma a devolver melhores trajectos. O desenvolvimento do sistema CycleOurCity compreendeu várias fases distintas. Começou-se por estudar o código e o funcionamento do sistema OpenTripPlanner. De seguida, desenvolveu-se a interface, sendo necessária a realização do inquérito para determinar as escalas de classificação. Entretanto, decorreu a primeira experiência com utilizadores reais, cujo objectivo era reunir o máximo número de classificações numa área bem definida de Lisboa. Por fim, tendo o sistema a incorporar as classificações nos troços, realizou-se um segundo inquérito para avaliar os trajectos devolvidos pelo sistema. O CycleOurCity permite a pesquisa de trajectos segundo os critérios mais relevantes na deslocação de um utilizador de bicicleta. Além disso, os utilizadores podem especificar diferentes pesos aos diferentes critérios. A nossa abordagem difere de muitos outros sistemas de planeamento de trajectos porque utilizamos feedback dos utilizadores na pesquisa dos trajectos. O CycleOurCity utiliza o OpenTripPlanner para permitir o planeamento de trajectos. Além de construir o grafo que constitui a rede viária com os dados fornecidos pelo OpenStreetMap, utiliza as classificações dos utilizadores presentes numa base de dados, para ter conhecimento da inclinação, segurança e tipo de pavimento dos diversos troços. O CycleOurCity revelou-se viável para a área considerada no Capı́tulo 5 para avaliar o planeamento de trajectos. No entanto, o sistema não está obviamente restrito a esta área e pode ser estendido para a cidade de Lisboa. Os resultados do segundo inquérito permitem concluir que o nosso sistema cumpre os objectivos da dissertação, conseguindo devolver melhores trajectos do que o OTP original, sobretudo quando se considera o critério inclinação. 47 6.2 Trabalho futuro Como trabalho futuro, pretende-se disponibilizar o CycleOurCity publicamente para uso real. Uma vez que o desempenho do sistema depende da quantidade e da qualidade das classificações existentes, o sistema tem de possibilitar uma maneira dos utilizadores poderem visualizar quais os troços que precisam de classificações. É sugerida a implementação de uma camada de base do mapa que realce os troços com poucas ou nenhumas classificações de forma a ajudar os utilizadores do sistema que querem classificar os troços. Este tipo de sistema é muito interessante para ser consultado a partir de dispositivos móveis, nos momentos em que os utilizadores de bicicleta mais precisam para se deslocarem. Para tal, é fundamental que haja uma versão do website para dispositivos de dimensões reduzidas (nomeadamente para smartphones e tablets), ou então a existência de uma aplicação para diferentes sistemas operativos, como o Android e o iOS. Além disso, podemos tirar partido do GPS e de outros sensores, como o acelerómetro e o giroscópio, das plataformas móveis de forma a minimizar o esforço do utilizador a classificar os troços do trajecto percorrido. O formulário para classificação de um troço pode ser preenchido parcialmente com a informação dos sensores, poupando assim tempo ao utilizador. Para tornar isto possı́vel, é necessário mapear os pontos GPS para troços do OpenTripPlanner e estimar o declive dos troços a partir das informações obtidas com os sensores. 48 Apêndice A Inquérito para determinar as melhores formulações A.1 Descrição do inquérito Este inquérito teve como principal objectivo, encontrar as formulações (escalas) mais consensuais entre a comunidade dos utilizadores de bicicleta para classificar um troço segundo critérios de segurança, inclinação e tipo de pavimento. O inquérito abordou um conjunto de 8 troços. Para cada troço, caso o inquirido o conhecesse, era obrigado a classificá-lo com todas as formulações. Além de terem sido utilizadas escalas já existentes, realizámos duas formulações para avaliar o critério segurança, duas para avaliar o critério inclinação e duas para avaliar o tipo de pavimento. De seguida são apresentadas as formulações utilizadas no inquérito. Note que a informação contida entre os parênteses rectos não aparecia no inquérito. Entre parênteses rectos é descrito o critério avaliado, o identificador da escala (entre parênteses curvos), assim como a fonte da escala. [Escala do sistema Cyclopath (B): Bikeability] No geral, quão adequado é o troço para o uso da bicicleta? • Muito mau • Pouco adequado • Aceitável • Bom • Muito bom [Escala proposta pela Rosa Félix (S1): Segurança] Como classifica este troço quanto ao tipo de via? • Ciclovia • Via pedonal • Via de acesso local 49 • Via de distribuição secundária • Via de distribuição primária [Escala proposta pelos autores (S2): Segurança] Como classifica este troço relativamente à segurança? • Nenhum tráfego motorizado permitido, poucos ou nenhuns peões no caminho • Nenhum tráfego motorizado permitido, peões frequentemente no caminho • Tráfego motorizado pouco intenso, velocidades normalmente não passam dos 30km/h • Tráfego motorizado intenso, velocidades normalmente não passam dos 30km/h • Tráfego motorizado normalmente não passa dos 50km/h • Tráfego motorizado normalmente acima dos 50km/h [Escala proposta pelos autores (S3): Segurança] Como classifica este troço relativamente à segurança, mas agora com outra formulação? • Ciclovia • Velocidade observável até 30km/h, tráfego motorizado escasso • Velocidade observável até 30km/h, tráfego motorizado intenso • Velocidade observável até 50km/h, tráfego motorizado escasso • Velocidade observável até 50km/h, tráfego motorizado intenso • Velocidade observável superior a 50km/h [Escala proposta pelo Rosa Félix (I1): Inclinação] Como classifica este troço relativamente à inclinação, agora com outra formulação? • Inferior a -24% • Entre -24% e 0% • 0% • Entre 0% e 13% • Entre 13% e 20% • Superior a 20% [Escala proposta pelos autores (I2): Inclinação] Como classifica este troço relativamente à inclinação? • Descida acentuada • Descida suave • Plano • Subida sem esforço • Subida com esforço • Subida impraticável para a maioria das pessoas [Escala proposta pelos autores (I3): Inclinação] Como classifica este troço relativamente à inclinação, agora com outra formulação? 50 • Descida ı́ngreme • Descida • Plano • Ligeira subida • Subida média • Subida ı́ngreme [Escala proposta pela Rosa Félix (TP1): Tipo de pavimento] Como classifica o troço quanto ao tipo do pavimento? • Empedrado, calçada ou terra batida em boas condições • Empedrado, calçada ou terra batida difı́cil de pedalar • Asfalto/betuminoso em más condições (buracos, desnı́veis perigosos) • Asfalto/betuminoso em boas condições [Escala proposta pelos autores (TP2): Tipo de pavimento] Como classifica o troço quanto ao tipo de pavimento, agora com outra formulação? • Betuminoso • Com perturbações • Carris • Empedrado • Empedrado com carris [Escala proposta pelos autores (C): Carris] Como é o troço quanto à existência de carris? • Não tem carris • Tem carris ao nı́vel do pavimento • Tem carris salientes Depois de escolhidas as formulações, foi necessário definir 8 troços bem conhecidos no centro da cidade de Lisboa que cobrissem as várias categorias das diferentes formulações. Desta forma, escolheu-se troços das seguintes ruas: Av. Fontes Pereira de Melo, Av. Duque de Loulé, Av. da Liberdade (corredor central), Rua Garret, Rua do Ouro (ou Rua Áurea), Rua da Prata, Praça Dom Pedro IV e Av. Duque de Ávila. Para cada troço, utilizou-se uma imagem ao nı́vel da rua e uma imagem satélite, ambas retiradas do Google Maps. De seguida, são apresentadas as figuras utilizadas no inquérito. A.2 Resultados do inquérito Os resultados do inquérito são sumarizados na Tabela A.1. 51 Figura A.1: Av. Fontes Pereira de Melo. Figura A.2: Av. Duque de Loulé. Figura A.3: Av. da Liberdade (corredor central). 52 Figura A.4: Rua Garret. Figura A.5: Rua do Ouro. Figura A.6: Rua da Prata. 53 Figura A.7: Praça Dom Pedro IV. Figura A.8: Av. Duque de Ávila. 54 Tabela A.1: Desvio padrão para cada escala segundo determinado trajecto 55 Apêndice B Inquérito para avaliar o CycleOurCity Este inquérito foi realizado para os utilizadores de bicicleta avaliarem a qualidade dos trajectos devolvidos quando o sistema tem conhecimento das classificações introduzidas durante a primeira experiência. Como já referi na secção avaliação, foram considerados trajectos entre dois pares de pontos partidachegada, A-B e C-D (ver Fig. 5.5 na página 36). Para cada par de pontos, foram consideradas duas variáveis na pesquisa dos trajectos. A primeira variável é relativa ao sistema que se usa para planear os trajectos. Neste caso, utilizámos o OpenTripPlanner original e o CycleOurCity. A segunda variável é relativa ao critério que queremos maximizar na pesquisa do trajecto. Consideraram-se os critérios segurança e inclinação. O uso destas duas variáveis resulta em 4 trajectos para cada par de pontos partida-chegada. Para cada par de pontos partida-chegada, era pedido ao inquirido para pensar no trajecto mais seguro entre esses pontos. De seguida era mostrado uma figura com dois trajectos (por exemplo, a Fig. B.1), ambos obtidos com o critério segurança no máximo. Por fim, os utilizadores respondiam à seguinte escala de Likert, para os dois trajectos apresentados na imagem. O trajecto X é tão seguro como o melhor trajecto em que pensei. • Discordo totalmente • Discordo • Nem concordo, nem discordo • Concordo • Concordo totalmente Da mesma forma, para avaliar os trajectos de acordo com o critério inclinação, era pedido ao inquirido para pensar no trajecto mais plano entre os pontos partida-chegada estipulados. Neste caso, os trajectos eram obtidos com o critério de inclinação no máximo e a afirmação presente na escala de Likert era relativa à inclinação e não à segurança. Em seguida são mostradas as figuras usadas no inquérito, nomeadamente as que mostram os trajectos planeados com os dois sistemas considerados segundo um determinado critério. 56 57 Figura B.1: Trajectos entre os pontos A e B obtidos com o critério segurança 58 Figura B.2: Trajectos entre os pontos A e B obtidos com o critério inclinação 59 Figura B.3: Trajectos entre os pontos C e D obtidos com o critério segurança 60 Figura B.4: Trajectos entre os pontos C e D obtidos com o critério inclinação Bibliografia [1] Liliana Ardissono, Anna Goy, Giovanna Petrone, Marino Segnan, and Pietro Torasso. Intrigue: Personalized recommendation of tourist attractions for desktop and hand held devices. Applied Artificial Intelligence, 17(8):687–714, 2003. [2] Jonathan Bennet. OpenStreetMap - Be your own Cartographer. Packt Publishing, Birmingham, 2010. [3] Instituto da Mobilidade e dos Transportes (IMT) and Gabinete de Planeamento Inovação e Avaliação (GPIA). Plano de promoção da bicicleta e outros modos suaves, 2012. [4] Rina Dechter and Judea Pearl. Generalized best-first search strategies and the optimality of a*. J. ACM, 32(3):505–536, July 1985. [5] J. Dekoster and U. Schollaert. Cycling: the way ahead for towns and cities. boulevard du Triomphe 174; B-1160 Bruxelles., 1999. [6] E. W. Dijkstra. A note on two problems in connexion with graphs. NUMERISCHE MATHEMATIK, 1(1):269–271, 1959. [7] Paulo Manuel Guerra dos Santos. Contribuição do modo bici na gestão da mobilidade urbana, Abril 2009. [8] Sarah Elwood. Geographic Information Science: new geovisualization technologies — emerging questions and linkages with GIScience research. Progress in Human Geography, 33(2):256–263, April 2009. [9] Rosa Melo Félix. Gestão da mobilidade em bicicleta. necessidades, factores de preferência e ferramentas de suporte ao planeamento e gestão de redes. o caso de lisboa, november 2012. [10] Robert Geisberger, Peter Sanders, Dominik Schultes, and Daniel Delling. Contraction hierarchies: faster and simpler hierarchical routing in road networks. In Proceedings of the 7th international conference on Experimental algorithms, WEA’08, pages 319–333, Berlin, Heidelberg, 2008. SpringerVerlag. [11] Harald Holone, Gunnar Misund, Håkon Tolsby, and Steinar Kristoffersen. Aspects of personal navigation with collaborative user feedback. In Proceedings of the 5th Nordic conference on Human61 computer interaction: building bridges, NordiCHI ’08, pages 182–191, New York, NY, USA, 2008. ACM. [12] Dennis Luxen and Christian Vetter. Real-time routing with openstreetmap data. In Isabel F. Cruz, Divyakant Agrawal, Christian S. Jensen, Eyal Ofek, and Egemen Tanin, editors, GIS, pages 513– 516. ACM, 2011. [13] Chloe Mispelon. Ecf cycling barometer technical document, 2013. [14] Rolf H. Möhring, Heiko Schilling, Birk Schütz, Dorothea Wagner, and Thomas Willhalm. Partitioning graphs to speedup dijkstra’s algorithm. J. Exp. Algorithmics, 11, February 2007. [15] Ralph S. Paffenbarger, Robert Hyde, Alvin L. Wing, and Chung-cheng Hsieh. Physical Activity, All-Cause Mortality, and Longevity of College Alumni. N Engl J Med, 314(10):605–613, March 1986. [16] Alexis Velarde Pantola, Susan Pancho-Festin, and Florante Salvador. Rating the raters: a reputation system for wiki-like domains. In Proceedings of the 3rd international conference on Security of information and networks, SIN ’10, pages 71–80, New York, NY, USA, 2010. ACM. [17] Moon-Hee Park, Jin-Hyuk Hong, and Sung-Bae Cho. Location-based recommendation system using bayesian user’s preference model in mobile devices. In Proceedings of the 4th international conference on Ubiquitous Intelligence and Computing, UIC’07, pages 1130–1139, Berlin, Heidelberg, 2007. Springer-Verlag. [18] Reid Priedhorsky, David Pitchford, Shilad Sen, and Loren Terveen. Recommending routes in the context of bicycling: algorithms, evaluation, and the value of personalization. In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work, CSCW ’12, pages 979–988, New York, NY, USA, 2012. ACM. [19] José F. G. Ribeiro, Paulo e Mendes. Planeamento de itinerários para modos suaves de transporte rotas saudáveis. In XXIV ANPET - Congresso de Pesquisa e Ensino em Transportes, pages 1–12, Salvador, 2010. [20] David Rojas-Rueda, Audrey de Nazelle, Marko Tainio, and Mark J Nieuwenhuijsen. The health risks and benefits of cycling in urban environments compared with car use: health impact assessment study. BMJ, 343, 8 2011. [21] Jason G. Su, Meghan Winters, Melissa Nunes, and Michael Brauer. Designing a route planner to facilitate and promote cycling in Metro Vancouver, Canada. Transportation Research Part A: Policy and Practice, 44(7):495–505, August 2010. [22] M. Winters, G. Davidson, D. Kao, and K. Teschke. Motivators and deterrents of bicycle: Factors influencing decisions to ride, 2010. [23] Fan Yang and Zhi-Mei Wang. A mobile location-based information recommendation system based on gps and web2.0 services. W. Trans. on Comp., 8(4):725–734, April 2009. 62