<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Exploring Graph Partitioning for Shortest Path Queries on Road Networks</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Theodoros Chondrogiannis</string-name>
          <email>tchond@inf.unibz.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Johann Gamper</string-name>
          <email>gamper@inf.unibz.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Free University of Bozen-Bolzano</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2014</year>
      </pub-date>
      <abstract>
        <p>Computing the shortest path between two locations in a road network is an important problem that has found numerous applications. The classic solution for the problem is Dijkstra's algorithm [1]. Although simple and elegant, the algorithm has proven to be inefficient for very large road networks. To address this deficiency of Dijkstra's algorithm, a plethora of techniques that introduce some preprocessing to reduce the query time have been proposed. In this paper, we propose Partition-based Shortcuts (PbS), a technique based on graph-partitioning which offers fast query processing and supports efficient edge weight updates. We present a shortcut computation scheme, which exploits the traits of a graph partition. We also present a modified version of the bidirectional search [2], which uses the precomputed shortcuts to efficiently answer shortest path queries. Moreover, we introduce the Corridor Matrix (CM), a partition-based structure which is exploited to reduce the search space during the processing of shortest path queries when the source and the target point are close. Finally, we evaluate the performance of our modified algorithm in terms of preprocessing cost and query runtime for various graph partitioning configurations.</p>
      </abstract>
      <kwd-group>
        <kwd>Shortest path</kwd>
        <kwd>road networks</kwd>
        <kwd>graph partitioning</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>Computing the shortest path between two locations in a road
network is a fundamental problem and has found numerous
applications. The problem can be formally defined as follows. Let
G(V; E) be a directed weighted graph with vertices V and edges
E. For each edge e 2 E, a weight l(e) is assigned, which usually
represents the length of e or the time required to cross e. A path p
between two vertices s; t 2 V is a sequence of connected edges,
p(s; t) = h(s; v1); (v1; v2); : : : ; (vk; vt)i where (vk; vk+1) 2 E,
that connects s and t. The shortest path between two vertices s and
t is the path p(s; t) that has the shortest distance among all paths
that connect s and t.</p>
      <p>
        The classic solution for the shortest path problem is Dijkstra’s
algorithm [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Given a source s and a destination t in a road network
G, Dijkstra’s algorithm traverses the vertices in G in ascending
order of their distances to s. However, Dijkstra’s algorithm comes
with a major shortcoming. When the distance between the source
and the target vertex is high, the algorithm has to expand a very
large subset of the vertices in the graph. To address this
shortcoming, several techniques have been proposed over the last few
decades [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Such techniques require a high start-up cost, but in
terms of query processing they outperform Dijkstra’s algorithm by
orders of magnitude.
      </p>
      <p>
        Although most of the proposed techniques offer fast query
processing, the preprocessing is always performed under the
assumption that the weights of a road network remain unchanged over
time. Moreover, the preprocessing is metric-specific, thus for
different metrics the preprocessing needs to be performed for each
metric. The recently proposed Customizable Route Planning [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
applies preprocessing for various metrics, i.e., distance, time, turn
cost and fuel consumption. Such an approach allows a fast
computation of shortest path queries using any metric desired by the
user, at the cost of some extra space. Moreover, the update cost for
the weights is low since the structure is designed such that only a
small part of the preprocessed information has to be recomputed.
In this paper, our aim is to develop an approach which offers even
faster query processing, while keeping the update cost of the
preprocessed information low. This is particularly important in
dynamic networks, where edge weights might frequently change, e.g.,
due to traffic jams.
      </p>
      <p>The contributions of this paper can be summarized as follows:
We present Partitioned-based Shortcuts (PbS), a
preprocessing method which is based on Customizable Route Planning
(CRP), but computes more shortcuts in order to reduce the
query processing time.</p>
      <p>We propose the Corridor Matrix (CM), a pruning technique
which can be used for shortest path queries when the source
and the target are very close and the precomputed shortcuts
cannot be exploited.</p>
      <p>We run experiments for several different partition
configurations and we evaluate our approach in terms of both
preprocessing and query processing cost.</p>
      <p>The rest of the paper is organized as follows. In Section 2, we
discuss related work. In Section 3, we describe in detail the
preprocessing phase of our method. In Section 5, we present a modified
version of the bidirectional search algorithm. In Section 6, we show
preliminary results of an empirical evaluation. Section 7 concludes
the paper and points to future research directions.</p>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK</title>
      <p>
        The preprocessing based techniques that have been proposed
in order to reduce the time required for processing shortest path
queries can be classified into different categories [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Goal-directed
techniques use either heuristics or precomputed information in
order to limit the search space by excluding vertices that are not in
the direction of the target. For example, A [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] search uses the
Euclidean distance as a lower bound. ALT [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] uses precomputed
shortest path distances to a carefully selected set of landmarks and
produces the lower bound using the triangle inequality. Some
goaldirected techniques exploit graph partitioning in order to prune the
search space and speed-up queries. Precomputed Cluster Distances
(PCD) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] partitions the graph into k components, computes the
distance between all pairs of components and uses the distances
between components to compute lower bounds. Arc Flags [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
maintains a vector of k bits for each edge, where the i-th bit is set if the
arc lies on a shortest path to some vertex of component i.
Otherwise, all edges of component i are pruned by the search algorithm.
      </p>
      <p>
        Path Coherent techniques take advantage of the fact that shortest
paths in road networks are often spatially coherent. To illustrate the
concept of spatial coherence, let us consider four locations s, s0, t
and t0 in a road network. If s is close to s0 and t is close to t0, the
shortest path from s to t is likely to share vertices with the shortest
path from s0 to t0. Spatial coherence methods precompute all
shortest paths and use then some data structures to index the paths and
answer queries efficiently. For example, Spatially Induced Linkage
Cognizance (SILC) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] use a quad-tree [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] to store the paths.
PathCoherent Pairs Decomposition (PCPD) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] computes unique path
coherent pairs and retrieves any shortest path recursively in almost
linear time to the size of the path.
      </p>
      <p>
        Bounded-hop techniques aim to reduce a shortest path query to
a number of look-ups. Transit Node Routing (TNR) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] is an
indexing method that imposes a grid on the road network and
recomputes the shortest paths from within each grid cell C to a set
of vertices that are deemed important for C (so-called access nodes
of C). More approaches are based on the theory of 2-hop
labeling [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. During preprocessing, a label L(u) is computed for each
vertex u of the graph such that for any pair u, v of vertices, the
distance dist(u; v) can be determined by only looking at the labels
L(u) and L(v). A natural special case of this approach is Hub
Labeling (HL) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], in which the label L(u) associated with vertex
u consists of a set of vertices (the hubs of u), together with their
distances from u.
      </p>
      <p>
        Finally, Hierarchical techniques aim to impose a total order on
the nodes as they deem nodes that are crossed by many shortest
paths as more important. Highway Hierarchies (HH) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and its
direct descendant Contraction Hierarchies (CH) organize the nodes
in the road network into a hierarchy based on their relative
importance, and create shortcuts among vertices at the same level
of the hierarchy. Arterial Hierarchies (AH) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] are inspired by
CH, but produce shortcuts by imposing a grid on the graph. AH
outperform CH in terms of both asymptotic and practical
performance [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Some hierarchical approaches exploit graph partition
to create shortcuts. HEPV [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and HiTi [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] are techniques that
pre-computes the distance between any two boundary vertices and
create a new overlay graph. By partitioning the overlay graph and
repeating the process several times, a hierarchy of partitions is
created, which is used to process shortest path queries.
      </p>
      <p>
        The recent Customizable Route Planning (CRP) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is the
closest work to our own. CRP is able to handle various arbitrary
metrics and can also handle dynamic edge weight updates. CRP uses
PUNCH [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], a graph partitioning algorithm tailored to road
networks. CRP pre-computes distances between boundary vertices
in each component and then CRP applies a modified bidirectional
search algorithm which expands only the shortcuts and the edges in
the source or the target component. The main difference between
our approach and CRP is that, instead of computing only shortcuts
between border nodes in each component, we compute shortcuts
from every node of a component to the border nodes of the same
component. The extra shortcuts enable the bidirectional algorithm
to start directly from the border nodes, while CRP has to scan the
original edges of the source and the target component.
3.
      </p>
    </sec>
    <sec id="sec-3">
      <title>PBS PREPROCESSING</title>
      <p>
        The Partition-based Shortcuts (PbS) method we propose
exploits graph partitioning to produce shortcuts in a preprocessing
phase, which during the query phase are used to efficiently
compute shortest path queries. The idea is similar to the concept of
transit nodes [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Every shortest path between two nodes
located in different partitions (also termed components) can be
expressed as a combination of three smaller shortest paths.
Consider the graph in Figure 1 and a query q(s; t), where s 2 C1
and t 2 C5. The shortest path from s to t can be expressed as
p(s; bs) + p(bs; bt) + p(bt; t), where bs 2 fb1; b2g and bt 2
fb3; b4; b5g. Before PbS is able to process shortest path queries,
a preprocessing phase is required, which consists of three steps:
graph partitioning, in-component shortcut computation and
shortcut graph construction.
3.1
      </p>
    </sec>
    <sec id="sec-4">
      <title>Graph Partitioning</title>
      <p>The first step in the pre-processing phase is the graph
partitioning. Let G(V; E) be a graph with vertices V and edges E. A
partition of G is a set P (G) = fC1; : : : ; Ckg of connected
subgraphs Ci of G, also referred to as components of G. For the set
P (G), all components must be disjoint, i.e., C1 \ : : : \ Ck = ;.
Moreover, let V1; : : : ; VjP (G)j be the sets of vertices of each
component. The vertex sets of all components must cover the vertex set
of the graph, i.e., V1 [ : : : [ VjP (G)j = V . We assign a tag to each
node of the original graph, which indicates the component the node
is located in. The set of connecting edges, EC E, is the set of all
edges in the graph for which the source and target nodes belong to
different components, i.e., (n; n0) 2 E such that n 2 Ci, n0 2 Cj
and Ci 6= Cj . Finally, we define the border nodes of a component
C. A node n 2 C is a border node of C if there exists a connecting
edge e = (n; n0) or e = (n0; n), i.e., n0 is not in C. If e = (n; n0),
n is called outgoing border node of C, whereas if e = (n0; n), n
is called incoming border node of C. The set of all border nodes
of a graph is referred to as B. Figure 1 illustrates a graph
partitioned into five components. The filled nodes are the border nodes.
Note that for ease of exposition we use only undirected graphs in
the examples.</p>
      <p>
        We characterize a graph partition as good if it minimizes the
number of connecting edges between the components. However,
graph partitioning is an N P -hard problem, thus an optimal
solution is out of the question [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. A popular approach is multilevel
graph partitioning (MGP), which can be found in many software
libraries, such as METIS [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Algorithms such as PUNCH [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
and Spatial Partition Clustering (SPC) [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] take advantage of road
network characteristics in order to provide a more efficient graph
partitioning. We use METIS for graph partitioning since it is the
most efficient approach out of all available ones [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. METIS
requires only the number of components as an argument in order to
perform the partitioning. The number of components influences
both the number of the in-component shortcuts and the size of the
shortcut graph.
3.2
      </p>
    </sec>
    <sec id="sec-5">
      <title>In-component Shortcuts</title>
      <p>The second step of the preprocessing phase is the computation of
the in-component shortcuts. For each node n in the original graph,
we compute the shortest path from the node to every outgoing
border node of the component in which n is located. Then we create
outgoing shortcuts which abstract the shortest path from n to each
outgoing border node. The incoming shortcuts are computed in a
similar fashion. Thus, the total number of in-component shortcuts,
S, is</p>
      <p>k
S = X Ni
i=1</p>
      <p>(jBiinc j + jBiout j);
where Ni is the number of nodes in component Ci and Biinc ,
Biout are the incoming and outgoing border nodes of Ci,
respectivelly. Figure 2 shows the in-component shortcuts for a node located
in component C2.</p>
      <p>For each border node in a component, b 2 C, we execute
Dijkstra’s algorithm with b as source and all other nodes (including
border nodes) in C as targets. Depending on the type of the source
node, the expansion strategy is different. When an incoming
border node is the source, forward edges are expanded; vice versa,
when an outgoing border node is the source, incoming edges are
expanded. This strategy ensures that the maximum number of node
expansions is at most twice the number of border nodes of G.
3.3</p>
    </sec>
    <sec id="sec-6">
      <title>Shortcut Graph Construction</title>
      <p>The third step of the preprocessing phase of our approach is the
construction of the shortcut graph. Given a graph G, the shortcut
graph of G is a graph Gsc(B; Esc), where B is the set of border
nodes of G and Esc = EC [ SG is the union of the connecting
edges, EC , of G and the shortcuts, SG, from every incoming
border node to every outgoing border node of the same component.
Thus, the number of vertices and edges in the shortcut graph is,
respectively,</p>
      <p>k
jBj = X
jEscj =</p>
      <p>
        In Section 3 we presented how PbS creates shortcuts in order to
answer queries when the source and the target points are in
different components. However, when the source and the target points
of a query are located in the same component, the shortest path
may lie entirely inside the component. Therefore, the search
algorithm will never reach the border nodes and the shortcuts will not
be expanded. In such a case, the common approach is to use
bidirectional search to return the shortest path. However, if the
components of the partitioned graph are large, the query processing can be
quite slow. In order to improve the processing time of such queries,
we partition each component again into sub-components, and for
each component, we compute its Corridor Matrix (CM). In
general, given a partition of a graph G in k components, the Corridor
Matrix (CM) of G is a k k matrix, where each cell C(i; j) of
CM contains a list of components that are crossed by some
shortest path from a node s 2 Ci to a node t 2 Cj . We call such a
list the corridor from Ci to Cj . The concept of the CM is similar
to Arc-Flags [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], but the CM requires much less space. The space
complexity of the CM is O(k3), where k is the number of
components in the partition, while the space complexity of Arc-Flags is
jEj k2, where jEj is the number of edges in the original graph.
      </p>
      <p>C1 C2 C3 C4 C5
C1 ;
C2 ;
C3 ;
C4 ;
C5
;</p>
      <p>fC2; C3g</p>
      <p>
        To optimize the look-up time in CM, we implemented each
component list using a bitmap of length k. Therefore, the space
complexity of the CM in the worst case is O(k3). The actual space
occupied by the CM is smaller, since we do not allocate space for
bitmaps when the component list is empty. For the computation of
the Corridor Matrix, we generate the Shortcut Graph in the same
way as described in Section 3.3. To compute the distances between
all pairs of vertices, we use the Floyd-Warshall algorithm [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ],
which is specifically designed to compute the all-pair shortest path
distance efficiently. After having computed the distances between
the nodes, instead of retrieving each shortest path, we retrieve only
the components that are crossed by each path, and we update the
CM accordingly.
      </p>
    </sec>
    <sec id="sec-7">
      <title>SHORTEST PATH ALGORITHM</title>
      <p>In order to process a shortest path query from a source point s
to a target point t, we first determine the components of the graph
the nodes s 2 Cs and t 2 Ct are located in. If Cs = Ct, we
execute a modified bidirectional search from s to t. Note that the
shortcuts are not used for processing queries for which the source
and target are located in the same component C. Instead, we
retrieve the appropriate corridor from the CM of C, which contains
a list of sub-components. Then, we apply bidirectional search and
prune all nodes that belong to sub-components which are not in the
retrieved corridor.</p>
      <p>In the case that the points s and t are not located in the same
component, we exploit the pre-computed shortcuts. First, we
retrieve the lengths of the in-component outgoing shortcuts from s to
all the outgoing borders of Cs and the length of the in-component
incoming shortcuts from all the incoming borders of Ct to t. Then
we apply a many-to-many bidirectional search in the overlay graph
from all the outgoing borders of Cs to all the incoming borders
of Ct. We use the length of the in-component shortcuts (retrieved
in the first step) as initial weights for the source and target nodes
of the bidirectional search in the Shortcut Graph. The list of edges
consisting the path is a set of connecting edges of the original graph
and in-component shortcuts. For each shortcut we retrieve the
precomputed set of the original edges. The cost to retrieve the original
path is linear to the size of the path. After the retrieval we replace
the shortcuts with the list of edges in the original graph and we
return the new edge list, which is the shortest path from s to t in the
original graph.</p>
    </sec>
    <sec id="sec-8">
      <title>PRELIMINARY RESULTS</title>
      <p>
        In this section, we compare our PbS method with CRP, the
method our own approach is based on, and CH, a lightweight yet
very efficient state-of-the-art approach for shortest path queries in
road networks [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. CRP can handle arbitrary metrics and edge
weight updates, while CH is a technique with fast pre-processing
and relatively low query processing time. We implemented in Java
the basic version of CRP and PbS. The CH algorithm in the
experiments is from Graphhopper Route Planner [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Due to the
different implementations of the graph models between ours and
CH, we do not measure the runtime. Instead, for preprocessing we
count the extra shortcuts created by each algorithm, while for query
processing we count the number of expanded nodes.
      </p>
      <p>
        For the experiments we follow the same evaluation setting as
in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. We use 5 publicly available datasets [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], four of of which
are a part of the US road network, and the smallest one represents
the road network of Rome. We present the characteristics of each
dataset in Table 1. In order to compare our PbS approach and CRP
with CH, we run our experiments over 5 query sets Q1–Q5, which
2
1
0
1:5
      </p>
      <p>1
0:5</p>
      <p>0</p>
      <sec id="sec-8-1">
        <title>Name</title>
        <p>CAL
FLA
BAY</p>
        <p>NY
ROME</p>
      </sec>
      <sec id="sec-8-2">
        <title>Region</title>
        <p>California/Nevada</p>
        <p>Florida
SF Bay Area
New York City
Center of Rome
contain 1000 queries each. We make sure that the distance of
every query in set Qi is smaller than the distance of every query
in set Qi+1. We also evaluate the CM separately by comparing
our CM implementation against Arc Flags and the original
bidirectional search for a set of 1000 random queries in the ROME
dataset. We use a small dataset in order to simulate in-component
query processing.
6.1</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>Preprocessing and Space Overhead</title>
      <p>Figures 5 and 6 show a series of measurements for the
preprocessing cost of our approach in comparison to CRP and CH over
the four largest datasets. Figure 5 shows how many shortcuts are
created by each approach. The extra shortcuts can be translated
into the space overhead required in order to speed-up shortest path
queries. CH uses shortcuts which represent only two edges, while
the shortcuts in PbS and CRP are composed of much longer
sequences. The difference between the shortcuts produced by CRP
and CH is much less. In short, PbS produces about two orders of
magnitude more shortcuts than CRP and CH. Moreover, we can
observe that the number of shortcuts produced by PbS is getting lower
as the number of components is increasing.</p>
      <p>CH</p>
      <p>CRP</p>
      <p>PbS
3 107 shortcuts
3 107 shortcuts
128
256
384
512
128
256
384
512
(a) NY
1 108 shortcuts
(b) BAY
2 108 shortcuts
2
1
0
0:75
0:5
0:25
0
256
512</p>
      <p>The same tendency as observed for the number of shortcuts can
be observed for the preprocessing time. In Figure 6, we can see
that PbS requires much more time than CRP and CH in order to
create shortcuts. However, we should also notice that the update
cost for CRP and PbS is only a small portion of the preprocessing
cost. When an edge weight changes, we need to update only the
shortcuts that contains that particular edge. In contrast, for CH the
the update cost is the same as the preprocesing cost since a change
in a single weight can influence the entire hierarchy.</p>
    </sec>
    <sec id="sec-10">
      <title>Query Processing</title>
      <p>Figure 7 shows a series of measurements of the performance of
CRP and PbS. We evaluate both techniques for different partitions
and various numbers of components. An important observation is
the tendency of the performance for CRP and PbS. The
performance of CRP gets worse for partitions with many components
while the opposite happens for PbS. The reason is that for
partitions with few components, PbS manages to process many queries
with two look-ups (the case where the source and the target are in
adjacent components).</p>
      <p>In Figure 8 we compare CH with CRP (we choose the best result)
and two configurations of PbS: PbS-BT, which is the configuration
that leads to the best performance, and PbS-AVG, which is the
average performance of PbS among all configurations. We can see that
PbS outperforms CRP in all datasets from Q1 to Q5. However, CH
is faster in terms of query processing than our PbS approach. CH
is more suitable for static networks as the constructed hierarchy of
shortcuts enables the shortest path algorithm to expand much fewer
nodes.
6.3</p>
    </sec>
    <sec id="sec-11">
      <title>In-component Queries</title>
      <p>In Figure 9, we compare the performance of our bidirectional
algorithm using the proposed CM, the original bidirectional search
and the bidirectional algorithm using Arc Flags. We observe that
the bidirectional search is the slowest since no pruning is applied.
Between Arc Flags and CM, the Arc Flags provide slightly better
pruning thus fewer expanded nodes by the bidirectional search. On
the other hand, the preprocessing time required to compute the Arc
Flags is significantly higher than the time required to compute the
CM.
104 expanded nodes
104 expanded nodes
1</p>
      <p>In this paper we presented PbS, an approach which uses graph
partitioning in order to compute shortcuts and speed-up shortest
path queries in road networks. Our aim was a solution which
supports efficient and incremental updates of edge weights, yet is
efficient enough in many real-world applications. In the evaluation,
we showed that our PbS approach outperforms CRP. PbS supports
edge weight updates as any change in the weight of an edge can
influence only shortcuts in a single component. On the other hand,
CH is faster than our PbS approach. However, CH cannot handle
well edge weight updates as almost the entire hierarchy of
shortcuts has to be recomputed every time a single weight changes. For
queries where the source and the target are in the same component,
we introduced the CM. The efficiency of the CM in query
processing approaches the efficiency of Arc Flags, while consuming much
less space.</p>
      <p>In future work, we plan to extend our approach to support
multimodal transportation networks, where the computation has to
consider a time schedule, and dynamic and traffic aware networks,
where the weights of the edges change over time. We will also
improve the preprocessing phase of our approach both in terms of
time overhead, by using parallel processing, and space overhead,
by using compression techniques or storing some of the
precomputed information on the disk.
8.
2;000
0 Q1
104
1:5
12
9
6
3
Q2</p>
      <p>Q3</p>
      <p>Q4</p>
      <p>Q5
(a) NY</p>
      <p>Q2</p>
      <p>Q3
(b) BAY</p>
      <p>Q4</p>
      <p>Q5</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>E. W.</given-names>
            <surname>Dijkstra</surname>
          </string-name>
          .
          <article-title>A note on two problems in connexion with graphs</article-title>
          .
          <source>Numerische Mathematik</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>269</fpage>
          -
          <lpage>271</lpage>
          ,
          <year>December 1959</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>I. S.</given-names>
            <surname>Pohl</surname>
          </string-name>
          .
          <article-title>Bi-directional and Heuristic Search in Path Problems</article-title>
          .
          <source>PhD thesis</source>
          , Stanford, CA, USA,
          <year>1969</year>
          . AAI7001588.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>H.</given-names>
            <surname>Bast</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Delling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Goldberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Müller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Pajor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sanders</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Wagner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R</given-names>
            <surname>Werneck</surname>
          </string-name>
          .
          <article-title>Route planning in transportation networks</article-title>
          .
          <source>(MSR-TR-2014-4)</source>
          ,
          <year>January 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Delling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Goldberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Pajor</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Werneck</surname>
          </string-name>
          .
          <article-title>Customizable route planning</article-title>
          .
          <source>In Proc. of the 10th Int. Symposium on Experimental Algorithms (SEA)</source>
          , pages
          <fpage>376</fpage>
          -
          <lpage>387</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Hart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Nilsson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Raphael</surname>
          </string-name>
          .
          <article-title>Formal Basis for the Heuristic Determination of Minimum Cost PAths</article-title>
          .
          <source>IEEE Transactions of Systems Science and Cybernetics</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <fpage>100</fpage>
          -
          <lpage>107</lpage>
          ,
          <year>1968</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Goldberg</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Harrelson</surname>
          </string-name>
          .
          <article-title>Computing the Shortest Path : A * Search Meets Graph Theory</article-title>
          .
          <source>In Proc. of the 16th ACM-SIAM Symposium on Discrete Algorithms (SODA)</source>
          , pages
          <fpage>156</fpage>
          -
          <lpage>165</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Maue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sanders</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Matijevic</surname>
          </string-name>
          .
          <article-title>Goal-directed shortest-path queries using precomputed cluster distances</article-title>
          .
          <source>Journal on Experimental Algorithms</source>
          ,
          <volume>14</volume>
          :2:
          <issue>3</issue>
          .
          <fpage>2</fpage>
          -
          <issue>2</issue>
          :
          <fpage>3</fpage>
          .27,
          <year>January 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>E.</given-names>
            <surname>Köhler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Möhring</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Schilling</surname>
          </string-name>
          .
          <article-title>Fast point-to-point shortest path computations with arc-flags</article-title>
          .
          <source>In Proc. of the 9th DIMACS Implementation Challenge</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sankaranarayanan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Alborzi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Samet</surname>
          </string-name>
          .
          <article-title>Efficient query processing on spatial networks</article-title>
          .
          <source>In Proc. of the 2005 Int. Workshop on Geographic Information Systems (GIS)</source>
          ,
          <source>page 200</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>R.A.</given-names>
            <surname>Finkel</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Bentley</surname>
          </string-name>
          .
          <article-title>Quad trees: A data structure for retrieval on composite keys</article-title>
          .
          <source>Acta Informatica</source>
          ,
          <volume>4</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          ,
          <year>1974</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sankaranarayanan</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Samet</surname>
          </string-name>
          , H. andi Alborzi.
          <article-title>Path Oracles for Spatial Networks</article-title>
          .
          <source>In Proc. of the 35th VLDB Conf.</source>
          , pages
          <fpage>1210</fpage>
          -
          <lpage>1221</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>H.</given-names>
            <surname>Bast</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Funke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D</given-names>
            <surname>Matijevic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sanders</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Schultes</surname>
          </string-name>
          .
          <article-title>In Transit to Constant Time Shortest-Path Queries in Road Networks</article-title>
          .
          <source>In Proc. of the Workshop on Algorithm Engineering and Experiments</source>
          , pages
          <fpage>45</fpage>
          -
          <lpage>59</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>E.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Halperin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kaplan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>U.</given-names>
            <surname>Zwick</surname>
          </string-name>
          .
          <article-title>Reachability and distance queries via 2-hop labels</article-title>
          .
          <source>In Proc. of the 13th ACM-SIAM Symposium on Discrete Algorithms (SODA)</source>
          , pages
          <fpage>937</fpage>
          -
          <lpage>946</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>I.</given-names>
            <surname>Abraham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Delling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Goldberg</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Werneck</surname>
          </string-name>
          .
          <article-title>A hub-based labeling algorithm for shortest paths in road networks</article-title>
          .
          <source>In Proc. of the 10th Int. Symposium on Experimental Algorithms</source>
          , pages
          <fpage>230</fpage>
          -
          <lpage>241</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>P.</given-names>
            <surname>Sanders</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Schultes</surname>
          </string-name>
          .
          <article-title>Highway Hierarchies Hasten Exact Shortest Path Queries</article-title>
          .
          <source>In Proc. of the 13th European Conf. on Algorithms (ESA)</source>
          , pages
          <fpage>568</fpage>
          -
          <lpage>579</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>A. D. Zhu</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Ma</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          <string-name>
            <surname>Xiao</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Luo</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Tang</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Zhou</surname>
          </string-name>
          .
          <article-title>Shortest Path and Distance Queries on Road Networks: Towards Bridging Theory and Practice</article-title>
          .
          <source>In Proc. of the 32nd SIGMOD Conf.</source>
          , pages
          <fpage>857</fpage>
          -
          <lpage>868</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>L.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Xiao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Deng</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Cong, and</article-title>
          <string-name>
            <given-names>A. D.</given-names>
            <surname>Zhu</surname>
          </string-name>
          .
          <article-title>Shortest Path and Distance Queries on Road Networks : An Experimental Evaluation</article-title>
          .
          <source>In Proc. of the 39th VLDB Conf.</source>
          , pages
          <fpage>406</fpage>
          -
          <lpage>417</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Y. W.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Jing</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E. A.</given-names>
            <surname>Rundensteiner</surname>
          </string-name>
          .
          <article-title>Hierarchical path views : A model based on fragmentation and transportation road types</article-title>
          .
          <source>In Proc. of the 3rd ACM Workshop Geographic Information Systems (GIS)</source>
          ,,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Jung</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Pramanik</surname>
          </string-name>
          .
          <article-title>Hiti graph model of topographical roadmaps in navigation systems</article-title>
          .
          <source>In Proc. of the 12th ICDE Conf.</source>
          , pages
          <fpage>76</fpage>
          -
          <lpage>84</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>D.</given-names>
            <surname>Delling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Goldberg</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Razenshteyn</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Werneck</surname>
          </string-name>
          .
          <article-title>Graph Partitioning with Natural Cuts</article-title>
          .
          <source>In Proc. of the 35th Int. Parallel &amp; Distributed Processing Symposium (IPDPS)</source>
          , pages
          <fpage>1135</fpage>
          -
          <lpage>1146</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A. E.</given-names>
            <surname>Feldmann</surname>
          </string-name>
          and
          <string-name>
            <surname>L</surname>
          </string-name>
          / Foschini.
          <article-title>Balanced Partitions of Trees and Applications</article-title>
          .
          <source>In 29th Symp. on Theoretical Aspects of Computer Science</source>
          , volume
          <volume>14</volume>
          , pages
          <fpage>100</fpage>
          -
          <lpage>111</lpage>
          , Paris, France,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>G.</given-names>
            <surname>Karypis</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Kumar</surname>
          </string-name>
          .
          <article-title>A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs</article-title>
          .
          <source>SIAM Journal on Scientific Computing</source>
          ,
          <volume>20</volume>
          (
          <issue>1</issue>
          ):
          <fpage>359</fpage>
          -
          <lpage>392</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>Y. W.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Jing</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Rundensteiner</surname>
          </string-name>
          .
          <article-title>Effective Graph Clustering for Path Queries in Digital Map Databases</article-title>
          .
          <source>In Proc. of the 5th Int. Conf. on Information and Knowledge Management</source>
          , pages
          <fpage>215</fpage>
          -
          <lpage>222</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>X.</given-names>
            <surname>Sui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Burtscher</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Pingali</surname>
          </string-name>
          .
          <article-title>Parallel graph partitioning on multicore architectures</article-title>
          .
          <source>In Proc. of the 23rd Int. Conf. on Languages and Compilers for Parallel Computing</source>
          , pages
          <fpage>246</fpage>
          -
          <lpage>260</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>R. W.</given-names>
            <surname>Floyd</surname>
          </string-name>
          . Algorithm 97:
          <article-title>Shortest path</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>5</volume>
          :
          <fpage>345</fpage>
          ,
          <year>1962</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>[26] https://graphhopper.com.</mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>[27] http://www.dis.uniroma1.it/challenge9/.</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>