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
Download

dissertação de Mestrado