An efficient algorithm for computing safe exit points of moving range queries in directed road networks

An efficient algorithm for computing safe exit points of moving range queries in directed road networks

Information Systems 41 (2014) 1–19 Contents lists available at ScienceDirect Information Systems journal homepage: www.elsevier.com/locate/infosys ...

2MB Sizes 2 Downloads 121 Views

Information Systems 41 (2014) 1–19

Contents lists available at ScienceDirect

Information Systems journal homepage: www.elsevier.com/locate/infosys

An efficient algorithm for computing safe exit points of moving range queries in directed road networks Hyung-Ju Cho n, Kiyeol Ryu, Tae-Sun Chung Department of Information & Computer Engineering, Ajou University, Woncheon-dong, Yeongtong-gu, Suwon-si, Gyeonggi-do 443-749, South Korea

a r t i c l e i n f o

abstract

Article history: Received 7 July 2012 Received in revised form 29 September 2013 Accepted 31 October 2013 Recommended by: P. Pucheral Available online 9 November 2013

In this paper, we investigate the problem of computing the safe exit points of moving range queries in directed road networks where each road segment has a particular orientation. The safe exit point of query object q indicates the point at which the safe region and non-safe region of q meet. A safe region indicates a region where the query result remains unchanged provided q remains inside this region. Unfortunately, the existing state-of-the-art algorithm focuses on computing the safe exit points of moving range queries in undirected road networks where every road segment is undirected. What is worse, far too little attention has been paid to moving range queries in dynamic road networks where the network distance changes depending on the traffic conditions. In this paper, we address these problems by proposing an efficient algorithm called CRUISE for computing the safe exit points of moving range queries in directed road networks. Our experimental results demonstrate that CRUISE significantly outperforms a conventional solution in terms of both computational and communication costs. & 2013 Elsevier Ltd. All rights reserved.

Keywords: Moving range query Safe exit point Directed road network Safe region

1. Introduction Consider query object q, a set O of points of interest (POIs) for q, e.g., restaurants and gas stations, and a positive value, r. We use dðq; oÞ to denote the network distance from query object q to data object o. A range query returns all data objects o A O such that dðq; oÞ rr. In this paper, we study the safe region of a moving range query for static data objects in directed road networks where each road segment has a particular orientation (i.e., either directed or undirected). A safe region indicates a region where a query result remains unchanged provided that query object q is located within this region [4,5,12,13,19,29,31]. Thus, we first consider moving range queries in static directed road networks where the network

n

Corresponding author. Tel.: þ 82 31 219 2535; fax: þ 82 31 219 1834. E-mail addresses: [email protected] (H.-J. Cho), [email protected] (K. Ryu), [email protected] (T.-S. Chung). 0306-4379/$ - see front matter & 2013 Elsevier Ltd. All rights reserved. http://dx.doi.org/10.1016/j.is.2013.10.008

distance does not change over time. Then, we extend our approach to moving range queries in dynamic directed road networks where the network distance such as the travel time changes depending on the traffic conditions, e.g., traffic congestion or reversible lanes. Many real-life scenarios exist to illustrate the usefulness of moving range queries. Consider a scenario in which Harry and Sally are traveling through an unfamiliar city. When trying to find an open buffet-style restaurant for dinner, they can submit a range query based on their current location to the location-based services (LBS) to obtain information on qualifying restaurants within their vicinity. However, Sally does not like the results. Through moving range queries, they can simply keep moving, and the updated results will be provided until an attractive restaurant is found. Naturally, the path between the query issuer and a data object such as a restaurant is constrained by the underlying road network, and therefore range queries based on the Euclidean distance are not useful. A road network is usually presented as a weighted directed

2

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

graph, which comprises a set of nodes and a set of edges that link one node with another node. Each edge has a particular orientation, and its weight can change depending on the traffic conditions. In general, the key issue affecting continuous monitoring algorithms is how to maintain the freshness of the query results, because query objects such as vehicles and people move freely and arbitrarily. One straightforward approach is to increase the frequency of updates. However, merely increasing the update frequency cannot solve the problem completely because the query results may still become outdated between each call to the server, and excessive computational burden may be imposed on the server side with a high communication frequency imposed on the communication channel [4,7,8,11,12]. To avoid expensive communication costs, many algorithms have been proposed that compute the safe regions of location-based queries [4,5,12,13,19,29,31]. Recently, Yung et al. [29] proposed an algorithm known as ADV for computing the safe exit points of moving range queries in undirected road networks. A safe exit point of q indicates an intersection of the safe and non-safe regions of q. Therefore, a set of safe exit points captures the boundary of the safe region. In particular, using a set of safe exit points for road networks is more concise than using a safe region (which may consist of complex road segments), and thus lower communication costs are incurred between the query objects and server [29]. However, ADV cannot be applied to compute the safe exit points for moving range queries in directed road networks, which will be discussed thoroughly in Section 2.2. What is worse, far too little attention has been paid to moving range queries in dynamic road networks. In this paper, we address these problems by proposing a continuous range search algorithm called CRUISE that can efficiently compute the safe exit points of moving range queries in directed road networks. The contributions of this paper can be summarized as follows:

 We propose a continuous range search algorithm known





as CRUISE, which can efficiently compute the safe exit points for moving range queries in directed road networks. Furthermore, we extend CRUISE to support moving range queries in dynamic road networks. We discuss why the existing state-of-the-art algorithm, ADV, cannot be easily extended for moving range queries in directed road networks. Thus, we provide a comparative cost analysis of CRUISE and ADV based on the assumption of undirected road networks. We conduct extensive experiments to investigate the effects of various parameters using a real-life road dataset. The results show that CRUISE markedly outperforms a traditional solution in static directed road networks in terms of the computational and communication costs; however, the performance difference between CRUISE and its competitor typically decreases in dynamic directed road networks.

This study assumes the use of a standard client-server architecture and main-memory query evaluation on the

server side [17,18,27]. In other words, the query objects such as vehicles with global positioning system (GPS) and communication systems can communicate with the server through a wireless communication infrastructure and the main memory of the server is usually large enough to accommodate the entire dataset. The remainder of this paper is structured as follows. In Section 2, we review related work and discuss the limitations of ADV in directed road networks. In Section 3, we introduce the requisite terms and notations used in this paper, and present a running example. In Section 4, we present the new continuous range search algorithm, CRUISE. In Section 5, an extension of CRUISE to deal with moving range queries in dynamic road networks is described. In Section 6, we provide our experimental results. Finally, Section 7 provides some concluding remarks regarding this research. 2. Related work Section 2.1 surveys continuous monitoring algorithms in spatial databases, and Section 2.2 discusses the limitations of ADV when constructing the safe exit points of a query object in directed road networks. 2.1. Monitoring algorithms for moving query objects A significant amount of research has been conducted to handle spatial queries in road networks. Nearest neighbor (NN) queries [6,18–20,27] and range queries [3–5,16,20,29] are among the most frequently studied types of spatial queries. Research in these areas can be classified into the following four categories according to the mobility of the query and data objects: (1) static query objects for static data objects [20], (2) static query objects for moving data objects [12,21,23,25], (3) moving query objects for static data objects [4,5,19,29,31], and (4) moving query objects for moving data objects [3,10,11,15–18,22,24,26,27]. The present study belongs to the third category where the query objects move freely and the data objects are fixed. Therefore, we focus mainly on a review of previous studies related to the third category. Readers may refer to [14] for a review of previous studies related to the three other categories. The continuous monitoring of spatial queries in Euclidean spaces has also been extensively studied. Some previous studies using a Euclidean space have focused on a safe region approach [5,19,31], where the server reports a safe region and the query results for a moving query object. The representation of a safe region varies for different types of queries. For example, Voronoi cells [31] can be used as safe regions for NN queries, whereas Vn-diagrams [19] can be used for k-NN queries. However, these techniques cannot be applied to our problem scenario where the locations and movements of the query objects are constrained by the underlying road network. Cheema et al. [4] proposed a safe region-based approach to the continuous monitoring of range queries for static objects in a Euclidean space and in a road network. They devised pruning rules and a unique access order to efficiently compute a safe region. However, the techniques

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

ADV. Specifically, to compute the safe region, ADV first retrieves data objects within a distance of 3rð ¼ 6Þ from query object q. Thus, a single answer object o2 is retrieved and its influence region F or 2 , shown by the bold line in Fig. 1 (c), becomes the safe region for q. This example demonstrates that ADV does not work for directed road networks. Next, we discuss why ADV cannot be easily adapted to moving range queries in directed road networks. For ADV to compute a safe region in a directed road network, the method for computing the influence region of a data object should be modified to consider the particular orientation of each road segment. To this end, let us consider another influence region Bor for data object o in directed road networks. Unlike F or , the influence region Bor is the set of points p such that the network distance from p to data object o is less than or equal to query radius r, i.e., dðp; oÞ rr holds true; thus, it is formally represented by Bor ¼ fp A Gjdðp; oÞ rrg. It should be noted that from the viewpoint of data object o, F or can be easily determined by a forward search from data object o to point p, whereas Bor can be easily determined by a backward search from point p to data object o. Clearly, F or does not always equal Bor in directed road networks because the network distance is not symmetric in directed road networks. On the other hand, F or equals Bor in undirected road networks because the network distance is symmetric in undirected road networks. Comparing ADV and CRUISE conceptually, ADV adopts F or , whereas CRUISE adopts Bor . If ADV attempts to support moving range queries in directed road networks, a challenging problem arises from the fact that, unlike F or , Bor cannot be directly determined using Dijkstra's algorithm [9]. Consequently, to support safe exit points in directed road networks, ADV should devise a sophisticated algorithm for determining Bor in place of F or . An example showing the difference between two influence regions, F or and Bor , is presented in Fig. 2, where

described in [4] cannot be used to compute safe exit points. In road networks, safe exit points incur much lower communication costs compared with a safe region [29]. Xuan et al. proposed several Voronoi-based algorithms for continuous range queries [28] and continuous k-NN queries [30] for road networks. 2.2. Limitations of ADV in directed road networks The line of research closest to our present work was initiated by Yung et al. [29], who recently proposed an advanced solution (ADV) for computing the safe exit points of a moving range query in undirected road networks. However, ADV has specific limitations: (1) it cannot compute the safe exit points in directed road networks, and (2) it cannot consider dynamic road networks. ADV computes a safe region, SR, using the influence regions of answer and non-answer objects as follows: þ



SR ¼ \ dðq;o þ Þ r r F or  [ r o dðq;o  Þ r 3r F or ; where o þ and o  denote answer and non-answer objects, þ  respectively, and F or and F or denote the influence regions of o þ and o  . The influence region F or of data object o is the set of points p such that the network distance from o to p is less than or equal to the query radius r, i.e., dðo; pÞ r r holds true; thus, it is formally represented by F or ¼ fp A Gjdðo; pÞ rrg, where G indicates a road network. Fig. 1(a) shows a directed road network where there are two data objects o1 and o2, and a query object q with a query radius of r ¼ 2, which are denoted by the rectangles and triangle, respectively. The distances from q to o1 and o2 are 7 and 2, respectively. Thus, the query result is Oqr ¼ fo2 g. ! Fig. 1(b) shows the correct safe region qn2 o2 , marked in bold, and the set of safe exit points Ω ¼ fq; o2 g. Fig. 1(c)   shows the safe region ω1 o2 , marked in bold, and the set of safe exit points Ω ¼ fω1 ; o2 g, which are computed using

3

n3

o2

1

1 1

n1

1

3

n3

1

2

1

o2

ω1

1

1 1

n1

n2

q

o1

n3

1

1

1

n1

n2

q

o1

o2

1

1

3

1

1 o1

n2

q

Fig. 1. Example of an incorrect safe region by ADV in a directed road network. (a) r¼2 and Oqr¼{o2}, (b) Correct safe region and (c) Safe region calculated by ADV.

1

o

n1

1

1

n3

1

n5

n4

1

1

1 1

n6 Fig. 2. Example of the difference of

1

o 1

1 1

n2 1

F or

n3

and

1

n4

1

1

o

n5

1

n5 1

1

1

for data object o, given r ¼ 2: (a) data object o, (b)

1 1

1

n6 F or

n2

n4

1

n8

1

1

1

n7

n1

1

n3

1

1

n6

n2 1

1

1

n8 Bor

1

1

1

n7

n1

n7

n8

! !  ¼ fon1 ; n1 n2 ; on3 ; n1 n4 ; n3 n4 g and (c) Bor ¼ fon3 ; n3 n6 g.

4

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

the length of all edges is 1, and query radius r ¼ 2 is given. Fig. 2(b) and (c) illustrate F or and Bor , respectively. As stated above, F or can be directly evaluated using Dijkstra's algorithm, where the search starts from data object o. However, in particular, Bor cannot be intuitively evaluated when the query radius is very large or the road network is very complex. 3. Preliminaries Section 3.1 defines the terms and notations used in this paper, and Section 3.2 provides a running example, which is referenced throughout the paper, to illustrate the general results achieved using the proposed algorithm. 3.1. Definitions of terms and notations 3.1.1. Road network A road network can be modeled using a weighted directed graph G ¼ ðN; E; WÞ, where N, E, and W denote the node set, edge set, and edge distance matrix, respectively. Each edge connecting two distinct nodes is assigned a weight, which, such as the travel time, can be dynamic. It is also assigned an orientation, which is either undirected or directed. Specifically, ni nj denotes an undirected edge !  where ni and nj are adjacent nodes, whereas ni nj or ni nj denotes a directed edge. Naturally, the arrow above the edge denotes the associated direction. 3.1.2. Classification of nodes Nodes can be classified into the following three categories according to the node degree. (1) If the degree of a node is larger than 2, the node is referred to as an intersection node. (2) If the degree of a node is 2, the node is referred to as an intermediate node. Finally, (3)

if the degree of a node is 1, the node is referred to as a terminal node. 3.1.3. Sequence and segment The sequence ns ns þ 1 :::ne denotes a path between two nodes ns and ne such that ns (or ne ) is either an intersection node or a terminal node, and the other nodes in the path, ns þ 1 ; …; ne  1 , are intermediate nodes. The two end nodes, ns and ne , are called boundary nodes of the sequence. The particular sequence where query object q remains is called the active sequence of q. The boundary nodes of a sequence are identical if the sequence forms a cycle. It is assumed that all edges in the same sequence have the same direction. The sequence length is the total weight of the edges in the sequence. A part of a sequence is called a segment. Note that by definition, a sequence is also a segment defined by the boundary nodes of the sequence. To simplify our presentation, Table 1 summarizes the notations used in this paper. Note that the network distance between two points, ps and pe, in directed road networks is not symmetric (i.e., dðps ; pe Þ a dðpe ; ps Þ), whereas the length of a segment between two points, p1 and p2, in the same sequence is symmetric (i.e., lenðp1 ; p2 Þ ¼ lenðp2 ; p1 Þ). 3.2. Running example To provide a clear explanation, we use the directed road network example shown in Fig. 3(a), where there are six data objects, o1, …, o6, and where six edges are directed, i. !  !  !  e., n1 n4 , n1 n2 , n2 n5 , n4 n5 , n4 n7 , and n5 n7 , and four edges are undirected, i.e., n3 n4 , n2 n6 , n5 n6 , and n6 n7 . The number on each edge indicates the length of the segment connecting two adjacent objects. For example, lenðn1 ; o1 Þ ¼ 3, lenðn1 ; n4 Þ ¼ 2, and so on. Note that we have dðn5 ; n4 Þ ¼ 4

Table 1 Summary of the notations used in this paper. Notation  G ¼ ðN; E; WÞ

Definition

The graph model of a road network The length of the shortest path from ps to pe, where ps and pe denote the departure and destination points, respectively. dðps ; pe Þ The length of a segment connecting two points p1 and p2 that are in the same sequence. lenðp1 ; p2 Þ ni A node in the road network ni nj An edge in edge set E, where ni and nj are adjacent nodes Wðni nj Þ ¼ lenðni ; nj ÞThe weight of edge ni nj ns ns þ 1 :::ne A sequence where ns (or ne) is the start (or end) boundary node, and the other nodes ns þ 1 ; :::; ne  1 are intermediate nodes. Note that degðns Þa 2, degðne Þ a 2, and degðns þ 1 Þ ¼ ⋯ ¼ degðne  1 Þ ¼ 2, where degðni Þ indicates the degree of node ni, which is the number of edges incident to ni. q A query object in a road network r The query radius The set of data objects within query radius r from point p in G Opr Ω The set of safe exit points for query object q ω A safe exit point where the safe and non-safe regions of q intersect OðαβÞ The set of data objects in segment αβ α An anchor point that corresponds to the start point of the expansion in segment αβ β A boundary node that corresponds to the end point of the expansion in segment αβ SRðαβÞ The safe region in segment αβ, i.e., SRðαβÞ ¼ fp A αβjOpr ¼ Oqr g The influence interval of data object o for segment αβ, i.e., Iðo; αβÞ ¼ fp A αβjdðp; oÞr rg Iðo; αβÞ o þ and o  Answer and non-answer objects, respectively, such that dðq; o þ Þr r and dðq; o  Þ 4r hold Two different influence regions for data object o. Specifically, F or ¼ fp A Gjdðo; pÞ r rg and Bor ¼ fp A Gjdðp; oÞ r rg F or and Bor

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

n1

3

o1

3

2 n3

1

o2

1

n4

n2 2 2

2

2 q

6 o4

2

n1 1 2 3 ω2 o1 2

o3 2 5

n5 2 o5 7 1

3

n6

o6

n7

n3

1

o2

1

5

n2 2 2

5 1 1 q ω1 n5 n4 2 6 o5 7 o4 1 2

o3 2

2

3

n6

o6

n7

Fig. 3. Safe region and safe exit points for range query q where r ¼4: (a) directed road network and (b) safe region and safe exit points ω1, ω2, and n4.

and dðn4 ; n5 Þ ¼ 11 because the shortest path from n4 to n5 is n4 -n7 -n5 . Fig. 3(b) shows a safe region (denoted by the bold line) and safe exits points (denoted by the five-pointed stars) for range query object q. The query result for q with a query radius of r ¼ 4 is Oqr ¼ fo2 g because we have dðq; o1 Þ ¼ 25, dðq; o2 Þ ¼ 3, dðq; o3 Þ ¼ 20, dðq; o4 Þ ¼ 8, dðq; o5 Þ ¼ 11, and dðq; o6 Þ ¼ 17. The example road network comprises nine sequences, ! !  !  i.e., n2 n1 n4 , n2 n5 , n4 n5 , n4 n7 , n5 n7 , n3 n4 , n2 n6 , n5 n6 , and n6 n7 . The safe region is a connected graph, which is the union of the sub-safe regions for each sequence. In this example, the safe region (SR) of q is SR ¼ fn3 n4 ; !   ω2 n1 n4 ; n4 ω1 g, and set Ω of the safe exit points for q is Ω ¼ fω1 ; ω2 ; n4 g. The query result, i.e., Oqr ¼ fo2 g, is valid until q passes through ω1, ω2, or n4. After passing through a safe exit point, query object q updates its location to the server. The query is then re-evaluated based on the updated location of q to refresh the query result and safe exit points. 4. CRUISE: continuous range search algorithm Section 4.1 describes the basic skeleton of CRUISE used to construct the safe exit points of a moving range query in a directed road network. Section 4.2 elaborates on the determination of safe exit points in a sequence. Section 4.3 discusses the computation of the safe exit points of a moving range query for the example road network. Finally, Section 4.4 analyzes the time and space complexities of both ADV and CRUISE. In this section, we assume, without loss of generality, that sequence ns ns þ 1 …ne has no intermediate nodes unless such assumption creates any confusion. For a clearer presentation, ns ne is used to represent ns ns þ 1 …ne . 4.1. Overview of CRUISE CRUISE traverses a road network by starting with the location of query object q in a breadth-first search (BFS) manner to find the safe exit points for q. If no safe exit point is found in a sequence during a breadth-first traversal, the sequences adjacent to this sequence are added to the BFS queue for further exploration; otherwise, the adjacent sequences are not added to the queue. Finally, the exploration of CRUISE terminates when the BFS queue is exhausted. It should be noted that the algorithms in CRUISE are described without any consideration of the sequence directions.

Algorithm 1. CRUISE (q, r) Input: q: query location, r: query radius Output: Oqr : query result, Ω: the set of safe exit points for q 1: queue’ϕ /n queue is a FIFO queue for the BFS n/ 2: Ω’ϕ /n Ω is initialized as an empty set n/ 3: explored’ϕ /n explored stores information on visited sequences and their corresponding anchor point n/ 4: /n note that seqactive indicates the active sequence n/ 5: queue.enqueue (q, seqactive) 6: while queue is not empty do 7: 〈α; seq〉’queue.dequeue () /n α denotes an anchor point where α A seq n/ 8: if 〈α; seq〉2 = explored then 9: explored’explored [ f〈α; seq〉g 10: Ωseq ’find_safe_exit_points_in_sequence (seq; α) /n the function probes the safe exit points in seq n/ 11: Ω’Ω [ Ωseq 12: if no safe exit point exists in a segment ns α then 13: queue.enqueue (ns, each adjacent sequence of ns) /n ns is added as an anchor point to queue n/ 14: if no safe exit point exists in a segment αne then 15: queue.enqueue (ne, each adjacent sequence of ne) /n ne is added as an anchor point to queue n/ 16: return (Oqr ,Ω) /n query result and the set of safe exit points are returned to the query object q n/

Algorithm 1 shows the skeleton of CRUISE used to construct the safe exit points of a moving range query in a directed road network. CRUISE begins by exploring the active sequence where query object q is found. The traversal of sequences continues until the queue is exhausted. Each entry in the queue takes the form 〈α; seq〉, where α indicates the anchor point in the sequence seq. To be precise, q becomes the anchor point if seq is the active sequence. Otherwise, either of the boundary nodes of the sequence, i.e., ns or ne, becomes the anchor point. Thus, α A fns ; ne ; qg. Unless a safe exit point is found in segment αβ where boundary node β A fns ; ne g, the entries of 〈β, each adjacent sequence of β〉 are added to the queue in order to explore the safe exit points in the sequences adjacent to the boundary node β. After the queue is exhausted, the query result and a set of safe exit points are returned to the query object, which correspond to Oqr and Ω, respectively. During the construction of safe exit points, CRUISE reuses the results of the range queries issued at the anchor points and boundary nodes in order to avoid multiple visits to the same nodes and edges. When the construction is completed, the cached query results are removed to reduce the memory consumption.

6

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

4.2. Computation of safe exit points in a sequence This section presents the method used to compute the safe exit points in a sequence. Without any loss of generality, if the sequence is undirected, it corresponds to ! ns ne . Otherwise, it corresponds to ns ne . As stated above, the algorithms in CRUISE work in the same way for both undirected and directed sequences. Thus, we use undirected sequence ns ne to describe the algorithms for convenience. Algorithm 2. find_safe_exit_points_in_sequence (ns ne ; α) Input: ns ne : sequence to be examined, α: anchor point Output: Ωseq : the set of safe exit points in ns ne 1: if α ¼ ns then /n 〈α; β〉 ¼ 〈ns ; ne 〉 n/ 2: Ωseq ’find_safe_exit_point_in_segment (ns ne ; ns ; ne ) 3: else if α ¼ ne then /n 〈α; β〉 ¼ 〈ne ; ns 〉 n/ 4: Ωseq ’find_safe_exit_point_in_segment (ns ne ; ne ; ns ) 5: else if α ¼ q then /n 〈α; β〉 ¼ 〈q; ns 〉 and 〈α; β〉 ¼ 〈q; ne 〉 n/ 6: Ωseq ’find_safe_exit_point_in_segment (ns q; q; ns ) [ find_safe_exit_point_in_segment (qne ; q; ne ) 7: return Ωseq

between safe and non-safe regions, and it is therefore necessary to determine a safe region in αβ. A simple method for determining a safe region in αβ is as follows: SRðαβÞ ¼ \ Iðo þ ; αβÞ  [ Iðo  ; αβÞ where SRðαβÞ denotes a safe region for segment αβ, and o þ and o  denote answer and non-answer objects, respectively, i.e., o þ A Oαr and o  A Oβr [ OðαβÞ Oαr . Recall that the query result at anchor point α equals the query result at q, i.e., Oαr ¼ Oqr holds. Here, Iðo; αβÞ denotes the influence interval of data object o for segment αβ; thus, it is formally represented by Iðo; αβÞ ¼ fp A αβjdðp; oÞ rrg. This simple method computes the influence intervals of redundant data objects that do not affect the safe region, which incurs redundant computational costs. Therefore, to avoid such redundant costs, we propose a more efficient method for determining a safe region in segment αβ as follows: SRðαβÞ ¼ Iðodþ ; αβÞ  Iðod ; αβÞ

Algorithm 2 identifies the anchor point α and boundary node β from the given input ns ne and α. If the anchor point α is node ns, the boundary node β becomes node ne, and sequence ns ne is explored to find a safe exit point. Similarly, if the anchor point α is node ne, the boundary node β becomes node ns, and sequence ns ne is explored. If q is the anchor point α, the sequence ns ne is divided into two segments based on q, i.e., ns q and qne , which are explored. CRUISE determines the safe exit point in segment αβ using Oαr , Oβr , and OðαβÞ. A safe exit point is a contact point

d(α, o)+len(α, β)

where odþ and od denote delegated answer and nonanswer objects, respectively. Clearly, odþ is selected from Oαr , whereas od is selected from Oβr [ OðαβÞ  Oαr . To achieve this, it is necessary to compute the distance from point p to data object o, where p A αβ and o A Oαr [ Oβr [ OðαβÞ. Depending on the location of data object o, we consider three cases separately: (1) o A Oαr , (2) o A Oβr , and (3) o A OðαβÞ. Fig. 4 shows the change in the distance from point p A αβ to data object o for the three cases of o A Oαr , o A Oβr , and o A OðαβÞ. The x-axis in the figure represents lenðα; pÞ, and the y-axis represents dðp; oÞ. It is clear that dðp; oÞ can be represented as a linear function of lenðα; pÞ for 0 rlenðα; pÞ rlenðα; βÞ. Recall that dðα; oÞ, dðβ; oÞ, lenðα; βÞ,

len(α, β)+d(β, o)

r

r d(α, o)

o α

d(β, o)

o α

β

β

r len(o, β) len(α, o)

α Fig. 4. d(p, o) for dðp; oÞ ¼ lenðp; oÞ.

o A Oαr

[

Oβr

[ OðαβÞ and p A αβ: (a) for

o A Oαr ,

o

β

dðp; oÞ ¼ lenðp; αÞþ dðα; oÞ, (b) for oA Oβr , dðp; oÞ ¼ lenðp; βÞþ dðβ; oÞ and (c) for oA OðαβÞ,

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

7

belongs to Oαr \ Oβr OðαβÞ, the distance from point p A αβ to o is determined by dðp; oÞ ¼ MINðlenðp; αÞ þ dðα; oÞ; lenðp; βÞ þdðβ; oÞÞ, meaning that two paths exist from p to o, i.e., p-α-o and p-β-o. The influence interval of data object o can be easily determined using the dðp; oÞ equation in Table 4 and its formal definition, Iðo; αβÞ ¼ fp A αβjdðp; oÞ rrg. Fig. 6 shows the determination of the influence interval of data object o for undirected segment n2 n5 n3 , where the query radius is r ¼ 4. Because dðn2 ; oÞ o r, dðn3 ; oÞ o r, and o A n2 n5 n3 hold, as shown in Fig. 6(a) and (b), data object o belongs to Onr 2 \ Onr 3 \ Oðn2 n5 n3 Þ. Consequently, as shown in Fig. 6(c), the distance from point p A n2 n5 n3 to data object o can be represented by dðp; oÞ ¼ lenðn2 ; pÞ þ 3 for 0 rlenðn2 ; pÞ r2:5 and dðp; oÞ ¼ lenðp; oÞ for 2:5 o lenðn2 ; pÞ r 9; thus, the influence interval of data object o is evaluated as Iðo; n2 n5 n3 Þ ¼ fn2 p1 ; n5 n3 g. Fig. 7 shows the determination of the influence interval  of data object o for directed segment n2 n5 n3 , where the query radius is r ¼ 4. Because dðn2 ; oÞ o r, dðn3 ; oÞ o r, and  o A n2 n5 n3 hold, as shown in Fig. 7(a) and (b), data object o

lenðα; oÞ, and lenðo; βÞ are constants in the linear function. Table 2 summarizes a method for determining dðp; oÞ for undirected segment αβ, depending on the location of data object o, i.e., o A Oαr , o A Oβr , and o A OðαβÞ. Fig. 5 shows the change in the distance from point ! p A αβ to data object o for the three cases of o A Oαr , o A Oβr , ! and o A Oð αβ Þ. Similar to Fig. 4, the x-axis represents lenðα; pÞ, and the y-axis represents dðp; oÞ, which can also be represented as a linear function of lenðα; pÞ for 0 r lenðα; pÞ rlenðα; βÞ. Note that the dashed line segments indicate that no paths exist from p to o, which is denoted as dðp; oÞ ¼ 1, for the corresponding intervals. Table 3 summarizes a method for determining dðp; oÞ for directed ! segment αβ , depending on the location of data object o, i. ! e., o A Oαr , o A Oβr , and o A Oð αβ Þ. Table 4 summarizes the method for determining dðp; oÞ for p A αβ and o A Oαr [ Oβr [ OðαβÞ, where the MIN function returns the minimum value of the input array. Because data object o belongs to at least one of Oαr , Oβr , and OðαβÞ, a total of seven possible cases exist, as shown in Table 4. Recall that dðp; oÞ is the length of the shortest path from p to o among multiple paths. For example, if data object o

Table 3

! Determination of dðp; oÞ for directed segment αβ . Table 2 Determination of dðp; oÞ for undirected segment αβ.

Condition



o A Oαr

Condition

dðp; oÞ

o A Oαr o A Oβr

dðp; oÞ ¼ lenðp; αÞ þ dðα; oÞ dðp; oÞ ¼ lenðp; βÞþ dðβ; oÞ

See Fig. 4(a) See Fig. 4(b)

o A OðαβÞ

dðp; oÞ ¼ lenðp; oÞ

See Fig. 4(c)

dðp; oÞ dðp; oÞ ¼

o A Oβr ! o A Oð αβ Þ

dðα; oÞ

if p ¼ α

1 otherwise dðp; oÞ ¼ lenðp; βÞþ dðβ; oÞ ( ! lenðp; oÞ if p A αo dðp; oÞ ¼ 1 otherwise

r

r

o α

See Fig. 5(b) See Fig. 5(c)

len(α, β)+d(β, o)

d(α, o)+len(α, β)

d(α, o)

See Fig. 5(a)

d(β, o)

o α

β

β

r

len(o, β) len(α, o) α

o

! ! Fig. 5. d(p, o) for [ [ Oð αβ Þ and p A αβ : (a) for o A Oαr , dðp; oÞ ¼ ( ! lenðp; oÞ if p A αo ! (c) for o A Oð αβ Þ, dðp; oÞ ¼ ! 1 otherwise ði:e:; p2 = αo Þ oA Oαr

Oβr

(

β dðα; oÞ 1

if p ¼ α , (b) for oA Oβr , dðp; oÞ ¼ lenðp; βÞþ dðβ; oÞ and otherwise ði:e:; p a αÞ

8

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

Table 4 Summary of dðp; oÞ for o A Oαr [ Oβr [ OðαβÞ. Condition

d(p,o)

o A Oαr  ðOβr [ OðαβÞÞ

dðp; oÞ ¼ lenðp; αÞþ dðα; oÞ

o A Oβr  ðOαr [ OðαβÞÞ

dðp; oÞ ¼ lenðp; βÞ þ dðβ; oÞ

o A OðαβÞ  ðOαr [ Oβr Þ

dðp; oÞ ¼ lenðp; oÞ

o A Oαr \ Oβr  OðαβÞ

dðp; oÞ ¼ MINðlenðp; αÞ þ dðα; oÞ;

o A Oαr \ OðαβÞ Oβr

dðp; oÞ ¼ MINðlenðp; αÞ þ dðα; oÞ;

lenðp; oÞÞ

o A Oβr \ OðαβÞ Oαr

dðp; oÞ ¼ MINð lenðp; βÞ þ dðβ; oÞ;

lenðp; oÞÞ

o A Oαr \ Oβr \ OðαβÞ

dðp; oÞ ¼ MINð lenðp; αÞþ dðα; oÞ;

lenðp; βÞ þ dðβ; oÞ;

n1

n2

2

n3

2

2

n4

lenðp; oÞ Þ

12

1 o

4

lenðp; βÞ þ dðβ; oÞÞ

10 8

4

5.5 n5

r=4

o

3

4

4 n5

n2 Fig. 6. Iðo; n2 n5 n3 Þ ¼ fn2 p1 ; n5 n3 g where ( lenðn2 ; pÞ þ 3 if 0r len ðn2 ; pÞ r 2:5 . lenðp; oÞ if 2:5 o len ðn2 ; pÞr 9

n1

n2

2

2

n3

r¼4

2

(a)

and

n2 n5 n3 ,

1 1.5 1.5 n2 p1 n5 (b)

4

1 o n3

o A Onr 2 \ Onr 3 \ Oðn2 n5 n3 Þ

12

and

(c)

dðp; oÞ ¼

(c)

dðp; oÞ ¼

11

10 8

4

n5

3

r=4

o 4 n2

   Fig. 7. Iðo; n2 n5 n3 Þ ¼ fn2 p2 ; on3 g where ( lenðn2 ; pÞ þ 3 if 0r lenðn2 ; pÞ o 8 . lenðp; oÞ if 8r lenðn2 ; pÞ r 9

o

o 1 o n3

n4

1 o

4

p A n2 n5 n3 :

and

r=4 3 o

r¼4

and

 p A n2 n5 n3 :

 belongs to Onr 2 \ Onr 3 \ Oðn2 n5 n3 Þ. Consequently, as shown  in Fig. 7(c), the distance from point p A n2 n5 n3 to data object o is represented by dðp; oÞ ¼ lenðn2 ; pÞ þ 3 for 0 r lenðn2 ; pÞ o8 and dðp; oÞ ¼ lenðp; oÞ for 8 r lenðn2 ; pÞ r 9; thus, the influence interval of data object o is evaluated    as Iðo; n2 n5 n3 Þ ¼ fn2 p2 ; on3 g.

o 1 o n3

4 n5 (a)

o

r=4 3 o

and

 n2 n5 n3 ,

3 1 n2 p2 (b)

4 n5

1 o n3

 o A Onr 2 \ Onr 3 \ Oðn2 n5 n3 Þ

and

Algorithm 3. find_safe_exit_point_in_segment (αβ; α; β) Input: αβ: segment to be explored, α: anchor point, β: boundary node Output: Ωseg : the set of safe exit points in segment αβ 1:

Iðodþ ; αβÞ’influence_interval_of_delegated_answer_object (αβ; α; β)

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

9

Table 5 Computation of safe exit points for the given road network example. α

αβ  n4 q  qn5 n3 n4 ! n2 n1 n4 ! n4 n7

2:

β

Oαr

Oβr

OðαβÞ  Oðn4 q Þ ¼ ϕ  Oðqn5 Þ ¼ ϕ Oðn3 n4 Þ ¼ fo2 g ! Oðn2 n1 n4 Þ ¼ fo1 g ! Oðn4 n7 Þ ¼ fo4 g

q

n4

Oqr ¼ fo2 g

Onr 4 ¼ fo2 g

q

n5

Oqr ¼ fo2 g

Onr 5 ¼ ϕ

n4 n4

n3 n2

Onr 4 ¼ fo2 g Onr 4 ¼ fo2 g

Onr 3 ¼ fo2 g Onr 2 ¼ fo1 ; o3 g

n4

n7

Onr 4 ¼ fo2 g

Onr 7 ¼ fo5 g

Iðod ; αβÞ’

influence_interval_of_delegated_non_answer_object (αβ; α; β) 3: SRðαβÞ’Iðodþ ; αβÞ Iðod ; αβÞ 4: 5: 6:

/n assume that SRðαβÞ ¼ αpend n/ if pend ¼ β then Ωseg ’ϕ /n pend ¼ β means that no safe exit point exists in αβ n/ else Ωseg ’fpend g /n pend a β means that pend is a safe exit

point in αβ n/ 7: return Ωseg

Algorithm 4. influence_interval_of_delegated_answer_object (αβ; α; β) Input: αβ: segment to be explored, α: anchor point, β: boundary node Output: Iðodþ ; αβÞ: influence interval of delegated answer object odþ 1: 2: 3:

Iðodþ ; αβÞ’αβ /n note that Iðodþ ; αβÞ is initialized as αβ n/ for each answer object o þ A Oαr do if Iðo þ ; αβÞ  Iðodþ ; αβÞ then Iðodþ ; αβÞ’Iðo þ ; αβÞ

4:

return Iðodþ ; αβÞ

Algorithm 4 computes the influence interval of delegated answer object odþ . It should be contained within the influence interval of each answer object o þ A Oαr , meaning that Iðodþ ; αβÞ D Iðo þ ; αβÞ holds. Note that if Oαr is an empty set, Iðodþ ; αβÞ is set to Iðodþ ; αβÞ ¼ αβ. If the influence interval of answer object o þ comprises several partitioned intervals, the interval that includes anchor point α is clearly chosen because the safe region is a connected graph. In Fig. 6(c), for example, if node n2 is an anchor point, the influence interval of data object o is set to Iðo; n2 n5 n3 Þ ¼ fn2 p1 g, whereas if node n3 is an anchor point, it is set to Iðo; n2 n5 n3 Þ ¼ fn5 n3 g. Algorithm 5. influence_interval_of_delegated_non_ answer_object (αβ; α; β)

None ω1 None ω2 n4

Input: αβ: segment to be explored, α: anchor point, β: boundary node Output: Iðod ; αβÞ: influence interval of delegated non-answer object od   od1 ’ϕ /n note that od1 A Oβr  Oαr n/

1: 2:

  od2 ’ϕ /n note that od2 A OðαβÞ Oαr n/

3: 4:

for each non-answer object o  A Oβr  Oαr do   ¼ ϕ or dðα; o  Þ o dðα; od1 Þ then /n the closest object if od1

5:

Algorithm 3 determines a safe region using the influence intervals of delegated answer object odþ and delegated nonanswer object od , which correspond to Iðodþ ; αβÞ and Iðod ; αβÞ, respectively. During the computation of a safe exit point in segment αβ, delegated answer object odþ dominates the other answer objects o þ A Oαr , whereas delegated nonanswer object od dominates the other non-answer objects o  A Oβr [ OðαβÞ  Oαr . This is proved by Lemma 1. Finally, the safe region for segment αβ is determined using SRðαβÞ ¼ Iðodþ ; αβÞ Iðod ; αβÞ. To simplify the discussion, let us assume that SRðαβÞ is evaluated as SRðαβÞ ¼ αpend . If the point pend coincides with the boundary node β, no safe exit point exists in segment αβ; otherwise, pend becomes the safe exit point in segment αβ.

ω

 n/ o  A Oβr  Oαr to α becomes od1  ’o  od1

6: 7: 8:

for each non-answer object o  A OðαβÞ  Oαr do   ¼ ϕ or lenðα; o  Þ o lenðα; od2 Þ then /n the closest if od2

 object o  A OðαβÞ Oαr to α becomes od2 n/  od2 ’o 

9:

  if od1 ¼ ϕ then Iðod1 ; αβÞ’ϕ

10:

  if od2 ¼ ϕ then Iðod2 ; αβÞ’ϕ

11:

  Iðod ; αβÞ’Iðod1 ; αβÞ [ Iðod2 ; αβÞ

12:

return Iðod ; αβÞ

Algorithm 5 computes the influence interval of the delegated non-answer object od . For this, non-answer objects o  A Oβr [ OðαβÞ  Oαr are classified into two categories, i.e., o  A Oβr  Oαr and o  A OðαβÞ Oαr . Clearly, if non-answer object o  belongs to both categories, i.e., o  A Oβr \ OðαβÞ  Oαr , it is handled twice. The closest nonanswer object o  A Oβr Oαr to anchor point α is chosen  to be od1 . Similarly, the closest non-answer object   o A OðαβÞ  Oαr to anchor point α is chosen to be od2 . Naturally, if Oβr Oαr ¼ ϕ (or, OðαβÞ  Oαr ¼ ϕ), the influence    interval of od1 (or, od2 ) is set to Iðod1 ; αβÞ ¼ ϕ (or,  Iðod2 ; αβÞ ¼ ϕ). Consequently, Iðod ; αβÞ becomes the union of the influence intervals of two delegated non-answer     objects od1 and od2 , i.e., Iðod ; αβÞ ¼ Iðod1 ; αβÞ [ Iðod2 ; αβÞ. Finally, Lemma 1 proves that SRðαβÞ ¼ Iðodþ ; αβÞ  Iðod ; αβÞ holds true. Lemma 1. SRðαβÞ ¼ Iðodþ ; αβÞ  Iðod ; αβÞ holds true. Proof. To prove this lemma, we show that \ Iðo þ ; αβÞ  [ Iðo  ; αβÞ ¼ Iðodþ ; αβÞ  Iðod ; αβÞ holds, where o þ A Oαr and o  A Oβr \ OðαβÞ  Oαr . As shown in Algorithm 4, for every answer object o þ A Oαr , Iðodþ ; αβÞ D Iðo þ ; αβÞ is satisfied. Thus, \ Iðo þ ; αβÞ ¼ Iðodþ ; αβÞ holds. As shown in Algorithm 5, the interval that corresponds to Iðodþ ; αβÞ Iðod ; αβÞ does not intersect the influence interval of each nonanswer object o  A Oβr \ OðαβÞ  Oαr , where Iðod ; αβÞ ¼    Iðod1 ; αβÞ [ Iðod2 ; αβÞ. This is because dðα; od1 Þ r dðα; o  Þ  or lenðα; od2 Þ rlenðα; o  Þ holds for each non-answer object o  A Oβr \ OðαβÞ Oαr . Consequently, \ Iðo þ ; αβÞ  [ Iðo  ; αβÞ ¼ Iðodþ ; αβÞ  Iðod ; αβÞ holds, which implies that SRðαβÞ ¼ Iðodþ ; αβÞ Iðod ; αβÞ also holds.□

10

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

5 r=4

r=4 o2

3

o2

1

2

2 n4 Fig. 8.

 Iðodþ ; n4 q Þ ¼

q

r=4

r=4

o2

1 q

1

p1

2

n5

q

  Iðodþ ; n4 q Þ ¼ n4 q , respectively, because Onr 4 ¼ fo2 g, Oqr ¼  fo2 g, and Oðn4 q Þ ¼ ϕ are given. As shown in Fig. 8(b), the delegated non-answer object od and its influence region   for segment n4 q are od ¼ ϕ and Iðod ; n4 q Þ ¼ ϕ, respec-

5

3

n4

    n4 q , Iðod ; n4 q Þ ¼ ϕ, and SRðn4 q Þ ¼ n4 q : (a) odþ ¼ o2 and (b) od ¼ ϕ.

q

n5

     Fig. 9. Iðodþ ; qn5 Þ ¼ qp1 , Iðod ; qn5 Þ ¼ ϕ, and SRðqn5 Þ ¼ qp1 : (a) odþ ¼ o2 and (b) od ¼ ϕ.

4.3. Computation of safe exit points in our running example We now discuss the construction of safe exit points for query object q in Fig. 3. Recall that the query radius is r ¼ 4 and the query result is Oqr ¼ fo2 g. Table 5 summarizes the computation of the safe exit points for query object q. As shown in Algorithm 1, CRUISE first explores the  active sequence n4 n5 , where query object q remains.  Because query object q is located in n4 n5 , each of the   two segments, n4 q and qn5 , is explored individually. As shown in Fig. 8(a), the delegated answer object odþ and its  influence region for segment n4 q are odþ ¼ o2 and

tively, because non-answer objects are not found in Onr 4 or   Oðn4 q Þ. The safe region for segment n4 q is evaluated as     SRðn4 q Þ ¼ Iðodþ ; n4 q Þ  Iðod ; n4 q Þ ¼ n4 q , meaning that no  safe exit point exists in segment n4 q . Thus, three sequ! ! ences adjacent to node n4, i.e., n3 n4 , n2 n1 n4 , and n4 n7 , are added to the queue to expand the safe region. As shown in Fig. 9(a), the delegated answer object odþ  and its influence region for segment qn5 are odþ ¼ o2   þ and Iðod ; qn5 Þ ¼ qp1 , respectively, because Oqr ¼ fo2 g,  Onr 5 ¼ ϕ, and Oðqn5 Þ ¼ ϕ are given. As shown in Fig. 9(b), the delegated non-answer object od and its influence   region for segment qn5 are od ¼ ϕ and Iðod ; qn5 Þ ¼ ϕ, because non-answer objects are not found in Onr 5 or   Oðqn5 Þ. The safe region for segment qn5 is evaluated as   SRðqn5 Þ ¼ qp1 . Clearly, point p1 becomes safe exit point ω1 in Fig. 3(b). As shown in Fig. 10(a), the delegated answer object odþ and its influence region for segment n3 n4 are odþ ¼ o2 and Iðodþ ; n3 n4 Þ ¼ n3 n4 , respectively, because Onr 4 ¼ fo2 g, Onr 3 ¼ fo2 g, and Oðn3 n4 Þ ¼ fo2 g are given. Recall that the anchor point is α ¼ n4 . As shown in Fig. 10(b), the delegated nonanswer object od and its influence region for segment n3 n4 are od ¼ ϕ and Iðod ; n3 n4 Þ ¼ ϕ, respectively, because non-answer objects are not found in Onr 3 or Oðn3 n4 Þ. The safe region for segment n3 n4 is evaluated as SRðn3 n4 Þ ¼ n3 n4 , meaning that no safe exit point exists in segment n3 n4 . However, there is no sequence adjacent to node n3, and no sequence is newly added to the queue. Note that the dashed-dotted line in Fig. 10(a) indicates the lengths of redundant paths, which are not the shortest paths. As shown in Fig. 11(a), the delegated answer object odþ ! and its influence region for segment n2 n1 n4 are odþ ¼ o2

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

r=4

3

11

r=4

3

o2

1

o2

1

n3

1

o2 1

n4

2

n3

n4

Fig. 10. Iðodþ ; n3 n4 Þ ¼ n3 n4 , Iðod ; n3 n4 Þ ¼ ϕ, and SRðn3 n4 Þ ¼ n3 n4 : (a) odþ ¼ o2 and (b) od ¼ ϕ.

11 10 9

5

r=4

5 n2

1 p2

2 n1

o2

r=4 3

o1

2

o3

1 n4

2

3

3 n2

o1

n1

n4

! ! ! ! ! !   Fig. 11. Iðodþ ; n2 n1 n4 Þ ¼ p2 n1 n4 , Iðod ; n2 n1 n4 Þ ¼ n2 o1 , and SRðn2 n1 n4 Þ ¼ p2 n1 n4 : (a) odþ ¼ o2 , (b) od1 ¼ o3 and od2 ¼ o1 .

! ! and Iðodþ ; n2 n1 n4 Þ ¼ p2 n1 n4 , respectively, because Onr 4 ¼ ! n2 fo2 g, Or ¼ fo1 ; o3 g, and Oðn2 n1 n4 Þ ¼ fo1 g are given. Recall that the anchor point is α ¼ n4 . As shown in Fig. 11(b), the delegated non-answer object od and its influence region ! ! ! for segment n2 n1 n4 are od ¼ o1 and Iðod ; n2 n1 n4 Þ ¼ n2 o1 , ! n2 n4 respectively, because Or Or ¼ fo1 ; o3 g and Oðn2 n1 n4 Þ  ! Onr 4 ¼ fo1 g are given. The safe region for segment n2 n1 n4 is ! ! evaluated as SRðn2 n1 n4 Þ ¼ p2 n1 n4 . Clearly, point p2 becomes safe exit point ω2 in Fig. 3(b). As shown in Fig. 12(a), the delegated answer object odþ ! and its influence region for segment n4 n7 are odþ ¼ o2 and ! Iðodþ ; n4 n7 Þ ¼ n4 , respectively, because Onr 4 ¼ fo2 g, Onr 7 ¼ ! fo5 g, and Oðn4 n7 Þ ¼ fo4 g are given. Recall that the anchor point is α ¼ n4 . As shown in Fig. 12(b), the influence region ! of the delegated non-answer object od is Iðod ; n4 n7 Þ ¼

! p3 n7 , because non-answer objects o5 A Onr 7  Onr 4 and !  o4 A Oðn4 n7 Þ are delegated non-answer objects od1 and  od2 , respectively, and their corresponding influence ! ! ! ! regions are Iðo5 ; n4 n7 Þ ¼ p4 n7 and Iðo4 ; n4 n7 Þ ¼ p3 o4 , and thus the influence region of delegated non-answer object ! ! ! ! od is Iðod ; n4 n7 Þ ¼ Iðo5 ; n4 n7 Þ [ Iðo4 ; n4 n7 Þ ¼ p3 n7 . The safe ! ! region for segment n4 n7 is evaluated as SRðn4 n7 Þ ¼ n4 . Obviously, node n4 becomes a safe exit point, as shown in Fig. 3(b).

4.4. Analysis of time and space complexities In this section, we analyze the time and space complexities of both ADV and CRUISE. The following assumptions

12

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

9

9

6 r=4

r=4

2 o2

1

8

n4

3

2 n7

n4

p3

2

1 p4

o5 1

o4

n7

! ! ! !   Fig. 12. Iðodþ ; n4 n7 Þ ¼ n4 , Iðod ; n4 n7 Þ ¼ p3 n7 , and SRðn4 n7 Þ ¼ n4 : (a) odþ ¼ o2 and (b) od1 ¼ o5 and od2 ¼ o4 .

Table 6 Summary of the time and space complexities of ADV and CRUISE. Time complexity

Space complexity

ADV

TððjEq3r j þ jN q3r j log jN q3r jÞ þ jOq3r jðjEor j þ jN or j log jN or jÞÞ

jOq3r j

CRUISE

TððjEqrmax þ r j þ jN qrmax þ r j log jN qrmax þ r jÞ þ ð2jEqrmax þ r jjOαr [ Oβr [ OðαβÞjÞÞ

jN qrmax þ r jU jOnr j

are used to simplify the analysis: (1) the road network is undirected, (2) data objects are uniformly distributed in the road network, and (3) there are no intermediate nodes, i.e., every edge corresponds to a sequence. Recall that for two points ps ; pe A G, dðps ; pe Þ ¼ dðpe ; ps Þ holds true for undirected road networks. Let N pr and Epr be the sets of nodes and edges within distance r of point p, respectively. Note that |S| denotes the cardinality of set S. First, we analyze the time complexity of ADV. ADV retrieves a set of data objects Oq3r within a distance of 3r of q, which has a time complexity of TðjEq3r jþ jNq3r j log jN q3r jÞ according to Dijkstra's algorithm. Next, ADV computes the safe exit points using the retrieved data objects. For each data object o A Oq3r , the influence region of data object o is searched to discover safe exit points, which has a time complexity of TðjEor j þjN or j log jNor jÞ. Finally, the time complexity of ADV is TððjEq3r jþ jNq3r j log jN q3r jÞ þ jOq3r jðjEor j þ jN or j log jNor jÞÞ. The search space of ADV becomes a region within a distance of 3r from q, regardless of the size of the safe region. Thus, the space complexity of ADV is jOq3r j. Next, we analyze the time complexity of CRUISE. Let r max be the maximum distance from q to point p in the safe region. Then, it holds that r max r2r. This is because the þ safe region should be included in the influence region F or q þ of every answer object o A Or , and dðp1 ; p2 Þ r2r holds for þ two points p1 ; p2 A F or . For each segment αβ A Eqrmax þ r , CRUISE explores the safe exit point using data objects o A Oαr [ Oβr [ OðαβÞ. An edge is investigated at most twice because it can have two anchor points, i.e., ns

and ne. Thus, the time complexity of CRUISE is TððjEqrmax þ r j þ jNqrmax þ r j log jNqrmax þ r jÞ þ ð2jEqrmax þ r jjOαr [ Oβr [ OðαβÞjÞÞ. The search space of CRUISE becomes the region within a distance of r max þ r from q, because it is necessary to explore data objects o A Oqrmax þ r to determine safe region SR. Therefore, the search space of CRUISE is not larger than that of ADV because r max þ r r 3r. In particular, as the safe region is smaller, the difference in the search spaces of CRUISE and ADV increases because the value of rmax decreases. The space complexity of CRUISE is jN qrmax þ r jjOnr j. Finally, Table 6 summarizes the time and space complexities of ADV and CRUISE.

5. Extension of CRUISE to dynamic directed road networks In this section, we extend CRUISE to dynamic road networks where the network distance changes depending on the traffic conditions. The query result or the safe region may often be invalidated by updating the weights of some edges, although query object q remains in the safe region. Thus, we introduce a reduced safe region to reduce the frequency of evaluations of the safe region in a dynamic road network. In this section, the safe region in a static road network is referred to as the exhaustive safe region, SRex, whereas the safe region in a dynamic road network is referred to as the reduced safe region, SRre, which is clearly a subset of SRex.

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

contains the reduced safe region. For query object q with query radius of r ¼ 3, the safe region and its critical region are illustrated in Fig. 14, where the critical region is denoted by the dotted line and its boundary points are denoted by a horizontal or vertical bar. The safe region may be affected when a sequence associated with the critical region changes its weight. Thus, the critical regions of the query objects are stored and indexed to rapidly verify whether the change in an edge affects the safe region. If the safe region is updated, its critical region is also updated accordingly. Clearly, changes to edges that are not associated with the critical region can be safely ignored. ! In Fig. 15(a), the safe region of q is a segment ω s ωe at time ti, and its critical region is denoted by the dotted line.   Suppose that the weights of two edges n4 n5 and n5 n6 are updated at time tj. Specifically, both lenðn4 ; n5 Þ and lenðn5 ; n6 Þ are changed from 2 to 4. The update to edge  n4 n5 , which overlaps the critical region, may affect the safe

Unlike the exhaustive safe region, the reduced safe region is determined within only the active sequence. The relationship between the reduced and exhaustive safe regions is shown in Fig. 13, where the safe regions are marked with bold lines, and n2 n5 is the active sequence of q. In Fig. 13(a), the reduced safe region shown on the left side is included in the exhaustive safe region shown on the right side, whereas in Fig. 13(b), the reduced safe region equals the exhaustive safe region. Naturally, the reduced safe region becomes a line segment whose end points become safe exit points, which are denoted simply by ωs and ωe . Next, we introduce a critical region to monitor the validity of the safe region effectively when the weight of an edge is changed. The critical region CR is defined as a set of points p such that for point pre A SRre , dðpre ; pÞ r r holds; thus, it is formally represented by CR ¼ SRre [ F ωr s [ F ωr e , where F ωr s and F ωr e are the influence regions of safe exit points ωs and ωe , respectively. Clearly, the critical region

n1

n4

n4

n1

SRre n5

q

n2

n6

n4

ω2 n5

q

ω3

n3

n1

SRex

ω1 n2

13

n2

ω5

ω4

n3

n6

q

n5

ω6

n3

n6

Fig. 13. Relationship between reduced safe region SRre and exhaustive safe region SRex (a) SRre  SRex (b) SRre ¼ SRex .

n4

n1

2

2

n2

2

q

ωs

2

2

1

2

n2

1

2

q

ωs

2

2

n6

1

n5

ωe

2

2

n3

1

2

n5

ωe

n4

n1

2

n3

n6

Fig. 14. Example of a safe region and its corresponding critical region, where r ¼ 3: (a) safe region of q and (b) critical region of q.

n4

n1

1

2

n2 2

1

2

ωs

2

2

q

n4

n1

3

2

1

n5

ωe 2

n3

n2 2

1

2

ωs

2

2

q

1

ωe

n5

4

n3 n6

n6

    Fig. 15. Updating the weights of two edges n4 n5 and n5 n6 where t i o t j and r ¼ 3: (a) critical region of q at time ti and (b) updates to n4 n5 and n5 n6 at time tj.

14

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

Table 7 Experimental parameter settings. Parameter

Range

Number of POIs (NPOI) Query radius (r) Query object speed (Vqry) Ratio of directed sequences to total sequences (Rdir) Ratio of updated sequences to total sequences per timestamp (Rupd) Distribution of POIs (DPOI) Distribution of query objects (Dqry) Number of query objects (Nqry)

10, 50, 100, 200, 500 (  1000) 1, 5, 10, 20, 50 (km) 20, 40, 60, 80, 100 (km/h) 0, 5, 10, 20, 50 (%) 0, 5, 10, 20, 50 (%) (U)niform, (S)kewed (U)niform, (S)kewed 1000

 region. However, the update to edge n5 n6 , which does not overlap the critical region, does not affect the safe region, and can thus be safely ignored.

timestamp. The figures show the values measured per timestamp. We implement all solutions in C þ þ, and all of the experiments are conducted using a desktop PC with a 2.8 GHz Pentium CPU and 4 GB of memory.

6. Performance evaluation 6.2. Experimental results for static directed road networks We describe our experimental settings in Section 6.1, and present our experimental results for static and dynamic directed road networks in Sections 6.2 and 6.3, respectively. 6.1. Experimental settings In these experiments, we use a real-life road map [32] of some main roads in North America, which corresponds to a data universe of 50005000 km2, comprising 175,813 nodes and 179,179 edges. This road map has been used for performance evaluations in many previous studies, such as [4,29]. Table 7 summarizes the parameters investigated. In each experiment, we vary a single parameter within the range shown, whereas all other parameters are fixed to the default values highlighted in bold text. The directed and updated sequences are selected randomly, irrespective of the locations of the POIs and query objects. The number of query objects is fixed to 1000. We simulate moving query objects (moving cars) using the network-based moving objects generator described in [2]. All query objects are monitored continuously for 600 timestamps. In the performance study, we evaluate the performance of CRUISE using the following measures: (1) the total amount of server CPU time per timestamp; (2) the total communication cost as the total number of points (i.e., the location updates sent by query objects, and the query results and safe exit points, both of which are returned by the server), transferred between query objects and the server per timestamp; and (3) the total communication frequency, which corresponds to the number of location updates sent by the query objects per timestamp. The computation time for each query object is negligible, and thus we only measure the CPU time on the server. The battery power and wireless bandwidth consumption typically increase with the amount of data transferred between query objects and the server [1,29], and we therefore use the amount of transferred data as a metric to evaluate the communication costs. For comparison, we also report the performance of a periodic querying approach, referred to as the baseline, which issues a new range query to the server at every

Fig. 16 shows a comparison of the query processing time on a server for static road networks. The vertical axis of each chart in Fig. 16 uses a log scale, whereas the vertical axis of each chart in Fig. 18 uses a linear scale. Fig. 16(a) shows the effect of POI cardinality, NPOI (from 10,000 to 500,000), on the query processing time. The query processing times of both methods increase with NPOI. However, the query processing time of CRUISE is more sensitive to the value of NPOI than that of the baseline because a larger value of NPOI requires a longer computation time in CRUISE when determining the safe exit points owing to the increased numbers of answer and nonanswer objects. Nevertheless, CRUISE significantly outperforms the baseline in all cases. Fig. 16(b) shows the effect of the query radius, r (1– 50 km), on the query processing time. The query processing times of both methods increase with r because a larger value of r produces a larger search space. The query processing time of CRUISE increases more rapidly with r compared with that of the baseline. Although the difference in the performance of CRUISE and the baseline decreases as the value of r increases, CRUISE outperforms the baseline in all cases. Fig. 16(c) shows the effect of the query object speed, Vqry (20–100 km/h), on the query processing time. The baseline has an almost constant query processing time because each query object in the baseline submits a query to the server at each timestamp. However, the baseline cannot guarantee the accuracy of the results at all times, and it therefore suffers from stale query results when the query objects are moving at high speed (e.g., 100 km/h). The query processing time of CRUISE increases with Vqry because, as the query object moves faster, a safe exit point is reached sooner, which increases the update frequency of the query results. CRUISE outperforms the baseline in all cases. Fig. 16(d) shows the effect of the ratio of directed sequences to the total number of sequences, Rdir (0–50%), on the query processing time. Note that Rdir is set to 10% in all previous experiments. The change in Rdir rarely affects the query processing time for CRUISE.

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

CPU time (s)

CPU time (s)

CPU time (s)

NPOI

0

15

r

0

Vqry

0

CPU time (s)

CPU time (s)

Rdir

0

0

DPOI=U D =U qry

DPOI=U Dqry=S

DPOI=S Dqry=U

DPOI=S Dqry=S

Fig. 16. Comparison of the query processing times in a static road network: (a) effect of POI cardinality, (b) effect of query radius, (c) effect of query object speed, (d) effect of ratio of directed sequences and (e) effect of distributions.

# of transferred points

(1k)

# of transferred points

# of transferred points (1k)

(1k)

(1k)

(1k)

(1k) (64)

(1k)

(1k)

(1k)

(1k)

(29)

(1k)

(1k)

(1k)

(1k)

(1k)

(14)

(19)

(23)

(10)

(29)

(14)

(17)

(8) (16)

(2)

(14)

(14) (5)

NPOI

Vqry

r

# of transferred points

# of transferred points (1k)

(1k)

(1k)

(1k)

(1k)

(1k) (1k)

(15)

(14)

(14)

(14)

(14)

(14)

(1k)

(1k)

(11)

(14) (1)

Rdir DPOI=U Dqry=U

DPOI=U Dqry=S

DPOI=S Dqry=U

DPOI=S Dqry=S

Fig. 17. Comparison of the number of transferred points in a static road network: (a) effect of POI cardinality, (b) effect of query radius, (c) effect of query object speed, (d) effect of ratio of directed sequences and (e) effect of distributions.

In all of the previous experiments, the initial positions of the POIs and query objects follow a uniform distribution in the network. Fig. 16(e) shows the query processing

times with different combinations of POI and query object distributions, while maintaining the remaining parameters at their default values. The U and S values shown in the

16

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

figure indicate uniform and skewed distributions, respectively. Once again, CRUISE outperforms the baseline in all cases. Fig. 17 shows a comparison of the number of points transferred between the query objects and server using the same conditions as those shown in Fig. 16. The numbers in parentheses in Figs. 17 and 19 indicate the total communication frequencies, which correspond to the numbers of queries evaluated per timestamp. Fig. 17(a) shows the effect of POI cardinality, NPOI, on the communication costs. Naturally, the communication costs increase with NPOI. CRUISE outperforms the baseline markedly in terms of the communication costs. This is expected because the query objects in CRUISE do not ask the server for updated query results until they pass through a safe exit point, whereas every query object in the baseline requires an updated query result at each timestamp. Fig. 17(b) shows the effect of query radius r on the communication costs. The communication costs increase with r. The communication frequency with CRUISE also increases with r. This is expected because the influence regions of non-answer objects increase with r, and thus the size of the safe region decreases. The communication costs with CRUISE are up to 40 times smaller than those with the baseline. Fig. 17(c) shows the effect of the query object speed, Vqry, on the communication costs. The baseline incurs constant communication costs because each query object issues a query to the server at each timestamp regardless of the speed. With CRUISE, as the query object moves

faster, it reaches a safe exit point sooner, and therefore the update frequency of the query results and safe exit points increases with Vqry. Again, CRUISE outperforms the baseline in all cases. Fig. 17(d) shows the effect of the ratio of directed sequences to the total number of sequences, Rdir, on the communication costs. As Rdir increases, the communication cost of CRUISE decreases slightly. This is because as Rdir increases, the search space decreases. More specifically, the influence region of a data object in an undirected road network is determined by the distance, whereas the influence region in a directed road network is determined by both the distance and direction. Here, too, CRUISE outperforms the baseline in all cases. Fig. 17(e) shows the effects of the initial POI and moving query object distributions on the communication costs. Once again, CRUISE outperforms the baseline in all cases and minimizes the communication costs.

6.3. Experimental results for dynamic directed road networks Fig. 18 shows a comparison of the query processing time on a server for a dynamic road network where the Rupd (%) values of the whole sequences change their weight at each timestamp. Recall that CRUISE determines the reduced safe regions for query objects in dynamic road networks. The numbers in the parentheses in Fig. 18 indicate the space requirements for storing the critical regions of query objects in CRUISE. Each sequence retains

c

b

a

CPU time (s)

CPU time (s)

CPU time (s)

(48kB)

(14kB) (10kB) (11kB) (10kB)

(11kB) 0

(11kB)

Rupd

(11kB)

d

0

(17kB) (12kB)

(11kB)

0

(6kB)

(8kB)

(11kB)

r

f

e

CPU time (s)

(18kB)

NPOI

CPU time (s)

CPU time (s)

(15kB)

(11kB) (11kB) 0

(11kB)

(11kB)

(11kB)

(11kB)

Vqry 0

(11kB) (11kB)

(10kB)

(9kB)

Rdir

(11kB) 0

DPOI=U Dqry=U

(12kB) DPOI=U Dqry=S

(29kB) DPOI=S Dqry=U

DPOI=S Dqry=S

Fig. 18. Comparison of the query processing times in a dynamic road network: (a) effect of ratio of updated sequences, (b) effect of POI cardinality, (c) effect of query radius, (d) effect of query object speed, (e) effect of ratio of directed sequences and (f) effect of distributions.

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

the information on the query objects whose critical regions are associated with the sequence. Fig. 18(a) shows the effect of the ratio of updated sequences to the total number of sequences per timestamp, Rupd (0–50%), on the query processing time. Clearly, Rupd ¼ 0% indicates a static road network. The weight of an updated sequence is selected randomly from between 0.1 and 10 times the original weight. Naturally, the query processing time of the baseline is nearly constant irrespective of the value of Rupd, because each query object in the baseline issues a range query at each timestamp. However, the query processing time of CRUISE is highly sensitive to the value of Rupd because the safe region of a query object has to be updated if a sequence that changes its weight is associated with the critical region of the query object. Thus, a larger value of Rupd leads to a longer query processing time. For 0% rRupd r 20%, the query processing time for CRUISE is up to 10 times shorter than that with the baseline, whereas for Rupd ¼ 50%, the query processing time for CRUISE is 1.71 times longer. However, this longer query processing time using CRUISE can be offset by the gain in communication costs, as shown in Fig. 19. Fig. 18(b) shows the effect of POI cardinality, NPOI, on the query processing time. The increase in the density of POIs requires a longer query processing time. For CRUISE, the space requirement for storing the critical regions decreases as NPOI increases. This implies that, as NPOI increases, the reduced safe region becomes smaller, and therefore fewer sequences are associated with the critical region.

Fig. 18(c) shows the effect of the query radius r on the query processing time. The query processing time with CRUISE increases rapidly with r because the size of the critical region increases with r, and for large values of r, updating the weight of a sequence affects the critical regions of many query objects. Specifically, for 1 km r r r20 km, the query processing time for CRUISE is up to 3.3 times shorter than that with the baseline, whereas, for r¼50 km, the query processing time for CRUISE is 2.3 times longer. Fig. 18(d) shows the effect of the query object speed, Vqry, on the query processing time. The baseline has an almost constant query processing time. However, the query processing time for CRUISE increases slightly with Vqry. With CRUISE, as the query object moves faster, it reaches a safe exit point sooner, which increases the update frequency of the query results. Fig. 18(e) shows the effect of the ratio of directed sequences to the total number of sequences, Rdir, on the query processing time. CRUISE outperforms the baseline irrespective of the value of Rdir. The query processing time for CRUISE is shortest when Rdir ¼50%, owing to the fact that, as Rdir increases, the search space and critical region both shrink. Fig. 18(f) shows the query processing times with different combinations of POI and query object distributions whereas the remaining parameters are fixed at their default values. For DPOI ¼ S and Dqry ¼ S, the query processing time for CRUISE is 1.4 times longer than that with the baseline, which is due to the higher density of POIs requiring a longer query processing time in CRUISE to compute the reduced safe regions.

# of transferred points

# of transferred points

# of transferred points

17

(1k) (1k)

(1k)

(1k) (1k)

(1k)

(1k) (516)

(707) (1k)

(400)

(33)

(135)

(224)

Rupd

(1k) (283)

(1k)

(224)

(1k) (250)

(1k) (224)

NPOI

(223)

(156)

# of transferred points

# of transferred points

(1k)

(1k)

(1k)

(320)

(224)

r

(185)

# of transferred points (1k)

(1k)

(1k)

(1k)

(1k)

(1k)

(1k)

(1k)

(1k)

(277)

(1k) (1k) (1k)

(187)

(220)

(224)

(230)

(241)

Vqry

(271)

(224) (249)

(224)

(225)

(1k) (261)

(1k) (438)

(213)

Rdir DPOI=U Dqry=U

DPOI=U Dqry=S

DPOI=S Dqry=U

DPOI=S Dqry=S

Fig. 19. Comparison of the number of transferred points in a dynamic road network: (a) effect of ratio of updated sequences, (b) effect of POI cardinality, (c) effect of query radius, (d) effect of query object speed, (e) effect of ratio of directed sequences and (f) effect of distributions.

18

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

Fig. 19 shows a comparison of the number of points transferred between the query objects and server using the same conditions as those in Fig. 18. Fig. 19(a) shows the effect of the ratio of updated sequences to the total number of sequences per timestamp, Rupd, on the communication costs. The baseline has an almost constant communication cost irrespective of the value of Rupd. However, the communication cost with CRUISE increases rapidly with Rupd. This is because the critical region of a query object is updated frequently as Rupd increases. Thus, the safe region of the query object is re-evaluated. CRUISE significantly outperforms the baseline in terms of the communication costs. Fig. 19(b) shows the effect of POI cardinality, NPOI, on the communication costs. The communication costs typically increase with NPOI. Here, CRUISE outperforms the baseline markedly. Fig. 19(c) shows the effect of query radius r on the communication costs. The communication costs increase with r. The communication frequency with CRUISE increases with r because the size of the critical region increases as r increases, whereas the size of the safe region decreases. Fig. 19(d) shows the effect of the query object speed, Vqry, on the communication costs. The communication cost with the baseline is nearly constant irrespective of the value of Vqry, whereas for CRUISE, it increases with Vqry. For CRUISE, as the query object moves faster, it reaches a safe exit point sooner, and thus the update frequency of the query results and safe exit points increases with Vqry. Fig. 19(e) shows the effect of the ratio of directed sequences to the total number of sequences Rdir on the communication costs. The communication costs of both methods decrease as Rdir increases, owing to the fact that the search space and critical region both shrink as Rdir increases. Fig. 19(f) shows the effect of the initial POI and query object distributions on the communication costs. It is interesting to note that the update frequency for CRUISE is highest for DPOI ¼ S and Dqry ¼ U, which is due to the reduced safe region for DPOI ¼ S and Dqry ¼ U being larger than for the other settings. Thus, updating the weight of the sequences directly affects the critical regions of many query objects simultaneously. Once again, CRUISE outperforms the baseline in all cases.

7. Conclusion We proposed a new algorithm called CRUISE that can efficiently compute the safe exit points of moving range queries in a static directed road network. Furthermore, CRUISE can effectively construct and maintain a safe region in a dynamic directed road network by introducing a reduced safe region and a critical region. A performance evaluation using a real-life road network shows that CRUISE generally outperforms a traditional solution in terms of the computational and communication costs under various conditions. Thus, CRUISE can be considered highly beneficial in the following real-life scenarios: (1) where mobile devices have a limited network bandwidth, and the server demands a high throughput, and (2) where each road segment has a particular orientation and its

network distance changes frequently depending on the traffic conditions. Although in this study, we focus CRUISE on computing the safe region of a query object moving freely in both static and dynamic directed road networks, it can be applied to various scenarios. For example, if the path of a query object is known in advance, CRUISE can determine the safe regions along only that path and report them to the query object, thereby minimizing the computational and communication costs. As another example, the techniques used for dynamic road networks, i.e., a reduced safe region and a critical region, can also be applied to handle moving queries for moving data objects in a road network.

Acknowledgements We thank the anonymous reviewers for their very useful comments and suggestions. This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (NRF-2012R1A1A2043422). References [1] J. Bao, C. Chow, M. Mokbel, W. Ku, Efficient evaluation of k-range nearest neighbor queries in road networks, in: Proceedings of Mobile Data Management, 2010, pp. 115–124. [2] T. Brinkhoff, A framework for generating network-based moving objects, GeoInformatica 6 (2) (2002) 153–180. [3] Y. Cai, K. Hua, G. Cao, Processing range-monitoring queries on heterogeneous mobile objects, in: Proceedings of the Mobile Data Management, 2004, pp. 27–38. [4] M. Cheema, L. Brankovic, X. Lin, W. Zhang, W. Wang, Continuous monitoring of distance-based range queries, IEEE Trans. Knowl. Data Eng. 23 (8) (2011) 1182–1199. [5] M. Cheema, L. Brankovic, X. Lin, W. Zhang, W. Wang, Multi-guarded safe zone: An effective technique to monitor moving circular range queries, in: Proceedings of ICDE, 2010, pp. 189–200. [6] H. Cho, S. Choe, T. Chung, A distributed approach to continuous monitoring of constrained k-nearest neighbor queries in road networks, Mobile Inform. Syst. 8 (2) (2012) 107–126. [7] H. Cho, Continuous range k-nearest neighbor queries in vehicular ad hoc networks, J. Syst. Software 86 (5) (2013) 1323–1332. [8] H. Cho, S. Kwon, T. Chung, A safe exit algorithm for continuous nearest neighbor monitoring in road networks, Mobile Inform. Syst. 9 (1) (2013) 37–53. [9] T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms, MIT Press; McGraw-Hill, The MIT Press, Cambridge, MA, 2001, http://mitpress.mit.edu. [10] B. Gedik, L. Liu, MobiEyes: a distributed location monitoring service using moving location queries, IEEE Trans. Mobile Comput. 5 (10) (2006) 1384–1402. [11] B. Gedik, K. Wu, P. Yu, L. Liu, Motion adaptive indexing for moving continual queries over moving objects, in: Proceedings of CIKM, 2004, pp. 427–436. [12] H. Hu, J. Xu, D. Lee, A generic framework for monitoring continuous spatial queries over moving objects, in: Proceedings of SIGMOD, 2005, pp. 479–490. [13] H. Hu, J. Xu, D. Lee, PAM: an efficient and privacy-aware monitoring framework for continuously moving objects, IEEE Trans. Knowl. Data Eng. 22 (3) (2010) 404–419. [14] S. Ilarri, E. Mena, A. Illarramendi, Location-dependent query processing: where we are and where we are heading, ACM Comput. Surv. 42 (3) (2010) 12–84. [15] H. Kriegel, P. Kroger, M. Renz, Continuous proximity monitoring in road networks, in: Proceedings of GIS, 2008, Article no. 12. [16] F. Liu, T. Do, K. Hua, Dynamic range query in spatial network environments, in: Proceedings of DEXA, 2006, pp. 254–265. [17] M. Mokbel, X. Xiong, W. Aref, SINA: scalable incremental processing of continuous queries in spatio-temporal databases, In: Proceedings of SIGMOD, 2004, pp. 623–634.

H.-J. Cho et al. / Information Systems 41 (2014) 1–19

[18] K. Mouratidis, M. Yiu, D. Papadias, N. Mamoulis, Continuous nearest neighbor monitoring on road networks, in: Proceedings of VLDB, 2006, pp. 43–54. [19] S. Nutanong, R. Zhang, E. Tanin, L. Kulik, The Vn-Diagram: a querydependent approach to moving KNN queries, PVLDB 1 (1) (2008) 1095–1106. [20] D. Papadias, J. Zhang, N. Mamoulis, Y. Tao, Query processing in spatial network databases, in: Proceedings of VLDB, 2003, pp. 802–813. [21] P. Pesti, L. Liu, B. Bamba, A. Iyengar, M. Weber, RoadTrack: scaling location updates for mobile clients on road networks with query awareness, PVLDB 3 (2) (2010) 1493–1504. [22] D. Stojanovic, A. Papadopoulos, B. Predic, S. Kajan, A. Nanopoulos, Continuous range monitoring of mobile objects in road networks, Data Knowl. Eng. 64 (1) (2008) 77–100. [23] H. Wang, R. Zimmermann, A novel dual-index design to efficiently support snapshot location-based query processing in mobile environments, IEEE Trans. Mobile Comput. 9 (9) (2010) 1280–1292. [24] H. Wang, R. Zimmermann, W. Ku, Distributed continuous range query processing on moving objects, in: Proceedings of DEXA, 2006, pp. 655–665.

19

[25] H. Wang, R. Zimmermann, Processing of continuous location-based range queries on moving objects in road networks, IEEE Trans. Knowl. Data Eng. 23 (7) (2011) 1065–1078. [26] X. Wang, W. Wang, Continuous expansion: efficient processing of continuous range monitoring in mobile environments, in: Proceedings of DASFAA, 2006, pp. 890–899. [27] X. Xiong, M. Mokbel, W. Aref, SEA-CNN: Scalable Processing of Continuous K-Nearest Neighbor queries in spatio-temporal databases, in: Proceedings of ICDE, 2005, pp. 643–654. [28] K. Xuan, G. Zhao, D. Taniar, M. Safar, B. Srinivasan, Constrained range search query processing on road networks, Concurr. Comput. Pract. Exp. 23 (5) (2011) 491–504. [29] D. Yung, M. Yiu, E. Lo, A safe-exit approach for efficient networkbased moving range queries, Data Knowl. Eng. 72 (2012) 126–147. [30] G. Zhao, K. Xuan, W. Rahayu, D. Taniar, M. Safar, M. Gavrilova, B. Srinivasan, Voronoi-based continuous k nearest neighbor search in mobile navigation, IEEE Trans. Ind. Electron. 58 (6) (2011) 2247–2257. [31] J. Zhang, M. Zhu, D. Papadias, Y. Tao, D. Lee, Location-based spatial queries, in: Proceedings of SIGMOD, 2003, pp. 443–454. [32] Real Datasets for Spatial Databases, 〈http://www.cs.fsu.edu/ lifeifei/ SpatialDataset.htm〉.