Next Article in Journal
LandQv2: A MapReduce-Based System for Processing Arable Land Quality Big Data
Previous Article in Journal
Geospatial Analysis and the Internet of Things
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Shared Execution Approach to ε-Distance Join Queries in Dynamic Road Networks

Department of Software, Kyungpook National University, 2559, Gyeongsang-daero, Sangju-si, Gyeongsangbuk-do 37224, Korea
ISPRS Int. J. Geo-Inf. 2018, 7(7), 270; https://doi.org/10.3390/ijgi7070270
Submission received: 30 April 2018 / Revised: 1 July 2018 / Accepted: 6 July 2018 / Published: 10 July 2018

Abstract

:
Given a threshold distance ε and two object sets R and S in a road network, an ε-distance join query finds object pairs from R × S that are within the threshold distance ε (e.g., find passenger and taxicab pairs within a five-minute driving distance). Although this is a well-studied problem in the Euclidean space, little attention has been paid to dynamic road networks where the weights of road segments (e.g., travel times) are frequently updated and the distance between two objects is the length of the shortest path connecting them. In this work, we address the problem of ε-distance join queries in dynamic road networks by proposing an optimized ε-distance join algorithm called EDISON, the key concept of which is to cluster adjacent objects of the same type into a group, and then to optimize shared execution for the group to avoid redundant network traversal. The proposed method is intuitive and easy to implement, thereby allowing its simple integration with existing range query algorithms in road networks. We conduct an extensive experimental study using real-world roadmaps to show the efficiency and scalability of our shared execution approach.

1. Introduction

Recent advances in mobile technologies and map-based applications enable users to access a wide range of location-based services such as shortest path queries [1,2,3,4,5,6,7], distance queries [2,3,5,8,9], range queries [3,10], and k-nearest neighbor (kNN) queries [3,7,10,11,12]. Owing to the popularity of map-based applications among users, processing spatial queries in road networks efficiently has become an important research area in recent years. In this work, we address ε -distance join queries in road networks. Given a threshold distance ε and two object sets R and S , an ε -distance join query explores all object pairs ( r , s ) R × S and returns a set of object pairs ( r , s ) that are within the threshold distance ε . The ε -distance join queries are useful in real-life applications such as data mining and similarity joins [13,14,15,16,17,18]. Therefore, many studies have evaluated the efficiency of ε -distance join queries in the Euclidean space [19,20] and in the metric space [13,14,15,16,17,18]. These studies focus primarily on designing elegant indexing techniques to avoid scanning the entire dataset repeatedly, and on pruning as many distance computations as possible.
Figure 1 presents an example of dynamic road networks where objects r 1 through r 5 denote passengers (represented by rectangles), and objects s 1 through s 3 denote taxicabs (represented by triangles). In this example, an ε -distance join query for a taxicab company involves sending an available taxicab to each passenger who is located within a five-minute driving distance from the taxicab. The travel time should be frequently updated depending on traffic conditions. For example, at time t 1 , taxicab s 2 is closer to passenger r 4 than taxicab s 3 , as shown in Figure 1a. However, as shown in Figure 1b, because the taxicab s 2 is in a traffic-congested area, it cannot reach the passenger r 4 faster than the taxicab s 3 at time t 2 .
Owing to the dynamic nature of road networks, many studies have recently addressed a variety of spatial queries in dynamic road networks such as shortest path queries [1,6,21], distance queries [8], and kNN queries [22]. Although there have been a few studies [10,23] on ε -distance join queries in road networks, they proposed sophisticated index structures and algorithms to boost ε -distance join queries in static road networks, where the weights of road segments are rarely updated. Specifically, the state-of-the-art solution to ε -distance join queries in road networks is the distance join algorithm proposed in Reference [23], based on the spatially induced linkage cognizance (SILC) framework introduced in Reference [3]. The algorithm pre-computes the shortest path between each pair of vertices in a road network and stores all paths. This approach is not suitable for dynamic road networks because in these road networks, the weights of road segments are frequently updated, and the pre-computed distances between vertices often become obsolete. Various techniques [24,25,26,27,28,29,30,31,32,33,34] for preserving location privacy in road networks have recently been developed, which focus on moving objects such as vehicles and users, and therefore cannot be applied to the problem studied here.
Therefore, in this study, we propose an optimized ε -distance join algorithm called EDISON to efficiently support ε -distance join queries in dynamic road networks, where materialized structures such as the SILC framework cannot be used to dynamically compute the shortest path and distances from a source point to one or more destination points. Intuitively, a simple solution involves computing the distance between every object pair from two datasets. This simple solution is very inefficient, because for each element in an object set R , the algorithm must traverse another object set S , which can lead to redundant network traversal. The proposed solution is to cluster adjacent objects of the same type into a group and then optimize shared execution for the group to avoid redundant network traversal. Although the shared execution of queries has received much attention [21,35,36,37,38], no shared execution strategy has been applied to evaluate ε -distance join queries in dynamic road networks to date. The contributions of this study are as follows.
  • We propose an efficient ε -distance join algorithm called EDISON for dynamic road networks that optimizes the shared execution paradigm to accelerate query response times. To the best of our knowledge, this is the first attempt to evaluate ε -distance join queries effectively in dynamic road networks.
  • We design algorithms that reduce the number of range queries required to evaluate ε -distance join queries in dynamic road networks. The proposed method is intuitive and easy to implement, thereby allowing its simple integration with existing range query algorithms (e.g., [10]) in road networks.
  • We conduct extensive experiments under different setups to demonstrate the efficiency and scalability of our approach over conventional solutions.
The remainder of this paper is organized as follows. In Section 2, we review related studies. In Section 3, we provide some background information. We present a simple solution called the naive EDISON method based on shared execution in Section 4. In Section 5, we present an optimized solution that avoids redundant network traversal called the EDISON method. In Section 6, we evaluate our proposed solutions experimentally under different setups by comparing them to a conventional solution. We conclude the paper in Section 7.

2. Related Work

2.1. Dynamic Road Networks

The geographic information system (GIS) community has shown interest in processing spatial queries in road networks, which form an integral aspect of geospatial applications, such as location-based services and locational analysis [1,2,3,5,6,7,10,11,22,23,39,40]. Previous works have studied a variety of spatial queries in road networks, which include shortest path queries [1,2,3,4,5,6,7], distance queries [2,3,5,8,9], range queries [3,10], and kNN queries [3,7,10,11]. The previous studies focused primarily on adopting sophisticated index structures to achieve good performance under the assumption that road networks are stable. For example, Sankaranarayanan et al. [3,4] proposed the SILC and path-coherent pairs decomposition frameworks based on spatial path coherence to determine the shortest path and the shortest distance between every pair of vertices. In particular, the SILC framework can support various queries in road networks including path queries, distance queries, range queries, and kNN queries. Because these frameworks have high pre-computational overhead and space complexity even in static road networks, they are not suitable for processing spatial queries in dynamic road networks where the weights of road segments are often updated. Recently, distance queries [8] and shortest path queries [1,6,21] have been actively studied in dynamic road networks. Techniques for distance queries and shortest path queries cannot be applied directly to processing ε -distance join queries in dynamic road networks owing to the inconsistent problem requirements. Recently, Arain et al. [24,25,26], Domenic et al. [27], Gustav et al. [28], Kamenyi et al. [29], and Memon et al. [30,31,32,33,34] developed novel techniques for location privacy preservation over road networks. These techniques focus on protecting the location privacy of moving objects in road networks. However, it is inappropriate to extend these location privacy techniques to solve the ε -distance join problem in dynamic road networks owing to differences in the problem definition.

2.2. ε -Distance Join Queries

Given a query point q , a threshold distance ε , and a set of objects S , a range query retrieves objects that are within the threshold distance ε from the query point q . Several algorithms have been proposed to support range queries in road networks. Papadias et al. [10] proposed the range Euclidean restriction (RER) and range network expansion (RNE) algorithms for processing range queries in road networks. The ε -distance join query is another important query in road networks. Papadias et al. [10] proposed join Euclidean restriction (JER) and join network expansion (JNE) algorithms to support ε -distance join queries in road networks. The JER algorithm uses the Euclidean distance as a heuristic to search for object pairs within the threshold distance ε based on their network distance. Therefore, it performs poorly when the Euclidean distance and the network distance are very different, which is a common scenario in practice. If the edge weight is defined as the travel time in road networks, the Euclidean distance cannot confine the search space unless additional assumptions are made, such as assuming maximum speed. Therefore, JER is not appropriate for processing ε -distance join queries in dynamic road networks. Sankaranarayanan et al. [23] proposed a distance join algorithm that can support ε -distance join queries in road networks. The distance join algorithm, based on the SILC framework introduced in [3], exploits the pre-computation of the shortest path between each pair of vertices in a road network and stores all paths in a quad-tree. However, the distance join algorithm in [23] is not suitable for dynamic road networks as it suffers from excessive storage costs for large road networks. The ε -distance join queries are well studied in the Euclidean space [19,20] and in the metric space [13,14,15,16,17,18]. Nonetheless, all approaches are unsuitable for processing ε -distance join queries, because they utilize some geometric properties (e.g., MBR [20], plane-sweep [20], and space-filling curve [41]) that are not available for dynamic road networks.
As a means to process a large number of queries in database systems, the shared execution of queries has recently received much attention [35,36,37,38,42]. The key idea of shared query execution is to cluster similar queries (i.e., those that share some common execution path) into a group and then execute the group as a single query in the system. These shared execution methods are found to be effective in many applications involving high load conditions. In this study, we optimize the shared execution strategy to boost ε -distance join queries in dynamic road networks. Our proposed solution differs from existing studies in several aspects. First, our solution represents the first attempt to evaluate ε -distance join queries efficiently in dynamic road networks, where materialized index structures (e.g., SILC [3]) cannot be used. Second, our solution considers applying a shared execution strategy to avoid redundant network traversal while processing ε -distance join queries. Finally, our solution can be implemented easily using the best-known solutions (e.g., RNE [10]) to range queries in road networks, which is considered a desirable property in practice.

3. Preliminaries

Section 3.1 defines the terms and notations that are used in this paper. Section 3.2 defines the ε -distance join query applied to road networks.

3.1. Definition of Terms and Notations

Road network: We represent a road network by an undirected weighted graph G = V , E , W , where V , E , and W indicate the vertex set, the edge set, and the edge distance matrix, respectively. Each edge v i v j ¯ has a nonnegative weight representing the network distance, such as the travel time.
Classification of vertices: We divide vertices into three categories based on their degree. (1) If the degree of a vertex is larger than or equal to 3, the vertex is referred to as an intersection vertex; (2) If the degree is 2, the vertex is an intermediate vertex; (3) If the degree is 1, the vertex is a terminal vertex.
Vertex sequence and segment: A vertex sequence v l v l + 1 v m ¯ denotes a path between two vertices v l and v m , such that v l ( v m ) is either an intersection vertex or a terminal vertex, and the other vertices in the path, v l + 1 , , v m 1 , are intermediate vertices. The length of a vertex sequence is the total weight of the edges in the vertex sequence. A part of a vertex sequence is referred to as a segment. By definition, a vertex sequence is also a segment.
Table 1 summarizes the symbols used in this paper. Note that to simplify presentation, we use r i r j ¯ to denote r i r i + 1 r j ¯ , where adjacent outer objects r i , r i + 1 , , r j are located in the same vertex sequence. In this study, we employ the basic concept of clustering adjacent outer objects in a vertex sequence into an outer segment. The advantage of this clustering method is that if we evaluate two range queries at the two end points, r i and r j , of an outer segment r i r j ¯ , we can retrieve inner objects within distance ε from each outer object r r i r j ¯ without duplicating the network traversal. In other words, the two range queries at r i and r j are sufficient to retrieve inner objects within distance ε from all outer objects in r i r j ¯ , which is proved in Lemma 1.
Figure 2 shows the difference between the distance and the segment length between two objects r and s in a road network, where the numbers at the edges indicate the distance between two adjacent points (e.g., d i s t ( v 1 , v 2 ) = 6 ). The shortest path from r to s is denoted by r v 2 v 5 s where the distance between r and s is d i s t ( r , s ) = 6 in this case. The segment connecting r and s in the same vertex sequence v 2 v 3 v 4 v 5 ¯ becomes r v 3 v 4 s ¯ with length equal to l e n ( r , s ) = 9 . We recall that l e n ( r , s ) is defined for two objects located in the same vertex sequence.

3.2. ε -Distance Join Query

We consider two object sets R and S in the road network G . For convenience, R is referred to as the set of outer objects and S is referred to as the set of inner objects. Accordingly, r R and s S are referred to as outer and inner objects, respectively.
Definition 1.
( ε -distance join query): Given a threshold distance ε and two object sets R and S , where R = { r 1 , r 2 , , r | R | } and S = { s 1 , s 2 , , s | S | } , the ε -distance join query, denoted by R ε S , returns the set of all possible pairs of objects from R × S that are within the threshold distance ε :
R ε S = { ( r , s ) | d i s t ( r , s ) ε   for   ( r , s ) R × S } .
Naturally, R ε S is a subset of R × S . The ε -distance join query is commutative, i.e., R ε S = S ε R .

4. Naive Shared Execution for ε -Distance Join Queries in Road Networks

4.1. Grouping of Objects in a Vertex Sequence

Figure 3 presents an example of an ε -distance join query in a road network, which will be discussed throughout this section. In this figure, there are five outer objects, r 1 through r 5 , and six inner objects, s 1 through s 6 . Given a threshold distance ε = 5 and two object sets R = { r 1 , r 2 , r 3 , r 4 , r 5 } and S = { s 1 , s 2 , s 3 , s 4 , s 5 , s 6 } , we consider an ε -distance join query R ε S of the following form: R ε S = { ( r , s ) | d i s t ( r , s ) 5   for   ( r , s ) R × S } .
Figure 4 shows the sample grouping of outer objects in a vertex sequence and the sample grouping of inner objects in a vertex sequence. As shown in Figure 4a, two outer objects r 1 and r 2 in a vertex sequence v 1 v 2 v 3 ¯ are grouped into an outer segment r 1 r 2 ¯ , and three outer objects r 3 , r 4 , and r 5 in a vertex sequence v 1 v 4 v 3 ¯ are grouped into another outer segment r 3 r 5 r 4 ¯ . Similarly, as shown in Figure 4b, three inner objects s 1 , s 4 , and s 5 in a vertex sequence v 1 v 2 v 3 ¯ are grouped into an inner segment s 1 s 5 s 4 ¯ , and two inner objects s 2 and s 3 in a vertex sequence v 1 v 4 v 3 ¯ are grouped into another inner segment s 2 s 3 ¯ . Therefore, a set of outer objects R = { r 1 , r 2 , r 3 , r 4 , r 5 } is transformed into R ¯ = { r 1 r 2 ¯ , r 3 r 5 r 4 ¯ } , where R ¯ is the set of outer segments generated from the outer objects. Similarly, a set of inner objects S = { s 1 , s 2 , s 3 , s 4 , s 5 , s 6 } is transformed into S ¯ = { s 1 s 5 s 4 ¯ , s 2 s 3 ¯ , s 6 } , where S ¯ is the set of inner segments generated from the inner objects. Without loss of generality, we assume that | R ¯ | | S ¯ | , because R ε S = S ε R . If | R ¯ | > | S ¯ | , then S ε R is evaluated instead of R ε S .

4.2. Shared Execution Processing of Grouped Outer Objects

Our shared execution strategy for processing ε -distance join queries in road networks is motivated by the observation that at most two range queries are sufficient for retrieving inner objects within the threshold distance ε from each outer object in an outer segment. This observation is formalized in Lemma 1, which states a simple but important fact regarding the shared execution of ε -distance join queries in road networks—if we evaluate two range queries at outer objects r i and r j , which correspond to the two end points of an outer segment r i r i + 1 r j ¯ , then we can retrieve inner objects within distance ε from outer objects r i + 1 , , r j 1 without duplicating the network traversal. Thus, the two range queries at r i and r j are sufficient for retrieving inner objects within distance ε from the other outer objects r i + 1 , , r j 1 .
Lemma 1.
For every outer object r r i r j ¯ , it holds that S r ε S r i ε S r j ε S ( r i r j ¯ ) , where S r i ε ( S r j ε ) is the set of inner objects within distance ε from an outer object r i ( r j ), and S ( r i r j ¯ ) is the set of inner objects located in the outer segment r i r j ¯ (e.g., s 2 r 3 r 5 r 4 ¯ in Figure 4).
Proof. 
We prove Lemma 1 by contradiction. We assume that S r ε S r i ε S r j ε S ( r i r j ¯ ) does not hold, i.e., S r ε S r i ε S r j ε S ( r i r j ¯ ) . Then this implies that there is an inner object s +   S r ε such that s + S r i ε S r j ε S ( r i r j ¯ ) , i.e., s + S r i ε , s + S r j ε , and s + S ( r i r j ¯ ) . Clearly, s + S r i ε means that d i s t ( r i , s + ) > ε . Similarly, s + S r j ε means that d i s t ( r j , s + ) > ε . Clearly, s + S ( r i r j ¯ ) means that s + is not located in r i r j ¯ . Therefore, the shortest path from r to s + passes through either r i or r j and the distance from r to s + is determined by d i s t ( r , s + ) = m i n { l e n ( r , r i ) + d i s t ( r i , s + ) , l e n ( r , r j ) + d i s t ( r j , s + ) } . From the previous condition, both d i s t ( r i , s + ) > ε and d i s t ( r j , s + ) > ε , which leads to d i s t ( r , s + ) > ε . Thus, s + cannot belong to S r ε , which contradicts the assumption that an inner object s + S r ε exists such that S r ε S r i ε S r j ε S ( r i r j ¯ ) . Consequently, it holds that S r ε S r i ε S r j ε S ( r i r j ¯ ) for r r i r j ¯ . □
We determine the inner objects within distance ε from an outer object r r i r j ¯ among inner objects in S r i ε S r j ε S ( r i r j ¯ ) . First, we compute the distance from an outer object r r i r j ¯ to an inner object s S r i ε S r j ε S ( r i r j ¯ ) . If there exists a path r r i s (i.e., s S r i ε ), then the distance from r to s is d i s t ( r , s ) = l e n ( r , r i ) + d i s t ( r i , s ) , as shown in Figure 5a. Similarly, if there exists a path r r j s (i.e., s S r j ε ), then the distance from r to s is d i s t ( r , s ) = l e n ( r , r j ) + d i s t ( r j , s ) , as shown in Figure 5b. If the inner object s is located in r i r j ¯ (i.e., s r i r j ¯ ), then the distance from r to s is d i s t ( r , s ) = l e n ( r , s ) , as shown in Figure 5c. Because d i s t ( r , s ) is the length of the shortest path among multiple paths between r and s , d i s t ( r , s ) is computed as follows.
d i s t ( r , s ) = { m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) } if   s r i r j ¯ m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) , l e n ( r , s ) } otherwise
Table 2 explains how to compute the distance from r to s , where r r i r j ¯ and s S r i ε S r j ε S ( r i r j ¯ ) . The inner object s belongs to a combination of S r i ε , S r j ε , and S ( r i r j ¯ ) , so seven possible cases are considered in total. Clearly, it is trivial to retrieve a set S ( r i r j ¯ ) of inner objects that are located in r i r j ¯ compared with retrieving a set S r i ε ( S r j ε ) of inner objects within distance ε from an outer object r i ( r j ).

4.3. Naive EDISON Algorithm

Algorithm 1 describes the naive EDISON algorithm, which employs the grouping of outer objects and shared execution to reduce query processing time. This algorithm involves two steps. In the first step, adjacent outer objects in a vertex sequence are grouped into an outer segment. Similarly, adjacent inner objects in a vertex sequence are also grouped into an inner segment. In other words, R and S are transformed into R ¯ and S ¯ , respectively. For simplicity, we assume that | R ¯ | | S ¯ | . If | R ¯ | > | S ¯ | , we simply evaluate S ε R , because R ε S = S ε R . In the second step, the naive EDISON algorithm explores each outer segment r i r j ¯ sequentially to retrieve inner objects that are within distance ε from each outer object in the outer segment r i r j ¯ . Depending on the number of outer objects in r i r j ¯ , there are three possible cases, which the naive EDISON algorithm handles differently: (1) | r i r j ¯ | = 1 ; (2) | r i r j ¯ | = 2 ; and (3) | r i r j ¯ | > 2 . If | r i r j ¯ | = 1 , a range query R N Q ( ε , r i ) is evaluated at r i because r i r j ¯ includes an outer object r i ( = r j ) only. Then, a partial join result Φ ( r i ) is simply obtained from the range query result S r i ε at r i , i.e., Φ ( r i ) = { ( r i , s ) | s S r i ε } . The partial join result Φ ( r i ) is added to the ε -distance join query result Φ ( R ) , i.e., Φ ( R ) = Φ ( R ) Φ ( r i ) (lines 8‒10). If | r i r j ¯ | = 2 , two range queries, R N Q ( ε , r i ) and R N Q ( ε , r j ) , are evaluated at r i and r j , respectively, because r i r j ¯ includes only two outer objects r i and r j . Then, two partial join results Φ ( r i ) and Φ ( r j ) are simply obtained from the range query results S r i ε and S r j ε at r i and r j , respectively, i.e., Φ ( r i ) = { ( r i , s ) | s S r i ε } and Φ ( r j ) = { ( r j , s ) | s S r j ε } . These partial join results Φ ( r i ) and Φ ( r j ) are added to the ε -distance join query result Φ ( R ) , i.e., Φ ( R ) = Φ ( R ) Φ ( r i ) Φ ( r j ) (lines 11‒14). Finally, if | r i r j ¯ | > 2 , only two range queries, R N Q ( ε , r i ) and R N Q ( ε , r j ) , are evaluated at r i and r j , respectively, similar to the case of | r i r j ¯ | = 2 . According to Lemma 1, a partial join result Φ ( r i r j ¯ ) can be obtained from S r i ε S r j ε S ( r i r j ¯ ) using the shared execution method (lines 15‒19), which is detailed in Lemma 2. This is because the partial join result Φ ( r i r j ¯ ) is the set of object pairs ( r , s ) that are within distance ε , where r r i r j ¯ and s S r i ε S r j ε S ( r i r j ¯ ) , i.e., Φ ( r i r j ¯ ) = { ( r , s ) | d i s t ( r , s ) ε   for   r r i r j ¯   and   s S r i ε S r j ε S ( r i r j ¯ ) } . Finally, the ε -distance join query result Φ ( R ) is returned after all outer segments have been processed (line 20), i.e., Φ ( R ) = Φ ( r i r j ¯ ) for each outer segment r i r j ¯ R ¯ . In Lemma 2, we prove the correctness of the naive EDISON algorithm.
Algorithm 1: Naive_EDISON ( ε , R , S )
Input: ε : threshold distance, R : set of outer objects, S : set of inner objects
Output: R ε S : set of object pairs ( r , s ) R × S such that d i s t ( r , s ) ε
1 Φ ( R ) // Φ ( R ) is the set of object pairs ( r , s ) R × S such that d i s t ( r , s ) ε .
2// Step 1: neighboring outer objects are grouped and neighboring inner objects are also grouped.
3 R ¯ g r o u p _ o b j e c t s ( R ) // Outer objects in a vertex sequence are grouped into an outer segment.
4 S ¯ g r o u p _ o b j e c t s ( S ) // Inner objects in a vertex sequence are grouped into an inner segment.
5// For simplicity, we assume that | R ¯ | | S ¯ | . if | R ¯ | > | S ¯ | , we simply evaluate S ε R .
6// Step 2: r i r j ¯ ε S is evaluated for each outer segment r i r j ¯ R ¯ .
7for each outer segment r i r j ¯ R ¯ do
8if | r i r j ¯ | = 1 then// | r i r j ¯ | = 1 means that r i r j ¯ contains an outer object r i only.
9 S r i ε R N Q ( ε , r i ) // A range query is evaluated at r i and its result is S r i ε .
10 Φ ( R ) Φ ( R ) Φ ( r i ) // Note that Φ ( r i ) = { ( r i , s ) | s S r i ε } .
11else if | r i r j ¯ | = 2 then// | r i r j ¯ | = 2 means that r i r j ¯ contains two outer objects r i and r j .
12 S r i ε R N Q ( ε , r i ) // A range query is evaluated at r i and its result is S r i ε .
13 S r j ε R N Q ( ε , r j ) // Another range query is evaluated at r j and its result is S r j ε .
14 Φ ( R ) Φ ( R ) Φ ( r i ) Φ ( r j ) // Note that Φ ( r i ) = { ( r i , s ) | s S r i ε } and Φ ( r j ) = { ( r j , s ) | s S r j ε } .
15else if | r i r j ¯ | > 2 then// | r i r j ¯ | 2 means that r i r j ¯ contains more than two outer objects.
16 S r i ε R N Q ( ε , r i ) // A range query is evaluated at r i and its result is S r i ε .
17 S r j ε R N Q ( ε , r j ) // Another range query is evaluated at r j and its result is S r j ε .
18 Φ ( r i r j ¯ ) D J Q ( ε , r i r j ¯ ,   S r i ε S r j ε S ( r i r j ¯ ) ) // D J Q is explained in Algorithm 3.
19 Φ ( R ) Φ ( R ) Φ ( r i r j ¯ ) // Φ ( r i r j ¯ ) = { ( r , s ) | d i s t ( r , s ) ε   for   r r i r j ¯ ,   s S r i ε S r j ε S ( r i r j ¯ ) } .
20return Φ ( R ) // Φ ( R ) stores the result of R ε S .
Lemma 2.
The naive EDISON algorithm is correct.
Proof. 
We prove the correctness of the naive EDISON algorithm by cases. As shown in Algorithm 1, the naive EDISON algorithm handles the following three cases differently depending on the number of outer objects in an outer segment r i r j ¯ , namely, (1) | r i r j ¯ | = 1 , (2) | r i r j ¯ | = 2 , and (3) | r i r j ¯ | > 2 . In the first two cases (i.e., | r i r j ¯ | = 1 and | r i r j ¯ | = 2 ), a range query is used to retrieve inner objects s within distance ε from each outer object r r i r j ¯ . This is same as a straightforward method used to answer ε -distance join queries by issuing a range query for each outer object r R . For | r i r j ¯ | = 1 , the naive EDISON algorithm evaluates a range query R N Q ( ε , r i ) for only an outer object r i , and adds an object pair ( r i , s ) to the ε -distance join query result for each inner object s S r i ε . Therefore, the naive EDISON algorithm is correct for | r i r j ¯ | = 1 because R N Q ( ε , r i ) simply retrieves inner objects s within distance ε from r i . Similarly, for | r i r j ¯ | = 2 , the naive EDISON algorithm evaluates two range queries, R N Q ( ε , r i ) and R N Q ( ε , r j ) , for two outer objects r i and r j , respectively. The naive EDISON algorithm then adds an object pair ( r i , s ) to the ε -distance join query result for each inner object s S r i ε , and adds an object pair ( r j , s ) to the ε -distance join query result for each inner object s S r j ε . Therefore, the naive EDISON algorithm is correct for | r i r j ¯ | = 2 because R N Q ( ε , r i ) and R N Q ( ε , r j ) retrieve inner objects s within distance ε from r i and r j , respectively.
The proof for the correctness of the naive EDISON algorithm for | r i r j ¯ | > 2 differs from that for | r i r j ¯ | = 1 and | r i r j ¯ | = 2 because the naive EDISON algorithm exploits the shared execution strategy for | r i r j ¯ | > 2 . Note that the naive EDISON algorithm evaluates only two range queries R N Q ( ε , r i ) and R N Q ( ε , r j ) for | r i r j ¯ | > 2 . The key idea of the proof of the correctness for | r i r j ¯ | > 2 is to compute the distance between an outer object r and each candidate inner object s without evaluating a range query for r , where r r i r j ¯ { r i , r j } and s S r i ε S r j ε S ( r i r j ¯ ) . According to Lemma 1, we can retrieve inner objects within distance ε from every outer object r r i r j ¯ among the candidate inner objects s S r i ε S r j ε S ( r i r j ¯ ) . The distance between r and s , d i s t ( r , s ) , determines whether an object pair ( r , s ) is included in the ε -distance join query result. Let us compute the distance between an outer object r and candidate inner object s . To do so, we consider the two cases, s r i r j ¯ and s r i r j ¯ , as shown in Figure 6a,b, respectively. If s r i r j ¯ , the distance from r to s is evaluated as d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) } because there are two possible paths from r to s , i.e., r r i s and r r j s ; otherwise, the distance from r to s is evaluated as d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) , l e n ( r , s ) } because there are three possible paths from r to s , i.e., r r i s , r r j s , and r s . If d i s t ( r , s ) ε , an object pair ( r , s ) is included in the ε -distance join query result; otherwise, the object pair ( r , s ) is not included. Therefore, the naive EDISON algorithm is correct for | r i r j ¯ | > 2 . Consequently, the naive EDISON algorithm is correct for | r i r j ¯ | = 1 , | r i r j ¯ | = 2 , and | r i r j ¯ | > 2 . □

4.4. Evaluation of an Example ε -Distance Join Query Using the Naive EDISON Algorithm

We discuss how to evaluate the ε -distance join query in Figure 3 using the naive EDISON algorithm. Recall that ε = 5 , R = { r 1 , r 2 , r 3 , r 4 , r 5 } , and S = { s 1 , s 2 , s 3 , s 4 , s 5 , s 6 } are given and that outer objects r 1 through r 5 are grouped into outer segments r 1 r 2 ¯ and r 3 r 5 r 4 ¯ , as shown in Figure 4. Table 3 summarizes the computation of R ε S for the naive EDISON algorithm.
Because Algorithm 1 processes outer segments one by one, we determine inner objects within the threshold distance ε from each outer object r r 1 r 2 ¯ followed by r 3 r 5 r 4 ¯ . Two range queries R N Q ( 5 , r 1 ) and R N Q ( 5 , r 2 ) are evaluated for an outer segment r 1 r 2 ¯ , whose results are S r 1 ε = { s 1 , s 5 } and S r 2 ε = { s 1 , s 6 } , respectively. Because | r 1 r 2 ¯ | = 2 holds, we can simply obtain the partial join result Φ ( r 1 r 2 ¯ ) for r 1 r 2 ¯ , i.e., Φ ( r 1 r 2 ¯ ) = Φ ( r 1 ) Φ ( r 2 ) = { ( r 1 , s 1 ) , ( r 1 , s 5 ) , ( r 2 , s 1 ) , ( r 2 , s 6 ) } .
Similarly, two range queries R N Q ( 5 , r 3 ) and R N Q ( 5 , r 4 ) are evaluated for an outer segment r 3 r 5 r 4 ¯ , whose results are S r 3 ε = { s 6 } and S r 4 ε = { s 2 , s 3 } , respectively. Because we have S r 3 ε = { s 6 } , S r 4 ε = { s 2 , s 3 } , and S ( r 3 r 5 r 4 ¯ ) = { s 2 } , we can compute the distance ε from r 5 r 3 r 5 r 4 ¯ to each candidate inner object s S r 3 ε S r 4 ε S ( r 3 r 5 r 4 ¯ ) and can retrieve inner objects within distance ε from r 5 . For this, we need to compute the distance from r 5 to each candidate inner object s { s 2 , s 3 , s 6 } . Because s 2 S r 4 ε S ( r 3 r 5 r 4 ¯ ) S r 3 ε according to Table 3, the distance from r 5 to s 2 is d i s t ( r 5 , s 2 ) = m i n { l e n ( r 5 , r 4 ) + d i s t ( r 4 , s 2 ) , l e n ( r 5 , s 2 ) } = min { 10 , 4 } = 4 , as shown in Figure 7a. Similarly, because s 3 S r 4 ε ( S r 3 ε S ( r 3 r 5 r 4 ¯ ) ) according to Table 3, the distance from r 5 to s 3 is d i s t ( r 5 , s 3 ) = l e n ( r 5 , r 4 ) + d i s t ( r 4 , s 3 ) = 10 , as shown in Figure 7b. Finally, because s 6 S r 3 ε ( S r 4 ε S ( r 1 r 5 r 4 ¯ ) ) according to Table 3, the distance from r 5 to s 6 is d i s t ( r 5 , s 6 ) = l e n ( r 5 , r 3 ) + d i s t ( r 3 , s 6 ) = 6 , as shown in Figure 7c. Thus, S r 5 ε = { s 2 } given that d i s t ( r 5 , s 2 ) = 4 , d i s t ( r 5 , s 3 ) = 10 , and d i s t ( r 5 , s 6 ) = 6 . The partial join result Φ ( r 3 r 5 r 4 ¯ ) for r 3 r 5 r 4 ¯ is obtained by taking the union of the three range query results at r 3 , r 4 , and r 5 , i.e., Φ ( r 3 r 5 r 4 ¯ ) = Φ ( r 3 ) Φ ( r 4 ) Φ ( r 5 ) = { ( r 3 , s 6 ) , ( r 4 , s 2 ) , ( r 4 , s 3 ) , ( r 5 , s 2 ) } where Φ ( r 3 ) = { ( r 3 , s 6 ) } , Φ ( r 4 ) = { ( r 4 , s 2 ) , ( r 4 , s 3 ) } , and Φ ( r 5 ) = { ( r 5 , s 2 ) } . Consequently, we have the result Φ ( R ) of the ε -distance join query, i.e., Φ ( R ) = Φ ( r 1 r 2 ¯ ) Φ ( r 3 r 5 r 4 ¯ ) = { ( r 1 , s 1 ) , ( r 1 , s 5 ) , ( r 2 , s 1 ) , ( r 2 , s 6 ) , ( r 3 , s 6 ) , ( r 4 , s 2 ) , ( r 4 , s 3 ) , ( r 5 , s 2 ) } .

5. Optimal Shared Execution for ε -Distance Join Queries in Road Networks

5.1. Extending Shared Execution Processing to Adjacent Outer Segments

We can extend the shared execution processing to adjacent outer segments. We call this shared execution processing the EDISON method. To this end, we investigate the number of outer segments that belong to adjacent vertex sequences of an intersection vertex. Let Ω ( v x ) be the number of outer segments in vertex sequences adjacent to an intersection vertex v x . If Ω ( v x ) = 0 , as shown in Figure 8a, no range query is issued at v x . If Ω ( v x ) = 1 , as shown in Figure 8b, a range query R N Q ( ε , r i ) is issued at r i . If Ω ( v x ) 2 , as shown in Figure 8c, a range query R N Q ( ε v x , v x ) is issued at v x , where Ω ( v x ) = n and ε v x = ε m i n { l e n ( v x , r i 1 ) , l e n ( v x , r i 2 ) , , l e n ( v x , r i n ) } . Naturally, if ε v x 0 , no range query at v x is issued. In summary, if Ω ( v x ) = 1 , the same shared execution as the naive EDISON algorithm is applied to an outer segment, and if Ω ( v x ) 2 , an extended shared execution is applied to outer segments adjacent to v x .
Returning to the example in Figure 3, we reevaluate the ε -distance join query to demonstrate the effectiveness of considering the shared execution of adjacent outer segments. To answer the ε -distance join query, the naive EDISON method would evaluate four range queries R N Q ( 5 , r 1 ) , R N Q ( 5 , r 2 ) ,   R N Q ( 5 , r 3 ) , and R N Q ( 5 , r 4 ) whereas the EDISON method only evaluates the range query R N Q ( 4 , v 3 ) at the intersection vertex v 3 . This occurs because there are two intersection vertices v 1 and v 3 , as shown in Figure 4a and we have Ω ( v 1 ) = 2 , Ω ( v 3 ) = 2 , ε v 1 = ε m i n { l e n ( v 1 , r 1 ) , l e n ( v 1 , r 4 ) } = 5 m i n { 12 , 7 } = 2 , so ε v 3 = ε m i n { l e n ( v 3 , r 2 ) , l e n ( v 3 , r 3 ) } = 5 m i n { 2 , 1 } = 4 .
We present a simple heuristic where no range queries close to terminal vertices are issued. As shown in Figure 9, the example network has one intersection vertex v x and three terminal vertices v 3 , v 4 , and v 5 . In this figure, the naive EDISON method evaluates two range queries R N Q ( ε , r i ) and R N Q ( ε , r j ) to answer the ε -distance join query. However, the EDISON method evaluates only the range query R N Q ( ε , r i ) to answer the same ε -distance join query. This is because S r i ε S r j ε S ( r i r j ¯ ) = S r i ε S ( r i r j v 3 ¯ ) holds, and it is sufficient to evaluate the range query R N Q ( ε , r i ) rather than the two range queries R N Q ( ε , r i ) and R N Q ( ε , r j ) .

5.2. EDISON Algorithm

Algorithm 2 describes the EDISON algorithm based on shared execution to avoid redundant range queries while processing ε -distance join queries. For simplicity, we assume that | R ¯ | | S ¯ | , because R ε S = S ε R . The EDISON algorithm examines Ω ( v x ) , the number of outer segments adjacent to each intersection vertex v x , and applies the extended shared execution to outer segments adjacent to v x if Ω ( v x ) 2 . If Ω ( v x ) < 2 , then no range query is issued at v x . If Ω ( v x ) 2 and ε v x > 0 , then a range query R N Q ( ε v x , v x ) is issued and its result is saved to S v x ε v x , where ε v x = ε m i n { l e n ( v x , r i 1 ) , l e n ( v x , r i 2 ) , , l e n ( v x , r i n ) } , assuming that outer segments r i 1 r j 1 ¯ , r i 2 r j 2 ¯ , , r i n r j n ¯ are adjacent to v x and that r i k is closer to v x than r j k for 1 k n (lines 8‒11).
Next, for each outer segment r i r j ¯ R ¯ , we retrieve a set of object pairs ( r , s ) within distance ε from each outer object r r i r j ¯ . We assume that r i   ( r j ) is close to v l   ( v m ) for an outer segment r i r j ¯ v l v m ¯ . We consider the following four cases depending on the values of Ω ( v l ) and Ω ( v m ) , where v l v m ¯ is a vertex sequence containing an outer segment r i r j ¯ : (1) Ω ( v l ) = Ω ( v m ) = 1 ; (2) Ω ( v l ) = 1 and Ω ( v m ) 2 ; (3) Ω ( v l ) 2 and Ω ( v m ) = 1 ; and (4) Ω ( v l ) 2 and Ω ( v m ) 2 . If Ω ( v l ) = 1 and Ω ( v m ) = 1 , then inner objects within distance ε from each outer object r r i r j ¯ are retrieved among the candidate inner objects in S r i ε S r j ε S ( r i r j ¯ ) (lines 13‒16). If Ω ( v l ) = 1 and Ω ( v m ) 2 , then inner objects within distance ε from each outer object r r i r j ¯ are retrieved among the candidate inner objects in S r i ε S v m ε v m S ( r i v m ¯ ) (lines 17‒19). If Ω ( v l ) 2 and Ω ( v m ) = 1 , then inner objects within distance ε from each outer object r r i r j ¯ are retrieved among the candidate inner objects in S v l ε v l S r j ε S ( v l r j ¯ ) (lines 20‒22). Finally, if Ω ( v l ) 2 and Ω ( v m ) 2 , then inner objects within distance ε from each outer object r r i r j ¯ are retrieved among the candidate inner objects in S v l ε v l S v m ε v m S ( v l v m ¯ ) (lines 23‒24). A partial join result Φ ( r i r j ¯ ) for r i r j ¯ is added to the query result Φ ( R ) . Finally, the ε -distance join query result Φ ( R ) is returned after all outer segments have been processed (line 26), i.e., Φ ( R ) = Φ ( r i r j ¯ ) for each outer segment r i r j ¯ R ¯ .
Algorithm 2: EDISON ( ε , R , S )
Input: R : set of outer objects, S : set of inner objects
Output: R ε S : set of object pairs ( r , s ) R × S such that d i s t ( r , s ) ε
1 Φ ( R ) // Φ ( R ) is the set of object pairs ( r , s ) R × S such that d i s t ( r , s ) ε .
2// Step 1: neighboring outer objects are grouped and neighboring inner objects are also grouped.
3 R ¯ group _ objects ( R ) // Outer objects in a vertex sequence are grouped into an outer segment.
4 S ¯ group _ objects ( S ) // Inner objects in a vertex sequence are grouped into an inner segment.
5// For simplicity, we assume that | R ¯ | | S ¯ | . if | R ¯ | > | S ¯ | , we simply evaluate S ε R .
6// Step 2: r i r j ¯ ε S is evaluated by extending shared execution processing to adjacent outer segments.
7for each intersection vertex v x do
8if Ω ( v x ) 2 then// Ω ( v x ) 2 means that more than two outer segments are adjacent to v x .
9 ε v x ε min { l e n ( v x , r i 1 ) , l e n ( v x , r i 2 ) , , l e n ( v x , r i n ) } // assume that Ω ( v x ) = n .
10if ε v x > 0 then// If ε v x 0 , then no range query is evaluated at v x .
11 S v x ε v x R N Q ( ε v x , v x ) // Otherwise, a range query R N Q ( ε v x , v x ) is evaluated at v x .
12for each outer segment r i r j ¯ v l v m ¯ do// Assume that r i ( r j ) is close to v l ( v m ).
13if Ω ( v l ) = 1 and Ω ( v m ) = 1 then
14 S r i ε R N Q ( ε , r i ) // A range query is evaluated at r i because no range query is issued at v l .
15 S r j ε R N Q ( ε , r j ) // A range query is evaluated at r j because no range query is issued at v m .
16 Φ ( r i r j ¯ ) D J Q ( ε , r i r j ¯ ,   S r i ε S r j ε S ( r i r j ¯ ) )
17else if Ω ( v l ) = 1 and Ω ( v m ) 2 then
18 S r i ε R N Q ( ε , r i ) // A range query is evaluated at r i because no range query is issued at v l .
19 Φ ( r i r j ¯ ) D J Q ( ε , r i r j ¯ , S r i ε S v m ε v m S ( r i v m ¯ ) ) // S v m ε v m is reused by outer segments adjacent to v m .
20else if Ω ( v l ) 2 and Ω ( v m ) = 1 then
21 S r j ε R N Q ( ε , r j ) // A range query is evaluated at r j because no range query is issued at v m .
22 Φ ( r i r j ¯ ) D J Q ( ε , r i r j ¯ , S v l ε v l S r j ε S ( v l r j ¯ ) ) // S v l ε v l is reused by outer segments adjacent to v l .
23else if Ω ( v l ) 2 and Ω ( v m ) 2 then
24 Φ ( r i r j ¯ ) D J Q ( ε , r i r j ¯ , S v l ε v l S v m ε v m S ( v l v m ¯ ) ) // S v l ε v l ( S v m ε v m ) is reused by outer segments adjacent to v l ( v m ).
25 Φ ( R ) Φ ( R ) Φ ( r i r j ¯ ) // A partial join result Φ ( r i r j ¯ ) for r i r j ¯ is added to Φ ( R ) .
26return Φ ( R ) // Φ ( R ) stores the result of R ε S .
Algorithm 3 retrieves a set Φ ( r i r j ¯ ) of object pairs ( r , s ) within distance ε , where r r i r j ¯ and s S α ε α S β ε β S ( α β ¯ ) . First, Φ ( r i r j ¯ ) is initialized to the empty set. According to the condition of an inner object s S α ε α S β ε β S ( α β ¯ ) , the distance from r to s is computed (lines 4‒11). Note that d i s t ( r , s ) in Algorithm 3 may not necessarily be the length of the shortest path from r to s , as discussed in Section 5.3. If d i s t ( r , s ) ε , then the object pair ( r , s ) is added to the partial join result Φ ( r i r j ¯ ) (lines 12‒14). Clearly, Φ ( r i r j ¯ ) is returned after all candidate object pairs ( r , s ) have been examined (line 15). In Lemma 3, we prove the correctness of the EDISON algorithm.
Algorithm 3: D J Q ( ε , r i r j ¯ , S α ε α S β ε β S ( α β ¯ ) )
Input: ε : threshold distance, r i r j ¯ : outer segment, S α ε α S β ε β S ( α β ¯ ) : set of candidate inner objects for outer objects in r i r j ¯
Output: Φ ( r i r j ¯ ) : set of object pairs ( r , s ) such that d i s t ( r , s ) ε for r r i r j ¯ and s S α ε α S β ε β S ( α β ¯ )
1 Φ ( r i r j ¯ ) // Φ ( r i r j ¯ ) is the set of object pairs ( r , s ) within distance ε where r r i r j ¯   a n d   s S α ε α S β ε β S ( α β ¯ ) .
2for each outer object r r i r j ¯ do
3for each inner object s S α ε α S β ε β S ( α β ¯ ) do
4// d i s t ( r , s ) is computed according to the condition of s .
5if s S α ε α S β ε β S ( α β ¯ ) then dist ( r , s ) m i n { l e n ( r , α ) + d i s t ( α , s ) ,   l e n ( r , β ) + d i s t ( β , s ) , l e n ( r , s ) }
6else if s S α ε α S β ε β S ( α β ¯ ) then d i s t ( r , s ) m i n { l e n ( r , α ) + d i s t ( α , s ) ,   l e n ( r , β ) + d i s t ( β , s ) }
7else if s S α ε α S ( α β ¯ ) S β ε β then d i s t ( r , s ) m i n { l e n ( r , α ) + d i s t ( α , s ) , l e n ( r , s ) }
8else if s S β ε β S ( α β ¯ ) S α ε α then d i s t ( r , s ) m i n { l e n ( r , β ) + d i s t ( β , s ) , l e n ( r , s ) }
9else if s S α ε α ( S β ε β S ( α β ¯ ) ) then d i s t ( r , s ) l e n ( r , α ) + d i s t ( α , s )
10else if s S β ε β ( S α ε α S ( α β ¯ ) ) then d i s t ( r , s ) l e n ( r , β ) + d i s t ( β , s )
11else if s S ( α β ¯ ) ( S α ε α S β ε β ) then d i s t ( r , s ) l e n ( r , s )
12// If d i s t ( r , s ) ε then an object pair ( r , s ) is involved in the query result.
13if d i s t ( r , s ) ε then
14 Φ ( r i r j ¯ ) Φ ( r i r j ¯ ) { ( r , s ) }
15return Φ ( r i r j ¯ ) // A partial join result Φ ( r i r j ¯ ) for r i r j ¯ is returned.
Lemma 3.
The EDISON algorithm is correct.
Proof. 
We prove the correctness of the EDISON algorithm by cases. As shown in Algorithm 2, the EDISON algorithm handles the following four cases differently depending on the values of Ω ( v l ) and Ω ( v m ) of a vertex sequence v l v m ¯ containing an outer segment r i r j ¯ , namely, (1) Ω ( v l ) = Ω ( v m ) = 1 ; (2) Ω ( v l ) = 1 and Ω ( v m ) 2 ; (3) Ω ( v l ) 2 and Ω ( v m ) = 1 ; and (4) Ω ( v l ) 2 and Ω ( v m ) 2 . For Ω ( v l ) = Ω ( v m ) = 1 , two range queries, R N Q ( ε , r i ) and R N Q ( ε , r j ) , are evaluated at r i and r j , respectively. According to Lemma 1, we can retrieve the inner objects within distance ε from every outer object r r i r j ¯ among the candidate inner objects s S r i ε S r j ε S ( r i r j ¯ ) . The EDISON algorithm computes the distance d i s t ( r , s ) from an outer object r to each candidate inner object s S r i ε S r j ε S ( r i r j ¯ ) . Because d i s t ( r , s ) is the length of the shortest path among three possible paths (i.e., r r i s , r r j s , and r s if s r i r j ¯ ), it is determined simply depending on the conditions listed in Algorithm 3. Specifically, if s r i r j ¯ , then d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) } ; otherwise, d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) , l e n ( r , s ) } . If d i s t ( r , s ) ε , an object pair ( r , s ) is included in the ε -distance join query result; otherwise, the object pair ( r , s ) is not included. Therefore, the EDISON algorithm is correct for Ω ( v l ) = Ω ( v m ) = 1 .
For Ω ( v l ) = 1 and Ω ( v m ) 2 , two range queries, R N Q ( ε , r i ) and R N Q ( ε v m , v m ) , are evaluated at r i and v m , respectively, where ε v m = ε m i n { l e n ( v m , r j 1 ) , l e n ( v m , r j 2 ) , , l e n ( v m , r j n ) } , assuming that the outer segments r i 1 r j 1 ¯ , r i 2 r j 2 ¯ , , r i n r j n ¯ are adjacent to v m , and that r j k is closer to v m than r i k for 1 k Ω ( v m ) . Because r i r j ¯ { r i 1 r j 1 ¯ , r i 2 r j 2 ¯ , , r i n r j n ¯ } and ε v m ε , set S v m ε v m of the inner objects within distance ε v m from v m contains set S v m ε of the inner objects within distance ε from v m , where ε = ε l e n ( v m , r j ) , i.e., S v m ε S v m ε v m . According to Lemma 1, we can retrieve inner objects within distance ε from every outer object r r i r j ¯ among the candidate inner objects s S r i ε S v m ε v m S ( r i v m ¯ ) because S r i ε S v m ε v m S ( r i v m ¯ ) contains S r i ε S r j ε S ( r i r j ¯ ) . The EDISON algorithm computes the distance d i s t ( r , s ) from an outer object r to each candidate inner object s S r i ε S v m ε v m S ( r i v m ¯ ) . Because d i s t ( r , s ) is the length of the shortest path among three possible paths (i.e., r r i s , r v m s , and r s if s r i v m ¯ ), it is determined simply depending on the conditions listed in Algorithm 3. Specifically, if s r i v m ¯ , then d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , v m ) + d i s t ( v m , s ) } ; otherwise, d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , v m ) + d i s t ( v m , s ) , l e n ( r , s ) } . If d i s t ( r , s ) ε , an object pair ( r , s ) is included in the ε -distance join query result; otherwise, the object pair ( r , s ) is not included. Therefore, the EDISON algorithm is correct for Ω ( v l ) = 1 and Ω ( v m ) 2 . Without loss of generality, the proof of the correctness of the EDISON algorithm for Ω ( v l ) 2 and Ω ( v m ) = 1 can be simply obtained by interchanging the roles of v l and v m , as well as the roles of r i and r j , in the proof for Ω ( v l ) = 1 and Ω ( v m ) 2 , which is omitted.
Finally, for Ω ( v l ) 2 and Ω ( v m ) 2 , two range queries, R N Q ( ε v l , v l ) and R N Q ( ε v m , v m ) , are evaluated at v l and v m , respectively, where ε v l = ε m i n { l e n ( v l , r a 1 ) , , l e n ( v l , r a n ) } and ε v m = ε min { l e n ( v m , r d 1 ) , , l e n ( v m , r d n ) } . It is assumed that the outer segments r a 1 r b 1 ¯ , , r a n r b n ¯ ( r c 1 r d 1 ¯ , , r c n r d n ¯ ) are adjacent to v l ( v m ) , and that r a k ( r d k ) is closer to v l ( v m ) than r b k ( r c k ) for 1 k Ω ( v l ) ( 1 k Ω ( v m ) ) . Because r i r j ¯ { r a 1 r b 1 ¯ , , r a n r b n ¯ } ( r i r j ¯ { r c 1 r d 1 ¯ , , r c n r d n ¯ } ) and ε v l ε l e n ( v l , r i ) ( ε v m ε l e n ( v m , r j ) ) , set S v l ε v l ( S v m ε v m ) of the inner objects within distance ε v l ( ε v m ) from v l ( v m ) contains set S v l ε ( S v m ε ) of the inner objects within distance ε ( ε ) from v l ( v m ) , where ε = ε l e n ( v l , r i ) ( ε = ε l e n ( v m , r j ) ) , i.e., S v l ε S v l ε v l ( S v m ε S v m ε v m ) . According to Lemma 1, we can retrieve the inner objects within distance ε from every outer object r r i r j ¯ among the candidate inner objects s S v l ε v l S v m ε v m S ( v l v m ¯ ) because S v l ε v l S v m ε v m S ( v l v m ¯ ) contains S r i ε S r j ε S ( r i r j ¯ ) . The EDISON algorithm computes the distance d i s t ( r , s ) from an outer object r r i r j ¯ to each candidate inner object s S v l ε v l S v m ε v m S ( v l v m ¯ ) . Because d i s t ( r , s ) is the length of the shortest path among three possible paths (i.e., r v l s , r v m s , and r s if s v l v m ¯ ), it is determined simply depending on the conditions listed in Algorithm 3. Specifically, if s v l v m ¯ , then d i s t ( r , s ) = m i n { l e n ( r , v l ) + d i s t ( v l , s ) , l e n ( r , v m ) + d i s t ( v m , s ) } ; otherwise, d i s t ( r , s ) = m i n { l e n ( r , v l ) + d i s t ( v l , s ) , l e n ( r , v m ) + d i s t ( v m , s ) , l e n ( r , s ) } . If d i s t ( r , s ) ε , an object pair ( r , s ) is included in the ε -distance join query result; otherwise, the object pair ( r , s ) is not included. Therefore, the EDISON algorithm is correct for Ω ( v l ) 2 and Ω ( v m ) 2 . Consequently, the EDISON algorithm is correct for Ω ( v l ) = Ω ( v m ) = 1 , Ω ( v l ) = 1 and Ω ( v m ) 2 , Ω ( v l ) 2 and Ω ( v m ) = 1 , and Ω ( v l ) 2 and Ω ( v m ) 2 .

5.3. Evaluation of an Example ε -Distance Join Query Using the EDISON Algorithm

We discuss how to evaluate the ε -distance join query in Figure 3 using the EDISON algorithm. As shown in Figure 4, R and S are grouped into R ¯ = { r 1 r 2 ¯ , r 3 r 5 r 4 ¯ } and S ¯ = { s 1 s 5 s 4 ¯ , s 2 s 3 ¯ , s 6 } , respectively. Because | R ¯ | < | S ¯ | , we evaluate R ε S . There are two intersection vertices, v 1 and v 3 , both of which are adjacent to r 1 r 2 ¯ and r 3 r 5 r 4 ¯ . Therefore, to determine whether range queries at v 1 and v 3 are evaluated, the EDISON algorithm computes the distances ε v 1 and ε v 3 for the range queries at v 1 and v 3 , respectively. Because ε v 1 = ε m i n { l e n ( v 1 , r 1 ) , l e n ( v 1 , r 4 ) } = 5 m i n { 12 , 7 } = 2 and ε v 3 = ε m i n { l e n ( v 3 , r 2 ) , l e n ( v 3 , r 3 ) } = 5 m i n { 2 , 1 } = 4 , the EDISON algorithm evaluates the range query R N Q ( 4 , v 3 ) only. Clearly, the range query R N Q ( 2 , v 1 ) returns the empty set. Table 4 summarizes the computation of R ε S for the EDISON algorithm.
We retrieve inner objects within distance ε from each outer object r r 1 r 2 ¯ among the candidate inner objects, followed by inner objects within distance ε from each outer object r r 3 r 5 r 4 ¯ . As shown in Table 4, { s 1 , s 4 , s 5 , s 6 } is the set of candidate inner objects for r 1 r 2 ¯ , and { s 2 , s 3 , s 6 } is the set of candidate inner objects for r 3 r 5 r 4 ¯ . The EDISON algorithm computes the distance between an outer object r and each candidate inner object s and finds all qualifying object pairs ( r , s ) such that d i s t ( r , s ) ε .
We compute the distance from r 1 to each candidate inner object s { s 1 , s 4 , s 5 , s 6 } . Because s 1 S ( v 1 v 2 v 3 ¯ ) ( S v 1 2 S v 3 4 ) according to Table 4, the distance from r 1 to s 1 is d i s t ( r 1 , s 1 ) = l e n ( r 1 , s 1 ) = 2 , as shown in Figure 10a. Because s 4 S ( v 1 v 2 v 3 ¯ ) ( S v 1 2 S v 3 4 ) , the distance from r 1 to s 4 is d i s t ( r 1 , s 4 ) = l e n ( r 1 , s 4 ) = 10 , as shown in Figure 10b. Similarly, because s 5 S ( v 1 v 2 v 3 ¯ ) ( S v 1 2 S v 3 4 ) , the distance from r 1 to s 5 is d i s t ( r 1 , s 5 ) = l e n ( r 1 , s 5 ) = 3 , as shown in Figure 10c. Finally, because s 6 S v 3 4 ( S v 1 2 S ( v 1 v 2 v 3 ¯ ) ) according to Table 4, the distance from r 1 to s 6 is d i s t ( r 1 , s 6 ) = l e n ( r 1 , v 3 ) + d i s t ( v 3 , s 6 ) = 5 + 3 = 8 , as shown in Figure 10d. Consequently, S r 1 ε = { s 1 , s 5 } given that d i s t ( r 1 , s 1 ) = 2 , d i s t ( r 1 , s 4 ) = 10 , d i s t ( r 1 , s 5 ) = 3 , and d i s t ( r 1 , s 6 ) = 8 , and the generated partial join result is Φ ( r 1 ) = { ( r 1 , s 1 ) , ( r 1 , s 5 ) } .
We compute the distance from r 2 to each candidate inner object s { s 1 , s 4 , s 5 , s 6 } . Because s 1 S ( v 1 v 2 v 3 ¯ ) ( S v 1 2 S v 3 4 ) according to Table 4, the distance from r 2 to s 1 is d i s t ( r 2 , s 1 ) = l e n ( r 2 , s 1 ) = 5 , as shown in Figure 11a. Because s 4 S ( v 1 v 2 v 3 ¯ ) ( S v 1 2 S v 3 4 ) , the distance from r 2 to s 4 is d i s t ( r 2 , s 4 ) = l e n ( r 2 , s 4 ) = 13 , as shown in Figure 11b. In fact, the shortest path from r 2 to s 4 is r 2 v 3 v 1 s 4 , whose length is d i s t ( r 2 , s 4 ) = 9 . However, this deviation from the shortest distance does not affect the query result. Similarly, because s 5 S ( v 1 v 2 v 3 ¯ ) ( S v 1 2 S v 3 4 ) , this distance from r 2 to s 5 is d i s t ( r 2 , s 5 ) = l e n ( r 2 , s 5 ) = 6 , as shown in Figure 11c. Finally, because s 6 S v 3 4 ( S v 1 2 S ( v 1 v 2 v 3 ¯ ) ) according to Table 4, the distance from r 2 to s 6 is d i s t ( r 2 , s 6 ) = l e n ( r 2 , v 3 ) + d i s t ( v 3 , s 6 ) = 2 + 3 = 5 , as shown in Figure 11d. Consequently, S r 2 ε = { s 1 , s 6 } given that d i s t ( r 2 , s 1 ) = 5 , d i s t ( r 2 , s 4 ) = 13 , d i s t ( r 2 , s 5 ) = 6 , and d i s t ( r 2 , s 6 ) = 5 , and the generated partial join result is Φ ( r 2 ) = { ( r 2 , s 1 ) , ( r 2 , s 6 ) } .
We compute the distance from r 3 to each candidate inner object s { s 2 , s 3 , s 6 } . Because s 2 S ( v 1 v 4 v 3 ¯ ) ( S v 1 2 S v 3 4 ) according to Table 4, the distance from r 3 to s 2 is d i s t ( r 3 , s 2 ) = l e n ( r 3 , s 2 ) = 6 , as shown in Figure 12a. Similarly, because s 3 S ( v 1 v 4 v 3 ¯ ) ( S v 1 2 S v 3 4 ) , the distance from r 3 to s 3 is d i s t ( r 3 , s 3 ) = l e n ( r 3 , s 3 ) = 12 , as shown in Figure 12b. In fact, the shortest path from r 3 to s 3 is r 3 v 3 v 1 s 3 , whose length is d i s t ( r 3 , s 3 ) = 10 . However, this deviation from the shortest distance does not affect the query result. Finally, because s 6 S v 3 4 ( S v 1 2 ( v 1 v 4 v 3 ¯ ) ) , the distance from r 3 to s 6 is d i s t ( r 3 , s 6 ) = l e n ( r 3 , v 3 ) + d i s t ( v 3 , s 6 ) = 1 + 3 = 4 , as shown in Figure 12c. Consequently, S r 3 ε = { s 6 } given that d i s t ( r 3 , s 2 ) = 6 , d i s t ( r 3 , s 3 ) = 12 , and d i s t ( r 3 , s 6 ) = 4 , and the generated partial join result is Φ ( r 3 ) = { ( r 3 , s 6 ) } .
We compute the distance from r 4 to each candidate inner object s { s 2 , s 3 , s 6 } . Because s 2 S ( v 1 v 4 v 3 ¯ ) ( S v 1 2 S v 3 4 ) according to Table 4, the distance from r 4 to s 2 is d i s t ( r 4 , s 2 ) = l e n ( r 4 , s 2 ) = 3 , as shown in Figure 13a. Similarly, because s 3 S ( v 1 v 4 v 3 ¯ ) ( S v 1 2 S v 3 4 ) , the distance from r 4 to s 3 is d i s t ( r 4 , s 3 ) = l e n ( r 4 , s 3 ) = 3 , as shown in Figure 13b. Finally, because s 6 S v 3 4 ( S v 1 2 S ( v 1 v 4 v 3 ¯ ) ) , the distance from r 4 to s 6 is d i s t ( r 4 , s 6 ) = l e n ( r 4 , v 3 ) + d i s t ( v 3 , s 6 ) = 10 + 3 = 13 , as shown in Figure 13c. In fact, the shortest path from r 4 to s 6 is r 4 v 4 v 1 s 6 , whose length is d i s t ( r 4 , s 6 ) = 9 . However, this deviation from the shortest distance does not affect the query result. Consequently, S r 4 ε = { s 2 , s 3 } given that d i s t ( r 4 , s 2 ) = 3 , d i s t ( r 4 , s 3 ) = 3 , and d i s t ( r 4 , s 6 ) = 13 , and the generated partial join result is Φ ( r 4 ) = { ( r 4 , s 2 ) , ( r 4 , s 3 ) } .
We compute the distance from r 5 to each candidate inner object s { s 2 , s 3 , s 6 } . Because s 2 S ( v 1 v 4 v 3 ¯ ) ( S v 1 2 S v 3 4 ) according to Table 4, the distance from r 5 to s 2 is d i s t ( r 5 , s 2 ) = l e n ( r 5 , s 2 ) = 4 , as shown in Figure 14a. Similarly, because s 3 S ( v 1 v 4 v 3 ¯ ) ( S v 1 2 S v 3 4 ) , the distance from r 5 to s 3 is d i s t ( r 5 , s 3 ) = l e n ( r 5 , s 3 ) = 10 , as shown in Figure 14b. Finally, because s 6 S v 3 4 ( S v 1 2 S ( v 1 v 4 v 3 ¯ ) ) , the distance from r 5 to s 6 is d i s t ( r 5 , s 6 ) = l e n ( r 5 , v 3 ) + d i s t ( v 3 , s 6 ) = 3 + 3 = 6 , as shown in Figure 14c. Consequently, S r 5 ε = { s 2 } given that d i s t ( r 5 , s 2 ) = 4 , d i s t ( r 5 , s 3 ) = 10 , and d i s t ( r 5 , s 6 ) = 6 , and the generated partial join result is Φ ( r 5 ) = { ( r 5 , s 2 ) } . Finally, we obtain the complete query result Φ ( R ) = Φ ( r 1 ) Φ ( r 2 ) Φ ( r 3 ) Φ ( r 4 ) Φ ( r 5 ) = { ( r 1 , s 1 ) , ( r 1 , s 5 ) , ( r 2 , s 1 ) , ( r 2 , s 6 ) , ( r 3 , s 6 ) , ( r 4 , s 2 ) , ( r 4 , s 3 ) , ( r 5 , s 2 ) } .

6. Performance Study

In this section, we report on an empirical analysis of our proposed solution. We present our experimental settings in Section 6.1, followed by our experimental results in Section 6.2.

6.1. Experimental Settings

For the performance study, we use three real-world road networks [43], which are described in Table 5. These real-world road networks have different sizes and are part of the US’s road network. Table 6 shows the range of each variable used in the experiments with defaults indicated in bold. For convenience, each dimension of the data universe is normalized independently to unit length, such that the threshold distance ε is in the range of [ 0 ,   1 ] . The positions of both the outer objects and the inner objects follow either centroid or uniform distributions. The centroid dataset is generated to resemble the real-world data. First, 10 centroids are selected randomly. The objects around each centroid follow a normal distribution, where the mean is set to the centroid and the standard deviation is set to 1% of the side length of the data universe. In each experiment, we vary one or two of the parameters within the range shown in Table 6, while keeping other parameters at default values. The outer objects and the inner objects follow the centroid distribution unless stated otherwise.
We implement and evaluate two versions of our proposed solution, i.e., the naive EDISON and EDISON methods. As a benchmark for our proposed method, we use a baseline method that computes the range query of every outer object using the RNE algorithm [10]. A comparison with the pre-computed distance-based solution [23] and the Euclidean distance-based solution (e.g., JER [10]) is beyond the scope of this study, because these methods cannot support frequent network traffic updates.
All algorithms are implemented in C++ in Microsoft Visual Studio 2015, and they use common subroutines for similar tasks. We conduct experiments on a desktop computer running Windows 10 with a 4 GHz processor and 32 GB of memory. We believe that indexing structures of all techniques should be memory resident to ensure responsive query processing, which is assumed in many recent studies [5,11] and is crucial to online map services and commercial navigation systems. We determine the average values based on 10 repetitions of the experiments for each algorithm.

6.2. Experimental Results

Figure 15 compares the query processing times using the baseline, naive EDISON, and EDISON methods to evaluate ε -distance join queries in the CAL roadmap, where each chart illustrates the effect of changing one or two of the parameters in Table 6. The first and the second values in parentheses indicate the number of range queries that are evaluated by the naive EDISON and EDISON methods, respectively. The numbers of range queries evaluated by the baseline method are omitted, because these numbers become m i n { | R | , | S | } , i.e., the cardinality of the smaller dataset between | R | and | S | . Figure 15a shows the query processing time as a function of the threshold distance ε . Although the EDISON method shows the worst performance for ε = 0.005 , the processing times using the baseline and the naive EDISON methods increase more rapidly with the value of ε than those using the EDISON method. This implies that the shared execution of the EDISON method is more effective for a large threshold distance ε . The baseline, naive EDISON, and EDISON methods evaluate a total of 10,000 range queries, 959 range queries, and 448 range queries, respectively. Figure 15b shows the query processing time as a function of the number | R | of outer objects, while the number of inner objects is fixed at | S | = 10 , 000 . The EDISON method is less sensitive to variations in | R | than the other methods, although it shows the worst performance at | R | = 1000 . Owing to the benefit of the shared execution processing, the numbers of range queries evaluated by the naive EDISON and EDISON methods increase slightly with | R | .
Figure 15c shows the query processing time as a function of both the number | R | of outer objects and the number | S | of inner objects. The naive EDISON method outperforms the EDISON method for 1000 | R | , | S | 10 , 000 , whereas the latter outperforms the former for 20 , 000 | R | , | S | 30 , 000 . This indicates that the EDISON method optimizes the shared execution processing more effectively than the naive EDISON method for large datasets. Clearly, the baseline method shows the worst performance in most cases. Figure 15d shows the query processing time for various distributions of outer objects and inner objects, where each ordered pair (i.e., ( C , C ) , ( C , U ) , ( U , C ) , and ( U , U ) ) denotes a combination of the distributions of outer objects and inner objects. Because shared execution processing is favorable for non-uniform distributions of objects, the naive EDISON and EDISON methods significantly outperform the baseline method for ( C , C ) , ( C , U ) , and ( U , C ) . However, the processing times of the naive EDISON and EDISON methods for ( U , U ) are very similar to the baseline method. This is because both the outer objects and the inner objects are widely scattered, which hinders shared execution processing.
Figure 16 compares the query processing times using the baseline, naive EDISON, and EDISON methods to evaluate ε -distance join queries in the FLA roadmap. Figure 16a shows the query processing time as a function of ε , when ε varies between 0.005 and 0.1. The EDISON method achieves the best performance for 0.01 ε 0.1 , because it evaluates the smallest number of range queries among the three methods. The baseline, naive EDISON, and EDISON methods evaluate 10,000 range queries, 1320 range queries, and 665 range queries, respectively. Figure 16b shows the query processing time as a function of | R | , when | R | varies between 1000 and 30,000. The EDISON method clearly outperforms the other methods for 5000 | R | 30 , 000 . Due to shared execution processing, the naive EDISON and EDISON methods are less sensitive to changes in | R | than the baseline method. Figure 16c shows the query processing time as a function of | R | and | S | , when | R | ( | S | ) varies between 1000 and 30,000. The EDISON method clearly outperforms the other methods for 5000 | R | , | S | 30 , 000 . Figure 16d shows the query processing time for various distributions of outer objects and inner objects. The naive EDISON and EDISON methods significantly outperform the baseline method for ( C , C ) , ( C , U ) , and ( U , C ) , whereas the former methods show similar performance to the latter method for ( U , U ) for the same reason as in the CAL case.
Figure 17 compares the query processing times using the baseline, naive EDISON, and EDISON methods to evaluate ε -distance join queries in the COL roadmap. Figure 17a shows the query processing time as a function of ε , when ε varies between 0.005 and 0.1. The naive EDISON and EDISON methods significantly outperform the baseline method in all cases. Specifically, the query processing time of the EDISON method is up to 11 times shorter than the baseline method at ε = 0.1 . The naive EDISON method significantly outperforms the EDISON method for 0.005 ε 0.01 , whereas the latter outperforms the former for 0.03 ε 0.1 . This indicates that the EDISON method is less sensitive to changes in ε than the naive EDISON method. Figure 17b shows the query processing time as a function of | R | , when | R | varies between 1000 and 10,000. The naive EDISON and EDISON methods significantly outperform the baseline method in all cases and the former methods are less sensitive to changes in | R | than the latter method. This indicates that the performance difference between the EDISON method and the baseline method increases rapidly with | R | . Specifically, the query processing time of the EDISON method is up to 155 times shorter than the baseline method at | R | = 10 , 000 . Figure 17c shows the query processing time as a function of | R | and | S | , when | R | ( | S | ) varies between 1000 and 10,000. The naive EDISON method outperforms the EDISON method at | R | = | S | = 1000 , whereas the latter outperforms the former for 5000 | R | , | S | 10 , 000 , and the performance difference between the two methods increases with | R | . and | S | . This implies that the EDISON method scales better with | R | and | S | than the naive EDISON method. Figure 17d shows the query processing time for various distributions of outer objects and inner objects. The naive EDISON and EDISON methods significantly outperform the baseline method for ( C , C ) , ( C , U ) , and ( U , C ) . However, all methods show similar performance when the outer objects and the inner objects follow uniform distributions ( U , U ) . This is expected because both the outer objects and inner objects are widely scattered for ( U , U ) , which obstructs shared execution processing of the naive EDISON and EDISON methods.

7. Conclusions

In this study, we investigated the efficient processing of ε -distance join queries in dynamic road networks. We proposed a cost-effective solution called EDISON that optimizes the shared execution method to avoid redundant network traversal. We implemented and evaluated a baseline method and two versions of EDISON, i.e., the naive EDISON and EDISON methods. The experiments are based on several real-world roadmaps and involve a wide range of parameter values. The experimental results are summarized as follows: (1) the naive EDISON and EDISON methods significantly outperform the baseline method; (2) the naive EDISON and EDISON methods are typically comparable in terms of query processing time; (3) the EDISON method scales better with increasing number of objects and threshold distance than the naive EDISON method. In future work, we plan to extend the shared execution approach used here to the problems of processing sophisticated spatial queries over road networks, such as multi-way distance join queries [44] and aggregate k-farthest neighbor queries [45,46]. These problems have not been adequately addressed with regard to road networks despite their importance.

Author Contributions

H.-J.C. designed the study, performed the experiments, and wrote the paper.

Funding

This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korean government (MSIP) (NRF-2016R1A2B4009793).

Conflicts of Interest

The author declares no conflict of interest.

References

  1. Delling, D.; Goldberg, A.V.; Pajor, T.; Werneck, R.F. Customizable route planning in road networks. Transp. Sci. 2017, 51, 566–591. [Google Scholar] [CrossRef]
  2. Samet, H.; Sankaranarayanan, J.; Alborzi, H. Scalable network distance browsing in spatial databases. In Proceedings of the International Conference on Management of Data, Vancouver, BC, Canada, 10–12 June 2008. [Google Scholar]
  3. Sankaranarayanan, J.; Alborzi, H.; Samet, H. Efficient query processing on spatial networks. In Proceedings of the International Workshop on Geographic Information Systems, Bremen, Germany, 4–5 November 2005. [Google Scholar]
  4. Sankaranarayanan, J.; Samet, H.; Alborzi, H. Path oracles for spatial networks. PVLDB 2009, 2, 1210–1221. [Google Scholar] [CrossRef] [Green Version]
  5. Wu, L.; Xiao, X.; Deng, D.; Cong, G.; Zhu, A.D.; Zhou, S. Shortest path and distance queries on road networks: An experimental evaluation. PVLDB 2012, 5, 406–417. [Google Scholar] [CrossRef]
  6. Zhang, D.; Yang, D.; Wang, Y.; Tan, K.-L.; Cao, J.; Shen, H.T. Distributed shortest path query processing on dynamic road networks. VLDB J. 2017, 26, 399–419. [Google Scholar] [CrossRef]
  7. Zhong, R.; Li, G.; Tan, K.-L.; Zhou, L.; Gong, Z. G-tree: An efficient and scalable index for spatial search on road networks. IEEE Trans. Knowl. Data Eng. 2015, 27, 2175–2189. [Google Scholar] [CrossRef]
  8. D’Angelo, G.; D’Emidio, M.; Frigioni, D. Distance queries in large-scale fully dynamic complex networks. In Proceedings of the International Workshop on Combinatorial Algorithms, Helsinki, Finland, 17–19 August 2016. [Google Scholar]
  9. Sankaranarayanan, J.; Samet, H. Query processing using distance oracles for spatial networks. IEEE Trans. Knowl. Data Eng. 2010, 22, 1158–1175. [Google Scholar] [CrossRef]
  10. Papadias, D.; Zhang, J.; Mamoulis, N.; Tao, Y. Query processing in road network databases. In Proceedings of the International Conference on Very Large Data Bases, Berlin, Germany, 9–12 September 2003. [Google Scholar]
  11. Abeywickrama, T.; Cheema, M.A.; Taniar, D. k-Nearest neighbors on road networks: A journey in experimentation and in-memory implementation. PVLDB 2016, 9, 492–503. [Google Scholar] [CrossRef]
  12. Luo, S.; Kao, B.; Li, G.; Hu, J.; Cheng, R.; Zheng, Y. TOAIN: A throughput optimizing adaptive index for answering dynamic knn queries on road networks. PVLDB 2018, 11, 594–606. [Google Scholar]
  13. Chaudhuri, S.; Ganti, V.; Kaushik, R. A primitive operator for similarity joins in data cleaning. In Proceedings of the International Conference on Data Engineering, Atlanta, GA, USA, 3–8 April 2006. [Google Scholar]
  14. Deng, D.; Li, G.; Hao, S.; Wang, J.; Feng, J. MassJoin: A mapreduce-based method for scalable string similarity joins. In Proceedings of the International Conference on Data Engineering, Chicago, IL, USA, 31 March–4 April 2014. [Google Scholar]
  15. Metwally, A.; Faloutsos, C. V-SMART-Join: A scalable mapreduce framework for all-pair similarity joins of multisets and vectors. PVLDB 2012, 5, 704–715. [Google Scholar] [CrossRef]
  16. Sarma, A.D.; He, Y.; Chaudhuri, S. ClusterJoin: A similarity joins framework using map-reduce. PVLDB 2014, 7, 1059–1070. [Google Scholar]
  17. Vernica, R.; Carey, M.J.; Li, C. Efficient parallel set-similarity joins using mapreduce. In Proceedings of the International Conference on Management of Data, Indianapolis, IN, USA, 6–10 June 2010. [Google Scholar]
  18. Wang, Y.; Metwally, A.; Parthasarathy, S. Scalable all-pairs similarity search in metric spaces. In Proceedings of the International Conference on Knowledge Discovery and Data Mining, Chicago, IL, USA, 11–14 August 2013. [Google Scholar]
  19. Hjaltason, G.R.; Samet, H. Incremental distance join algorithms for spatial databases. In Proceedings of the International Conference on Management of Data, Seattle, WA, USA, 2–4 June 1998. [Google Scholar]
  20. Shin, H.; Moon, B.; Lee, S. Adaptive and incremental processing for distance join queries. IEEE Trans. Knowl. Data Eng. 2003, 15, 1561–1578. [Google Scholar] [CrossRef]
  21. Mahmud, H.; Amin, A.M.; Ali, M.E.; Hashem, T.; Nutanong, S. A group based approach for path queries in road networks. In Proceedings of the International Symposium on Spatial and Temporal Databases, Munich, Germany, 21–23 August 2013. [Google Scholar]
  22. Mouratidis, K.; Yiu, M.L.; Papadias, D.; Mamoulis, N. Continuous nearest neighbor monitoring in road networks. In Proceedings of the International Conference on Very Large Data Bases, Seoul, Korea, 12–15 September 2006. [Google Scholar]
  23. Sankaranarayanan, J.; Alborzi, H.; Samet, H. Distance join queries on spatial networks. In Proceedings of the International Symposium on Geographic Information Systems, Arlington, VA, USA, 10–11 November 2006. [Google Scholar]
  24. Arain, Q.A.; Deng, Z.; Memon, I.; Zubedi, A.; Jiao, J.; Ashraf, A.; Khan, M.S. Privacy protection with dynamic pseudonym-based multiple mix-zones over road networks. China Commun. 2017, 14, 89–100. [Google Scholar] [CrossRef]
  25. Arain, Q.A.; Memon, I.; Deng, Z.; Memon, M.H.; Mangi, F.A.; Zubedi, A. Location monitoring approach: Multiple mix-zones with location privacy protection based on traffic flow over road networks. Multimedia Tools Appl. 2018, 77, 5563–5607. [Google Scholar] [CrossRef]
  26. Arain, Q.A.; Uqaili, M.A.; Deng, Z.; Memon, I.; Jiao, J.; Shaikh, M.A.; Zubedi, A.; Ashraf, A.; Arain, U.A. Clustering based energy efficient and communication protocol for multiple mix-zones over road networks. Wirel. Pers. Commun. 2017, 95, 411–428. [Google Scholar] [CrossRef]
  27. Domenic, M.K.; Wang, Y.; Zhang, F.; Memon, I.; Gustav, Y.H. Preserving users’ privacy for continuous query services in road networks. In Proceedings of the International Conference on Information Management, Innovation Management and Industrial Engineering, Xi’an, China, 23–24 November 2013. [Google Scholar]
  28. Gustav, Y.H.; Wang, Y.; Domenic, M.K.; Zhang, F.; Memon, I. Velocity similarity anonymization for continuous query Location based services. In Proceedings of the International Conference on Computational Problem-Solving, Jiuzhai, China, 26–28 October 2013. [Google Scholar]
  29. Kamenyi, D.M.; Wang, Y.; Zhang, F.; Memon, I. Authenticated privacy preserving for continuous query in location based services. J. Comput. Inform. Syst. 2013, 9, 9857–9864. [Google Scholar]
  30. Memon, I. Distance and clustering-based energy-efficient pseudonyms changing strategy over road network. Int. J. Commun. Syst. 2018, 31, 1–22. [Google Scholar] [CrossRef]
  31. Memon, I. Authentication user’s privacy: An integrating location privacy protection algorithm for secure moving objects in location based services. Wirel. Pers. Commun. 2015, 82, 1585–1600. [Google Scholar] [CrossRef]
  32. Memon, I.; Arain, Q.A. Dynamic path privacy protection framework for continuous query service over road networks. World Wide Web 2017, 20, 639–672. [Google Scholar] [CrossRef]
  33. Memon, I.; Arain, Q.A.; Zubedi, A.; Mangi, F.A. DPMM: Dynamic pseudonym-based multiple mix-zones generation for mobile traveler. Multimedia Tools Appl. 2017, 76, 24359–24388. [Google Scholar] [CrossRef]
  34. Memon, I.; Chen, L.; Arain, Q.A.; Memon, H.; Chen, G. Pseudonym changing strategy with multiple mix zones for trajectory privacy protection in road networks. Int. J. Commun. Syst. 2018, 31, 1–44. [Google Scholar] [CrossRef]
  35. Ali, M.E.; Tanin, E.; Zhang, R.; Kulik, L. A motion-aware approach for efficient evaluation of continuous queries on 3D object databases. VLDB J. 2010, 19, 603–632. [Google Scholar] [CrossRef]
  36. Giannikis, G.; Alonso, G.; Kossmann, D. SharedDB: Killing one thousand queries with one stone. PVLDB 2012, 5, 526–537. [Google Scholar] [CrossRef]
  37. Thomsen, J.R.; Yiu, M.L.; Jensen, C.S. Effective caching of shortest paths for location-based services. In Proceedings of the International Conference on Management of Data, Scottsdale, AZ, USA, 20–24 May 2012. [Google Scholar]
  38. Zhang, D.; Chow, C.-Y.; Li, Q.; Zhang, X.; Xu, Y. SMashQ: Spatial mashup framework for k-nn queries in time-dependent road networks. Distrib. Parall. Databases 2013, 31, 259–287. [Google Scholar] [CrossRef]
  39. Brinkhoff, T.; Kriegel, H.-P.; Seeger, B. Efficient processing of spatial joins using r-trees. In Proceedings of the International Conference on Management of Data, Washington, DC, USA, 26–28 May 1993. [Google Scholar]
  40. Chen, C.; Sun, W.; Zheng, B.; Mao, D.; Liu, W. An incremental approach to closest pair queries in spatial networks using best-first search. In Proceedings of the International Conference on Database and Expert Systems Applications, Toulouse, France, 29 August–2 September 2011. [Google Scholar]
  41. Koudas, N.; Sevcik, K.C. High dimensional similarity joins: Algorithms and performance evaluation. IEEE Trans. Knowl. Data Eng. 2000, 12, 3–18. [Google Scholar] [CrossRef]
  42. Makreshanski, D.; Giannikis, G.; Alonso, G.; Kossmann, D. MQJoin: Efficient shared execution of main-memory joins. PVLDB 2016, 9, 480–491. [Google Scholar] [CrossRef]
  43. 9th DIMACS Implementation Challenge: Shortest Paths. Available online: http://www.dis.uniroma1.it/challenge9/download.shtml (accessed on 15 June 2018).
  44. Corral, A.; Manolopoulos, Y.; Theodoridis, Y.; Vassilakopoulos, M. Multi-way distance join queries in spatial databases. GeoInformatica 2004, 8, 373–402. [Google Scholar] [CrossRef]
  45. Gao, Y.; Shou, L.; Chen, K.; Chen, G. Aggregate farthest-neighbor queries over spatial data. In Proceedings of the International Conference on Database Systems for Advanced Applications, Hong Kong, China, 22–25 April 2011. [Google Scholar]
  46. Wang, H.; Zheng, K.; Su, H.; Wang, J.; Sadiq, S.; Zhou, X. Efficient aggregate farthest neighbour query processing on road networks. In Proceedings of the Australasian Database Conference, Brisbane, Australia, 14–16 July 2014. [Google Scholar]
Figure 1. Example of dynamic road networks (a) traffic condition at time t 1 ; (b) traffic condition at time t 2 .
Figure 1. Example of dynamic road networks (a) traffic condition at time t 1 ; (b) traffic condition at time t 2 .
Ijgi 07 00270 g001
Figure 2. Example where d i s t ( r , s ) = 6 and l e n ( r , s ) = 9 .
Figure 2. Example where d i s t ( r , s ) = 6 and l e n ( r , s ) = 9 .
Ijgi 07 00270 g002
Figure 3. Example of an ε -distance join query in a road network.
Figure 3. Example of an ε -distance join query in a road network.
Ijgi 07 00270 g003
Figure 4. Grouping outer and inner objects (a) R ¯ = { r 1 r 2 ¯ , r 3 r 5 r 4 ¯ } and | R ¯ | = 2 ; (b) S ¯ = { s 1 s 5 s 4 ¯ , s 2 s 3 ¯ , s 6 } and | S ¯ | = 3 .
Figure 4. Grouping outer and inner objects (a) R ¯ = { r 1 r 2 ¯ , r 3 r 5 r 4 ¯ } and | R ¯ | = 2 ; (b) S ¯ = { s 1 s 5 s 4 ¯ , s 2 s 3 ¯ , s 6 } and | S ¯ | = 3 .
Ijgi 07 00270 g004
Figure 5. Determination of the distance from r to s (a) If s S r i ε , then d i s t ( r , s ) = l e n ( r , r i ) + d i s t ( r i , s ) ; (b) If s S r j ε , then d i s t ( r , s ) = l e n ( r , r j ) + d i s t ( r j , s ) ; (c) If s r i r j ¯ , then d i s t ( r , s ) = l e n ( r , s ) .
Figure 5. Determination of the distance from r to s (a) If s S r i ε , then d i s t ( r , s ) = l e n ( r , r i ) + d i s t ( r i , s ) ; (b) If s S r j ε , then d i s t ( r , s ) = l e n ( r , r j ) + d i s t ( r j , s ) ; (c) If s r i r j ¯ , then d i s t ( r , s ) = l e n ( r , s ) .
Ijgi 07 00270 g005
Figure 6. Computation of the distance from r r i r j ¯ to s (a) If s r i r j ¯ , d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) } ; (b) If s r i r j ¯ , d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) , l e n ( r , s ) } .
Figure 6. Computation of the distance from r r i r j ¯ to s (a) If s r i r j ¯ , d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) } ; (b) If s r i r j ¯ , d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , r j ) + d i s t ( r j , s ) , l e n ( r , s ) } .
Ijgi 07 00270 g006
Figure 7. Computation of the distance from r 5 to s { s 2 , s 3 , s 6 } (a) d i s t ( r 5 , s 2 ) = 4 ; (b) d i s t ( r 5 , s 3 ) = 10 ; (c) d i s t ( r 5 , s 6 ) = 6 .
Figure 7. Computation of the distance from r 5 to s { s 2 , s 3 , s 6 } (a) d i s t ( r 5 , s 2 ) = 4 ; (b) d i s t ( r 5 , s 3 ) = 10 ; (c) d i s t ( r 5 , s 6 ) = 6 .
Ijgi 07 00270 g007
Figure 8. Investigating the number of outer segments adjacent to an intersection vertex v x (a) Ω ( v x ) = 0 ; (b) Ω ( v x ) = 1 ; (c) Ω ( v x ) 2 .
Figure 8. Investigating the number of outer segments adjacent to an intersection vertex v x (a) Ω ( v x ) = 0 ; (b) Ω ( v x ) = 1 ; (c) Ω ( v x ) 2 .
Ijgi 07 00270 g008
Figure 9. Simple heuristic S r i ε S r j ε S ( r i r j ¯ ) = S r i ε S ( r i v 3 ¯ ) .
Figure 9. Simple heuristic S r i ε S r j ε S ( r i r j ¯ ) = S r i ε S ( r i v 3 ¯ ) .
Ijgi 07 00270 g009
Figure 10. Computation of the distance from r 1 to s { s 1 , s 4 , s 5 , s 6 } (a) d i s t ( r 1 , s 1 ) = 2 ; (b) d i s t ( r 1 , s 4 ) = 10 ; (c) d i s t ( r 1 , s 5 ) = 3 ; (d) d i s t ( r 1 , s 6 ) = 8 .
Figure 10. Computation of the distance from r 1 to s { s 1 , s 4 , s 5 , s 6 } (a) d i s t ( r 1 , s 1 ) = 2 ; (b) d i s t ( r 1 , s 4 ) = 10 ; (c) d i s t ( r 1 , s 5 ) = 3 ; (d) d i s t ( r 1 , s 6 ) = 8 .
Ijgi 07 00270 g010
Figure 11. Computation of the distance from r 2 to s { s 1 , s 4 , s 5 , s 6 } (a) d i s t ( r 2 , s 1 ) = 5 ; (b) d i s t ( r 2 , s 4 ) = 13 ; (c) d i s t ( r 2 , s 5 ) = 6 ; (d) d i s t ( r 2 , s 6 ) = 5 .
Figure 11. Computation of the distance from r 2 to s { s 1 , s 4 , s 5 , s 6 } (a) d i s t ( r 2 , s 1 ) = 5 ; (b) d i s t ( r 2 , s 4 ) = 13 ; (c) d i s t ( r 2 , s 5 ) = 6 ; (d) d i s t ( r 2 , s 6 ) = 5 .
Ijgi 07 00270 g011
Figure 12. Computation of the distance from r 3 to s { s 2 , s 3 , s 6 } (a) d i s t ( r 3 , s 2 ) = 6 ; (b) d i s t ( r 3 , s 3 ) = 12 ; (c) d i s t ( r 3 , s 6 ) = 4 .
Figure 12. Computation of the distance from r 3 to s { s 2 , s 3 , s 6 } (a) d i s t ( r 3 , s 2 ) = 6 ; (b) d i s t ( r 3 , s 3 ) = 12 ; (c) d i s t ( r 3 , s 6 ) = 4 .
Ijgi 07 00270 g012
Figure 13. Computation of the distance from r 4 to s { s 2 , s 3 , s 6 } (a) d i s t ( r 4 , s 2 ) = 3 ; (b) d i s t ( r 4 , s 3 ) = 3 ; (c) d i s t ( r 4 , s 6 ) = 13 .
Figure 13. Computation of the distance from r 4 to s { s 2 , s 3 , s 6 } (a) d i s t ( r 4 , s 2 ) = 3 ; (b) d i s t ( r 4 , s 3 ) = 3 ; (c) d i s t ( r 4 , s 6 ) = 13 .
Ijgi 07 00270 g013
Figure 14. Computation of the distance from r 5 to s { s 2 , s 3 , s 6 } (a) d i s t ( r 5 , s 2 ) = 4 ; (b) d i s t ( r 5 , s 3 ) = 10 ; (c) d i s t ( r 5 , s 6 ) = 6 .
Figure 14. Computation of the distance from r 5 to s { s 2 , s 3 , s 6 } (a) d i s t ( r 5 , s 2 ) = 4 ; (b) d i s t ( r 5 , s 3 ) = 10 ; (c) d i s t ( r 5 , s 6 ) = 6 .
Ijgi 07 00270 g014
Figure 15. Comparison of the baseline, naive EDISON, and EDISON methods for CAL (a) varying ε ; (b) varying | R | ; (c) varying | R | and | S | ; (d) varying the distributions of objects.
Figure 15. Comparison of the baseline, naive EDISON, and EDISON methods for CAL (a) varying ε ; (b) varying | R | ; (c) varying | R | and | S | ; (d) varying the distributions of objects.
Ijgi 07 00270 g015
Figure 16. Comparison of the baseline, naive EDISON, and EDISON methods for FLA (a) varying ε ; (b) varying | R | ; (c) varying | R | and | S | ; (d) varying the distributions of objects.
Figure 16. Comparison of the baseline, naive EDISON, and EDISON methods for FLA (a) varying ε ; (b) varying | R | ; (c) varying | R | and | S | ; (d) varying the distributions of objects.
Ijgi 07 00270 g016
Figure 17. Comparison of the baseline, naive EDISON, and EDISON methods for COL (a) varying ε ; (b) varying | R | ; (c) varying | R | and | S | ; (d) varying the distributions of objects.
Figure 17. Comparison of the baseline, naive EDISON, and EDISON methods for COL (a) varying ε ; (b) varying | R | ; (c) varying | R | and | S | ; (d) varying the distributions of objects.
Ijgi 07 00270 g017
Table 1. Symbols and their meaning.
Table 1. Symbols and their meaning.
SymbolDefinition
ε Threshold distance
ε p Query distance at a point p such that ε p ε
r Outer object r R
s Inner object s S
d i s t ( p 1 , p 2 ) Length of the shortest path connecting two points p 1 and p 2 in the road network
l e n ( p 1 , p 2 ) Length of the segment connecting two points p 1 and p 2 , such that both p 1 and p 2 are located in the same vertex sequence
v l v l + 1 v m ¯ Vertex sequence where v l and v m are not intermediate vertices and the other vertices, v l + 1 , , v m 1 , are intermediate vertices
r i r i + 1 r j ¯ Outer segment that consists of outer objects r i , r i + 1 , , r j in a vertex sequence
S p ε Set of inner objects within distance ε from a point p , i.e., S p ε = { s | d i s t ( p , s ) ε   for   s S }
S ( p 1 p 2 ¯ ) Set of inner objects in a segment p 1 p 2 ¯ , i.e., S ( p 1 p 2 ¯ ) = { s | s p 1 p 2 ¯   for   s S }
R N Q ( ε , p ) Range query that returns a set S p ε of inner objects within distance ε from a point p
Ω ( v x ) Number of outer segments in vertex sequences adjacent to an intersection vertex v x
Table 2. Computation of d i s t ( r , s ) for r r i r j ¯ and s S r i ε S r j ε S ( r i r j ¯ ) .
Table 2. Computation of d i s t ( r , s ) for r r i r j ¯ and s S r i ε S r j ε S ( r i r j ¯ ) .
Condition d i s t ( r , s )
s S r i ε S r j ε S ( r i r j ¯ ) d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) ,   l e n ( r , r j ) + d i s t ( r j , s ) , l e n ( r , s ) }
s S r i ε S r j ε S ( r i r j ¯ ) d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) ,   l e n ( r , r j ) + d i s t ( r j , s ) }
s S r i ε S ( r i r j ¯ ) S r j ε d i s t ( r , s ) = m i n { l e n ( r , r i ) + d i s t ( r i , s ) , l e n ( r , s ) }
s S r j ε S ( r i r j ¯ ) S r i ε d i s t ( r , s ) = m i n { l e n ( r , r j ) + d i s t ( r j , s ) , l e n ( r , s ) }
s S r i ε ( S r j ε S ( r i r j ¯ ) ) d i s t ( r , s ) = l e n ( r , r i ) + d i s t ( r i , s )
s S r j ε ( S r i ε S ( r i r j ¯ ) ) d i s t ( r , s ) = l e n ( r , r j ) + d i s t ( r j , s )
s S ( r i r j ¯ ) ( S r i ε S r j ε ) d i s t ( r , s ) = l e n ( r , s )
Table 3. Computation of R ε S using the naive EDISON algorithm.
Table 3. Computation of R ε S using the naive EDISON algorithm.
r i r j ¯ r i r j S r i ε S r j ε S ( r i r j ¯ ) { r i + 1 , , r j 1 } S r i ε S r j ε S ( r i r j ¯ )
r 1 r 2 ¯ r 1 r 2 S r 1 ε = { s 1 , s 5 } S r 2 ε = { s 1 , s 6 } S ( r 1 r 2 ¯ ) = { s 1 , s 5 , s 6 }
r 3 r 5 r 4 ¯ r 3 r 4 S r 3 ε = { s 6 } S r 4 ε = { s 2 , s 3 } S ( r 3 r 5 r 4 ¯ ) = { s 2 } { r 5 } { s 2 , s 3 , s 6 }
Table 4. Computation of R ε S using the EDISON algorithm.
Table 4. Computation of R ε S using the EDISON algorithm.
r i r j ¯ α β ¯ α β S α ε α S β ε β S ( α β ¯ ) S α ε α S β ε β S ( α β ¯ )
r 1 r 2 ¯ v 1 v 2 v 3 ¯ v 1 v 3 S v 1 2 = S v 3 4 = { s 6 } S ( v 1 v 2 v 3 ¯ ) = { s 1 , s 4 , s 5 } { s 1 , s 4 , s 5 , s 6 }
r 3 r 5 r 4 ¯ v 1 v 4 v 3 ¯ v 1 v 3 S v 1 2 = S v 3 4 = { s 6 } S ( v 1 v 4 v 3 ¯ ) = { s 2 , s 3 } { s 2 , s 3 , s 6 }
Table 5. Real-world roadmaps.
Table 5. Real-world roadmaps.
NameDescriptionNumber of VerticesNumber of EdgesNumber of Vertex Sequences
CALCalifornia and Nevada1,890,8152,315,2221,794,708
FLAFlorida1,070,3761,343,9511,100,675
COLColorado435,666521,200374,355
Table 6. Experimental parameter settings.
Table 6. Experimental parameter settings.
ParameterRange
Threshold distance ( ε )0.005, 0.01, 0.03, 0.05, 0.1
Numbers of outer objects ( | R | ) and inner objects ( | S | )1, 5, 10, 20, 30 ( × 10 3 ) for CAL and FLA
1, 3, 5, 7, 10 ( × 10 3 ) for COL
Distributions of outer objects (C)entroid, (U)niform
Distributions of inner objects(C)entroid, (U)niform
Real-world roadmapsCAL, FLA, COL

Share and Cite

MDPI and ACS Style

Cho, H.-J. Shared Execution Approach to ε-Distance Join Queries in Dynamic Road Networks. ISPRS Int. J. Geo-Inf. 2018, 7, 270. https://doi.org/10.3390/ijgi7070270

AMA Style

Cho H-J. Shared Execution Approach to ε-Distance Join Queries in Dynamic Road Networks. ISPRS International Journal of Geo-Information. 2018; 7(7):270. https://doi.org/10.3390/ijgi7070270

Chicago/Turabian Style

Cho, Hyung-Ju. 2018. "Shared Execution Approach to ε-Distance Join Queries in Dynamic Road Networks" ISPRS International Journal of Geo-Information 7, no. 7: 270. https://doi.org/10.3390/ijgi7070270

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop