KR20230071671A - Method for processing spatial proximity queries in dynamic spatial networks - Google Patents

Method for processing spatial proximity queries in dynamic spatial networks Download PDF

Info

Publication number
KR20230071671A
KR20230071671A KR1020210176671A KR20210176671A KR20230071671A KR 20230071671 A KR20230071671 A KR 20230071671A KR 1020210176671 A KR1020210176671 A KR 1020210176671A KR 20210176671 A KR20210176671 A KR 20210176671A KR 20230071671 A KR20230071671 A KR 20230071671A
Authority
KR
South Korea
Prior art keywords
query
queries
cluster
uba
points
Prior art date
Application number
KR1020210176671A
Other languages
Korean (ko)
Inventor
조형주
Original Assignee
경북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경북대학교 산학협력단 filed Critical 경북대학교 산학협력단
Publication of KR20230071671A publication Critical patent/KR20230071671A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24547Optimisations to support specific applications; Extensibility of optimisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification

Abstract

본 발명의 실시 예에 따른 위치 기반 서비스 시스템의 동적 공간 네트워크에서의 공간 근접성 쿼리를 처리하는 방법은, 복수의 단말들로부터 공간 근접성(SP) 쿼리와 데이터 포인트를 수집하는 단계, 상기 공간 근접성 쿼리의 쿼리 포인트들을 쿼리 클러스터로 그룹화하는 단계, 최근접 이웃(NN) 쿼리와 범위(RN) 쿼리를 포함하는 상기 쿼리 클러스터에 대한 일괄 처리(Batch processing)를 위해 클러스터 검색 알고리즘을 실행하는 단계, 그리고 상기 클러스터 검색 알고리즘에 의해서 계산된 쿼리 결과를 상기 복수의 단말들로 반환하는 단계를 포함한다. A method for processing a spatial proximity query in a dynamic spatial network of a location-based service system according to an embodiment of the present invention includes collecting spatial proximity (SP) queries and data points from a plurality of terminals, Grouping query points into query clusters, executing a cluster search algorithm for batch processing on the query clusters including nearest neighbor (NN) queries and range (RN) queries, and the clusters and returning a query result calculated by a search algorithm to the plurality of terminals.

Description

동적 공간 네트워크에서의 공간 근접성 쿼리를 처리하는 방법{METHOD FOR PROCESSING SPATIAL PROXIMITY QUERIES IN DYNAMIC SPATIAL NETWORKS}METHOD FOR PROCESSING SPATIAL PROXIMITY QUERIES IN DYNAMIC SPATIAL NETWORKS}

본 발명은 위치 기반 서비스에 관한 것으로, 좀더 구체적으로는 동적 공간 네트워크에서의 공간 근접 쿼리를 고속으로 처리하는 방법에 관한 것이다.The present invention relates to a location-based service, and more particularly, to a method for processing a spatial proximity query in a dynamic spatial network at high speed.

이동 통신망, GPS 등과 같은 위치 탐색 및 서비스 기술이 발전함에 따라, 최근에는 이동 객체의 위치 기반 서비스를 지원하는 응용 분야에 대한 관심이 높아졌다. 특히, 차량 호출 회사나 주차장 안내 서비스와 같이 효율적으로 최근접 차량을 검색하거나 최인접 주차장에 대한 검색 서비스를 제공하는 다양한 서비스들이 등장하고 있다. 이 경우, 동적 공간 네트워크에서 공간 근접성(Spatila Proximity: 이하, SP) 쿼리를 처리해야 한다. 공간 근접성(SP) 쿼리는 공간 데이터베이스의 기본 쿼리 유형인 최근접 이웃(Nearest Neighbor: 이하, NN) 쿼리와 범위(Range Neighbor: 이하, RN) 쿼리의 집합을 의미한다. 최근접 이웃(NN) 쿼리는 쿼리 사용자에게 가장 가까운 택시 및 레스토랑과 같은 관심 지점(Points Of Interest: 이하, POI)을 검색 요청하고, 범위(RN) 쿼리는 쿼리 거리 내에서 관심 지점(POI)를 검색 요청한다. 일반적으로 택시 예약 및 승차 공유 서비스와 같은 위치 기반 서비스(Location-Based Services:이하, LBS)는 실시간 공간 데이터를 사용하여 쿼리 사용자와 가까운 관심 지점(POI)를 찾는다. As location search and service technologies, such as mobile communication networks and GPS, have developed, interest in applications supporting location-based services of moving objects has recently increased. In particular, various services that efficiently search for the nearest vehicle or provide a search service for the nearest parking lot, such as a car calling company or a parking guidance service, are appearing. In this case, a spatial proximity (SP) query must be processed in the dynamic spatial network. A Spatial Proximity (SP) query refers to a set of Nearest Neighbor (hereinafter referred to as NN) queries and Range Neighbor (hereinafter referred to as RN) queries, which are the basic query types of a spatial database. Nearest Neighbor (NN) queries ask the query user to search for the nearest Points Of Interest (POIs), such as taxis and restaurants, while Range (RN) queries retrieve POIs within query distance. request a search In general, Location-Based Services (LBS), such as taxi reservations and ridesharing services, use real-time spatial data to find points of interest (POIs) close to the querying user.

다수의 공간 근접성(SP) 쿼리가 피크 시간에 위치 기반 서비스(LBS) 서버에 동시에 도달하는 경우, 공간 근접성(SP) 쿼리를 순차적으로 처리하면 쿼리 사용자에게 신속한 응답을 제공하지 못할 수 있다. 이러한 어려움은 LBS 서버의 수를 늘리거나 공간 근접성(SP) 쿼리를 신속하게 처리하기 위해 "한 번에 하나의 쿼리 처리"를 기반으로 하는 최신 알고리즘을 개발함으로써 해결할 수 있다. 공간 근접성(SP) 쿼리는 차량 호출 및 주차 시설과 같은 동적 공간 네트워크에서 많은 잠재적 응용 프로그램이 있다. 예를 들어, 2020년에 우버(Uber)는 하루 평균 1,870만 회의 여행을 달성하여, 우버 택시를 승객과 신속하게 연결하기 위한 확장 가능하고 효율적인 솔루션의 중요성을 보여 주었다. 또 다른 예로는 운전자가 목적지와 가까운 주차 공간을 찾는 데 도움이 되는 실시간 주차 관리 애플리케이션이다. When multiple Spatial Proximity (SP) queries arrive at the Location Based Service (LBS) server at the same time during peak hours, processing the Spatial Proximity (SP) queries sequentially may not provide prompt responses to query users. These difficulties can be addressed by increasing the number of LBS servers or by developing modern algorithms based on "processing one query at a time" to expedite spatial proximity (SP) queries. Spatial proximity (SP) queries have many potential applications in dynamic spatial networks, such as ride-hailing and parking facilities. For example, in 2020, Uber achieved an average of 18.7 million trips per day, demonstrating the importance of a scalable and efficient solution to quickly connect Uber taxis with passengers. Another example is a real-time parking management application that helps drivers find parking spaces close to their destination.

이와 같은 최근접 이웃 쿼리와 영역 쿼리와 같이 상이한 종류의 쿼리들은 단순 솔루션에서는 데이터 포인트를 순차적으로 검색한다. 그러나 이 경우 불필요한 네트워크 순회를 포함하므로 피크 시간 동안 많은 공간 근접성(SP) 쿼리가 위치 기반 서비스(LBS) 서버에 도달할 때 엄청나게 높은 계산 비용을 초래할 수 있다. 따,라서, 동적 공간 네트워크에서 공간 근접성(SP) 쿼리를 효과적이고 효율적으로 처리할 수 있는 기술이 절실한 실정이다. Different types of queries, such as nearest-neighbor queries and range queries, in simple solutions retrieve data points sequentially. However, this involves unnecessary network traversal, which can lead to prohibitively high computational costs when many spatial proximity (SP) queries hit the location-based service (LBS) server during peak hours. Therefore, there is an urgent need for a technique capable of effectively and efficiently processing a spatial proximity (SP) query in a dynamic spatial network.

(1) 한국 공개특허공보 10-2014-0102373 (2014.08.22)(1) Korean Patent Publication No. 10-2014-0102373 (2014.08.22) (2) 한국 등록특허공보 10-1450525 (2014.10.07)(2) Korea Patent Registration No. 10-1450525 (2014.10.07)

본 발명은 상술한 기술적 과제를 해결하기 위한 것으로써, 본 발명의 목적은 동적 공간 네트워크에서 공간 근접성 쿼리를 효과적이고 효율적으로 처리할 수 있는 통합 배치 알고리즘(UBA)을 제공하는 데 있다. SUMMARY OF THE INVENTION The present invention is to solve the above technical problem, and an object of the present invention is to provide a unified placement algorithm (UBA) capable of effectively and efficiently processing a spatial proximity query in a dynamic spatial network.

본 발명의 실시 예에 따른 위치 기반 서비스 시스템의 동적 공간 네트워크에서의 공간 근접성 쿼리를 처리하는 방법은, 복수의 단말들로부터 공간 근접성(SP) 쿼리와 데이터 포인트를 수집하는 단계, 상기 공간 근접성 쿼리의 쿼리 포인트들을 쿼리 클러스터로 그룹화하는 단계, 최근접 이웃(NN) 쿼리와 범위(RN) 쿼리를 포함하는 상기 쿼리 클러스터에 대한 일괄 처리(Batch processing)를 위해 클러스터 검색 알고리즘을 실행하는 단계, 그리고 상기 클러스터 검색 알고리즘에 의해서 계산된 쿼리 결과를 상기 복수의 단말들로 반환하는 단계를 포함한다. A method for processing a spatial proximity query in a dynamic spatial network of a location-based service system according to an embodiment of the present invention includes collecting spatial proximity (SP) queries and data points from a plurality of terminals, Grouping query points into query clusters, executing a cluster search algorithm for batch processing on the query clusters including nearest neighbor (NN) queries and range (RN) queries, and the clusters and returning a query result calculated by a search algorithm to the plurality of terminals.

실시 예로서, 상기 클러스터 검색 알고리즘을 실행하는 단계는, 상기 쿼리 클러스터의 경계점에서의 클러스터 검색을 실행하여 후보 데이터 지점을 획득하는 단계, 그리고 상기 후보 데이터 지점에 대한 세그먼트 검색 알고리즘을 실행하는 단계를 포함한다.As an embodiment, the step of executing the cluster search algorithm includes acquiring candidate data points by performing a cluster search at boundary points of the query clusters, and executing a segment search algorithm for the candidate data points. do.

실시 예로서, 상기 경계점에서의 클러스터 검색은, 상기 쿼리 클러스터에 상기 최근접 이웃(NN) 쿼리만 포함되는 경우, 상기 범위(RN) 쿼리만을 포함하는 경우, 그리고 상기 최근접 이웃(NN) 쿼리와 상기 범위(RN) 쿼리를 모두 포함하는 경우에 따라 데이터 포인트의 검색 조건이 가변된다.As an embodiment, the cluster search at the boundary point is performed when the query cluster includes only the nearest neighbor (NN) query, when it includes only the range (RN) query, and when the query cluster includes only the nearest neighbor (NN) query. Data point search conditions vary depending on the case in which all of the range (RN) queries are included.

실시 예로서, 상기 세그먼트 검색 알고리즘은, 상기 후보 데이터 포인트가 쿼리 세그먼트 내부에 존재할 때와, 상기 후보 데이터 포인트가 쿼리 세그먼트의 외부에 존재할 때에 상이한 거리값을 갖는다.As an embodiment, the segment search algorithm has different distance values when the candidate data point exists inside the query segment and when the candidate data point exists outside the query segment.

본 발명의 실시 예에 따르면, 동적 공간 네트워크에서 공간 근접성 쿼리를 효과적이고 효율적으로 처리할 수 있는 통합 배치 알고리즘(UBA)이 구현될 수 있다. According to an embodiment of the present invention, a unified placement algorithm (UBA) capable of effectively and efficiently processing a spatial proximity query in a dynamic spatial network may be implemented.

도 1a 및 도 1b는 각각 동적 공간 네트워크에서 공간 근접성(SP) 쿼리의 두 스냅샷을 보여준다.
도 2는 본 발명의 실시 예에 따른 위치 기반 서비스 시스템을 예시적으로 보여주는 블록도이다.
도 3은 본 발명에서 사용되는 용어와 표기법을 보여주기 위한 도면이다.
도 4는 본 발명에서 사용되는 기호와 표기법을 요약하여 보여주는 테이블이다.
도 5는 공간 근접성(SP) 쿼리의 예를 보여주는 도면이다.
도 6a 및 도 6b는 도 5의 SP 쿼리들 중에서 가까운 쿼리 포인트를 쿼리 클러스터로 변환하는 절차를 보여주는 도면들이다.
도 7a 및 도 7b는 데이터 포인트(p)와 쿼리 세그먼트(/qiqj) 사이의 거리를 계산하는 방법을 보여주는 도면들이다.
도 8은 본 발명의 공간 근접성 쿼리에 대한 통합 배치 처리 방법을 간략히 보여주는 순서도이다.
도 9는 도 8의 순서도에 대응하는 제 1 알고리즘을 보여주는 도면이다.
도 10은 도 8의 S130 단계를 좀더 구체적으로 보여주는 순서도이다.
도 11은 도 10에서 수행되는 제 2 알고리즘(cluster_search)을 예시적으로 보여주는 도면이다.
도 12는 도 11에서 언급된 segment_search(제 3 알고리즘)를 구체적으로 보여주는 도면이다.
도 13은 동적 공간 네트워크에서의 통합 배치 알고리즘(UBA)과 INE 및 RNE와 같은 순차 알고리즘의 시간 복잡성을 비교한 테이블이다.
도 14는 경계점에서의 공간 근접성 쿼리의 계산을 보여주는 테이블이다.
도 15는 쿼리 포인트와 후보 데이터 포인트들 사이의 거리를 계산하는 방법을 보여주는 테이블이다.
도 16 및 도 17은 3개의 실제 공간 네트워크(Spatial Network)와 실험 매개변수를 보여준다.
도 18 내지 도 21은 본 발명의 효과를 설명하기 위한 실험 결과를 보여주는 그래프들이다.
Figures 1a and 1b respectively show two snapshots of spatial proximity (SP) queries in a dynamic spatial network.
2 is a block diagram showing a location-based service system according to an exemplary embodiment of the present invention.
3 is a diagram for showing terms and notations used in the present invention.
4 is a table summarizing symbols and notations used in the present invention.
5 is a diagram showing an example of a Spatial Proximity (SP) query.
6A and 6B are diagrams illustrating a procedure of converting a query point close to the SP queries of FIG. 5 into a query cluster.
7A and 7B are diagrams showing a method of calculating a distance between a data point (p) and a query segment (/qiqj).
8 is a flowchart briefly showing an integrated batch processing method for a spatial proximity query according to the present invention.
FIG. 9 is a diagram showing a first algorithm corresponding to the flowchart of FIG. 8 .
10 is a flowchart showing step S130 of FIG. 8 in more detail.
FIG. 11 is a diagram showing a second algorithm (cluster_search) performed in FIG. 10 as an example.
FIG. 12 is a diagram showing the segment_search (third algorithm) mentioned in FIG. 11 in detail.
13 is a table comparing the time complexity of the unified placement algorithm (UBA) and sequential algorithms such as INE and RNE in dynamic spatial networks.
14 is a table showing calculation of a spatial proximity query at a boundary point.
15 is a table showing how to calculate a distance between a query point and candidate data points.
16 and 17 show three real spatial networks and experimental parameters.
18 to 21 are graphs showing experimental results for explaining the effect of the present invention.

이하, 본 발명의 일부 실시 예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. In adding reference numerals to components of each drawing, the same components may have the same numerals as much as possible, even if they are displayed on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description may be omitted.

도 1a 및 도 1b는 각각 동적 공간 네트워크에서 공간 근접성(SP) 쿼리의 두 스냅샷을 보여준다. 도 1a는 타임스템프(ti)에서의 공간 근접성(SP) 쿼리들을 보여주고, 도 1b는 타임스템프(tj)에서의 공간 근접성(SP) 쿼리들을 보여준다. 여기서, 공간 근접성(SP) 쿼리 포인트 세트 Q와 데이터 포인트 세트 P는 각각 Q={q1 NN, q2 RN, q3 NN} 및 P={p1, p2, p3}로 표현된다. Figures 1a and 1b respectively show two snapshots of spatial proximity (SP) queries in a dynamic spatial network. 1A shows spatial proximity (SP) queries at timestamp t i , and FIG. 1B shows spatial proximity (SP) queries at timestamp t j . Here, the spatial proximity (SP) query point set Q and data point set P are expressed as Q={q 1 NN , q 2 RN , q 3 NN } and P={p 1 , p 2 , p 3 }, respectively.

본 발명에서, 쿼리 포인트와 데이터 포인트는 모두 공간 네트워크 내에서 자유롭게 실행되고 공간 세그먼트가 종종 가중치를 변경한다고 가정한다. 최근접 이웃 쿼리들(q1 NN, q3 NN)은 각각 포인트(q1 NN) 및 포인트(q3 NN)에 가장 가까운 데이터 포인트를 찾고, 영역 쿼리(q2 RN)는 포인트(q2 RN)에 대한 쿼리 거리(예: 4km) 내의 데이터 포인트를 찾는다. 도 1a에서 볼 수 있듯이 타임스탬프(ti)에서 데이터 포인트(p1)는 최근접 이웃 쿼리들(q1 NN, q3 NN) 모두에 가장 가깝고, 데이터 포인트(p2)는 영역 쿼리(q2 RN)에서 4km 이내에 있다. 반면, 도 1b의 타임스탬프(tj)에서 데이터 포인트(p3)는 최근접 이웃 쿼리들(q1 NN)에 가장 가깝고, 데이터 포인트(p1)는 최근접 이웃 쿼리들(q3 NN)에 가장 가까우며, 영역 쿼리(q2 RN)에서 4km 이내에 위치하는 데이터 포인트는 존재하지 않는다. 단순한 솔루션을 적용하는 경우, 쿼리들 Q={q1 NN, q2 RN, q3 NN}에서 각 공간 근접성(SP) 쿼리의 조건을 만족하는 데이터 포인트가 순차적으로 검색된다. 그러나 이러한 단순 솔루션은 불필요한 네트워크 순회를 포함하므로, 네트워크의 피크 시간 동안 많은 공간 근접성(SP) 쿼리가 LBS 서버에 도달할 때, 과도하게 높은 계산 비용을 초래할 수 있다. In the present invention, it is assumed that both query points and data points run freely within the spatial network and that spatial segments often change weights. Nearest neighbor queries (q 1 NN , q 3 NN ) find the closest data point to point (q 1 NN ) and point (q 3 NN ), respectively, and area query (q 2 RN ) finds the point (q 2 RN ) to find data points within a query distance (e.g. 4 km). As can be seen in FIG. 1A , at timestamp t i , data point p 1 is closest to all nearest neighbor queries q 1 NN , q 3 NN , and data point p 2 is closest to area query (q NN ). 2 RN ) within 4 km. On the other hand, at the timestamp (t j ) in FIG. 1B , the data point (p 3 ) is closest to the nearest neighbor queries (q 1 NN ), and the data point (p 1 ) is closest to the nearest neighbor queries (q 3 NN ). , and there is no data point located within 4 km of the area query (q 2 RN ). In the case of applying the simple solution, data points satisfying the condition of each spatial proximity (SP) query are sequentially retrieved from the queries Q={q 1 NN , q 2 RN , q 3 NN }. However, this simple solution involves unnecessary network traversal, which can result in excessively high computational cost when many spatial proximity (SP) queries hit the LBS server during peak hours in the network.

도 2는 본 발명의 실시 예에 따른 위치 기반 서비스 시스템을 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 위치 기반 서비스 시스템(100)은 다양한 단말들로부터 전송되는 쿼리들을 수집하는 위치 기반 서비스(이하, LBS) 서버(130)와 최근접 이웃 쿼리와 영역 쿼리를 구분하지 않고 통합하여 쿼리 요청을 계산하는 통합 배치 알고리즘(150, UBA)을 포함한다.2 is a block diagram showing a location-based service system according to an exemplary embodiment of the present invention. Referring to FIG. 2, the location-based service system 100 integrates a location-based service (hereinafter referred to as LBS) server 130 that collects queries transmitted from various terminals without distinguishing between a nearest neighbor query and an area query. It includes a unified placement algorithm (150, UBA) that computes query requests.

쿼리를 요청하는 단말들에 대응하는 쿼리 포인트들(110)은 현재의 위치와 쿼리 요청을 LBS 서버로 전송한다. 쿼리 포인트들(110)은 본 발명의 통합 배치 알고리즘(150)에 의해서 처리된 쿼리 응답을 수신하고, 쿼리 응답에 따라 추가 서비스를 진행할 것이다. The query points 110 corresponding to the terminals requesting the query transmit the current location and query request to the LBS server. The query points 110 receive query responses processed by the integrated placement algorithm 150 of the present invention, and proceed with additional services according to the query responses.

LBS 서버(130)는 쿼리 포인트들(110) 각각이 제공하는 위치 정보와 쿼리 요청을 수집하여 통합 배치 알고리즘(150)에 전달한다. 그리고 LBS 서버(130)는 통합 배치 알고리즘(150)에 의해서 처리된 쿼리 응답을 수신하여 서비스를 요청한 쿼리 포인트들(110)에 반환한다.The LBS server 130 collects location information and query requests provided by each of the query points 110 and transmits them to the integrated placement algorithm 150 . And the LBS server 130 receives the query response processed by the integrated placement algorithm 150 and returns it to the query points 110 that requested the service.

통합 배치 알고리즘(150)은 먼저 쿼리 포인트들에 대한 공유 계산을 위해, 인접한 쿼리들을 그룹화하여 쿼리 클러스터로 구성한다(3 단계). 통합 배치 알고리즘(150)은 이후에 불필요한 네트워크 순회를 피하기 위해 각 쿼리 클러스터에 대한 후보 데이터 포인트를 검색한다(4 단계). 그리고 통합 배치 알고리즘(150)은 쿼리 클러스터에 대한 후보 데이터 포인트를 사용하여 각 쿼리를 계산한다(5 단계). 그리고 통합 배치 알고리즘(150)은 쿼리 결과를 LBS 서버(130)에 반환한다(6단계). 그러면, LBS 서버(130)는 쿼리 결과를 각각의 쿼리 포인트들에 전송한다(7 단계).The integrated placement algorithm 150 first forms a query cluster by grouping adjacent queries for shared calculation of query points (Step 3). The coalescing placement algorithm 150 then searches candidate data points for each query cluster to avoid unnecessary network traversal (step 4). The coalescing placement algorithm 150 then computes each query using the candidate data points for the query cluster (step 5). And the integrated placement algorithm 150 returns the query result to the LBS server 130 (step 6). Then, the LBS server 130 transmits the query result to each query point (step 7).

모든 최근접 이웃 쿼리들(q1 NN, q3 NN)은 공간 근접성(SP) 쿼리와 유사하다. 그러나 모든 최근접 이웃 쿼리들(q1 NN, q3 NN)은 쿼리 포인트 셋(Q)의 각 쿼리 포인트(q)가 가장 가까운 단일 데이터 포인트만 찾는다고 가정하므로 영역(RN) 쿼리는 고려하지 않는다. 본 발명에서는 쿼리 포인트와 데이터 포인트가 동적 공간 네트워크 내에서 자유롭게 실행되는 매우 동적 상황을 전제로 한다. 본 발명의 통합 배치 알고리즘(150)은 동적 공간 네트워크에서 공간 근접성(SP) 쿼리를 효과적으로 처리할 수 있다. 단순성을 위해 본 발명은 양의 정수 k에 대해 쿼리 사용자에게 가장 가까운 k 데이터 포인트를 검색하는 k-NN 쿼리가 아닌 NN 쿼리를 고려하기로 한다. 그러나 통합 배치 알고리즘(150)은 k-NN 쿼리를 처리하도록 쉽게 확장될 수 있음은 잘 이해될 것이다.All nearest neighbor queries (q 1 NN , q 3 NN ) are similar to spatial proximity (SP) queries. However, since all nearest neighbor queries (q 1 NN , q 3 NN ) assume that each query point (q) in a set of query points (Q) finds only the single closest data point, we do not consider area (RN) queries. . The present invention assumes a highly dynamic situation in which query points and data points are freely executed within a dynamic spatial network. The unified placement algorithm 150 of the present invention can effectively process spatial proximity (SP) queries in a dynamic spatial network. For simplicity, the present invention considers NN queries rather than k-NN queries that, for a positive integer k, retrieve the k data points closest to the querying user. However, it will be appreciated that the union placement algorithm 150 can be easily extended to handle k-NN queries.

본 발명의 통합 배치 알고리즘(150)의 성능은 쿼리 포인트의 분포에 크게 의존한다. 따라서, 통합 배치 알고리즘(150)은 쿼리 포인트가 왜곡된 분포를 표시할 때 순차 알고리즘보다 뛰어난 성능을 제공할 수 있다. 반대로, 통합 배치 알고리즘(150)은 쿼리 포인트가 균일한 분포를 표시할 때 순차 알고리즘과 유사한 성능을 보일 수 있다. 본 발명에서는 불필요한 거리 계산을 피하기 위해 공간 근접성(SP) 쿼리의 클러스터링 및 공유 계산이 제공된다. 통합 배치 알고리즘(150)의 정확성은 보조 정리를 사용하여 증명될 수 있다. 또한, 쿼리 포인트가 편향된 분포를 표시할 때 순차적 알고리즘에 비해 통합 배치 알고리즘(150)의 이점을 확립하기 위한 이론적 분석이 제공될 것이다. 순차 알고리즘에 비해 통합 배치 알고리즘(150)의 우수성과 확장성을 입증하기 위해 다양한 조건에서 실증적 연구를 수행하였다.The performance of the integrated placement algorithm 150 of the present invention is highly dependent on the distribution of query points. Thus, the unified placement algorithm 150 can provide better performance than sequential algorithms when the query points represent a skewed distribution. Conversely, the coalesced placement algorithm 150 may exhibit similar performance to the sequential algorithm when the query points exhibit a uniform distribution. Clustering and sharing computation of spatial proximity (SP) queries is provided in the present invention to avoid unnecessary distance computation. The correctness of the unified placement algorithm 150 can be proven using a lemma. In addition, a theoretical analysis will be provided to establish the advantages of the unified placement algorithm 150 over sequential algorithms when query points exhibit a skewed distribution. Empirical studies were conducted under various conditions to prove the superiority and scalability of the unified batch algorithm 150 compared to the sequential algorithm.

도 3은 본 발명에서 사용되는 용어와 표기법을 보여주기 위한 도면이다. 도 3을 참조하면, 각 정점들은 교차 정점(Intersection vertex), 중간 정점(Intermediate vertex), 그리고 터미널 정점(Terminal vertex)으로 표기될 수 있다. 먼저, 정점의 차수(Degree)가 3보다 크거나 같으면, 해당 정점은 교차 정점(Intersection vertex)이다. 그리고 정점의 차수(Degree)가 2인 경우 정점은 중간 정점(Intermediate vertex)이다. 그리고 차수(Degree)가 1인 정점의 경우, 터미널 정점(Terminal vertex)이다. 예를 들어, 정점들(v2, v3)은 교차 정점(Intersection vertex), 정점들(v5, v6)은 중간 정점(Intermediate vertex), 정점들(v1, v4)는 터미널 정점(Terminal vertex)이다.3 is a diagram for showing terms and notations used in the present invention. Referring to FIG. 3 , each vertex may be marked as an intersection vertex, an intermediate vertex, and a terminal vertex. First, if the degree of a vertex is greater than or equal to 3, the vertex is an intersection vertex. And if the degree of the vertex is 2, the vertex is an intermediate vertex. And in the case of a vertex whose degree is 1, it is a terminal vertex. For example, vertices v 2 and v 3 are intersection vertex, vertices v 5 and v 6 are intermediate vertex, and vertices v 1 and v 4 are terminal vertex. (terminal vertex).

더불어, 본 발명에서 사용되는 NN 쿼리(NN query)는 쿼리 포인트(qNN)와 데이터 포인트 세트 P가 주어지면, NN 쿼리는 쿼리 포인트(qNN)에 가장 가까운 데이터 포인트(pNN)를 검색하여 'dist(qNN, pNN)≤dist(qNN, p)'가 ∀pNN∈Π(qNN) 및 ∀p∈P-Π(qNN)에 대해 유지되도록 한다. RN 쿼리(RN query)는, 양의 정수 r, 쿼리 포인트(qRN) 및 데이터 포인트 세트(P)가 주어지면, RN 쿼리는 'dist(qRN, pRN)≤r'이 ∀pRN∈Π(qRN)에 대해 유지되도록 쿼리 거리 r에서 qRN 내의 데이터 포인트를 검색한다. 동적 공간 네트워크(Dynamic spatial network)는 동적 가중치 그래프 G=<V, E, W>로 설명할 수 있다. 여기서, V, E, 및 W는 각각 정점 세트(Vertex set), 에지 세트(Edge set), 에지 거리 행렬(Edge distance matrix)을 나타낸다. 에지(Edge)는 음이 아니며 빈번하게 변화하는 가중치(예를 들면, 이동 시간)를 가진다.In addition, the NN query used in the present invention is given a query point (q NN ) and a data point set P, the NN query searches for a data point (p NN ) closest to the query point (q NN ), Let 'dist(q NN , p NN )≤dist(q NN , p)' hold for ∀p NN ∈Π(q NN ) and ∀p∈P−Π(q NN ). RN query, given a positive integer r, a query point (q RN ), and a set of data points (P), the RN query is such that 'dist(q RN, pRN )≤r' is ∀p RN ∈Π Retrieve a data point within q RN at a query distance r such that it holds for (q RN ). A dynamic spatial network can be described as a dynamic weight graph G=<V, E, W>. Here, V, E, and W denote a vertex set, an edge set, and an edge distance matrix, respectively. An edge is non-negative and has a frequently changing weight (e.g., travel time).

그리고 정점 시퀀스(/vlvl+1…vm)는 두 정점 vl과 vm을 연결하여 vl과 vm이 교차 정점 또는 터미널 정점이 되도록 하는 세그먼트를 나타내며, 세그먼트의 다른 정점, 즉 vl+1,…,vm-1은 중간 정점이다. 정점 시퀀스의 길이는 정점 시퀀스에 있는 에지의 총 가중치이다. 정점 시퀀스의 일부를 세그먼트라 칭한다. 정의에 따라 정점 시퀀스도 세그먼트이다. 예를 들어, 도 3은 4개의 정점 시퀀스 /v1v2, /v2v3, /v3v4, /v2v5v6v3를 가지고 있다. 도 3의 쿼리 세그먼트는 /v2v5v6, /v5v6 및 /v3v6v5가 있다. And the vertex sequence (/v l v l+1 …v m ) represents a segment connecting two vertices v l and v m such that v l and v m are intersecting vertices or terminal vertices, and the other vertices of the segment, i.e. v l+1 ,... ,v m-1 is the middle vertex. The length of a vertex sequence is the total weight of the edges in the vertex sequence. A portion of a vertex sequence is called a segment. By definition, vertex sequences are also segments. For example, FIG. 3 has four vertex sequences /v 1 v 2 , /v 2 v 3 , /v 3 v 4 , /v 2 v 5 v 6 v 3 . The query segments of FIG. 3 include /v 2 v 5 v 6 , /v 5 v 6 and /v 3 v 6 v 5 .

도 4는 본 발명에서 사용되는 기호와 표기법을 요약하여 보여주는 테이블이다. 도 4를 참조하면, 쿼리 포인트는 종종 SP 쿼리를 참조하기 위해 같은 의미로 사용될 수 있다. 다시 도 3에 따르면, 공간 네트워크에서 쿼리 포인트(q1)과 쿼리 포인트(q2) 사이의 거리와 세그먼트 길이의 차이를 보여준다. 여기서, 쿼리 포인트(q1)과 쿼리 포인트(q2)까지의 최단 경로는 q1→v2→v3→q2이며, 거리 dist(q1, q2)는 8이다. 쿼리 포인트(q1)과 쿼리 포인트(q2)를 연결하는 세그먼트(굵은 선으로 표시)는 /q1v5v6q2이며, 길이 len(/q1v5v6q2)는 10이다. 4 is a table summarizing symbols and notations used in the present invention. Referring to Figure 4, query point can sometimes be used interchangeably to refer to an SP query. Referring to FIG. 3 again, a difference between a distance and a segment length between a query point q 1 and a query point q 2 in a spatial network is shown. Here, the shortest path between the query point (q 1 ) and the query point (q 2 ) is q 1 →v 2 →v 3 →q 2 , and the distance dist(q 1 , q 2 ) is 8. The segment (shown as a thick line) connecting query points (q 1 ) and query points (q 2 ) is /q 1 v 5 v 6 q 2 , with length len (/q 1 v 5 v 6 q 2 ) equal to 10 am.

도 5는 공간 근접성(SP) 쿼리의 예를 보여주는 도면이다. 도 5를 참조하면, 5개의 SP 쿼리들(q1 NN, q2 RN, q3 NN, q4 RN, q5 NN)이 도시되어 있다. 여기서, NN 쿼리(q1 NN, q3 NN, q5 NN)는 자신과 가장 가까운 데이터 포인트를 찾고, RN 쿼리(q2 RN, q4 RN ) 쿼리 거리 r(=4) 내에서 데이터 포인트를 찾는다. 5 is a diagram showing an example of a Spatial Proximity (SP) query. Referring to FIG. 5 , five SP queries (q 1 NN , q 2 RN , q 3 NN , q 4 RN , q 5 NN ) are illustrated. Here, the NN query (q 1 NN , q 3 NN , q 5 NN ) finds the closest data point to itself, and the RN query (q 2 RN , q 4 RN ) finds the data point within the query distance r (=4). find

도 6a 및 도 6b는 도 5의 SP 쿼리들 중에서 가까운 쿼리 포인트를 쿼리 클러스터로 변환하는 절차를 보여주는 도면들이다. 6A and 6B are diagrams illustrating a procedure of converting a query point close to the SP queries of FIG. 5 into a query cluster.

도 6a를 참조하면, 첫 번째 단계에서 정점 시퀀스의 쿼리 포인트는 쿼리 세그먼트에 연결된다. 결과적으로 3개의 쿼리 세그먼트 /q1 NNq2 RN, q3 NN, /q4 RNq5 NN가 생성된다. 여기서, /q1 NNq2 RN 및 /q4 RNq5 NN는 각각 두 개의 개별 쿼리 포인트 세트, 즉 q1 NN 및 q2 RN, q4 RN 및 q5 NN을 각각 정점 시퀀스 /v1v2 및 /v1v5로 연결한다. Referring to FIG. 6A , in a first step, query points of a vertex sequence are connected to query segments. As a result, three query segments /q 1 NN q 2 RN , q 3 NN , and /q 4 RN q 5 NN are generated. where /q 1 NN q 2 RN and /q 4 RN q 5 NN are respectively two separate sets of query points, i.e. q 1 NN and q 2 RN , q 4 RN and q 5 NN respectively the vertex sequence /v 1 v 2 and /v 1 v 5 to connect.

도 6b를 참조하면, 두 번째 단계에서 인접한 쿼리 세그먼트는 조인트 정점을 사용하여 쿼리 클러스터로 그룹화된다. 교차 정점은 두 개 이상의 쿼리 세그먼트에 인접할 때 조인트 정점(Joint vertex)이라 칭하기로 한다. 도시된 바와 같이 쿼리 세그먼트 /q1 NNq2 RN와 /q4 RNq5 NN는 교차 정점(v1)에서 인접하고, 교차 정점(v1)은 쿼리 세그먼트 /q1 NNq2 RN와 /q4 RNq5 NN의 조인트 정점이 된다. 유사하게, 쿼리 세그먼트 /q1 NNq2 RN와 q3 NN은 교차 정점(v2)에 인접하며, 정점(v2)은 쿼리 세그먼트 /q1 NNq2 RN와 q3 NN의 조인트 정점이 된다. 마지막으로, 쿼리 세그먼트 q3 NN와 /q4 RNq5 NN은 교차 정점(v5)에 인접하며, 정점(v5)은 쿼리 세그먼트 q3 NN와 /q4 RNq5 NN의 조인트 정점이 된다.Referring to Figure 6b, in the second step, adjacent query segments are grouped into query clusters using joint vertices. An intersection vertex is referred to as a joint vertex when it is adjacent to two or more query segments. As shown, the query segments /q 1 NN q 2 RN and /q 4 RN q 5 NN are adjacent at the intersection vertex (v 1 ), and the intersection vertex (v 1 ) is adjacent to the query segment /q 1 NN q 2 RN and / It is the joint vertex of q 4 RN q 5 NN . Similarly, the query segments /q 1 NN q 2 RN and q 3 NN are adjacent to the intersection vertex (v 2 ), and the vertex (v 2 ) is the joint vertex of the query segments /q 1 NN q 2 RN and q 3 NN . do. Finally, the query segments q 3 NN and /q 4 RN q 5 NN are adjacent to the intersection vertex (v 5 ), and the vertex (v 5 ) is the joint vertex of query segments q 3 NN and /q 4 RN q 5 NN . do.

따라서, 3개의 쿼리 세그먼트들(/q1 NNq2 RN, q3 NN, /q4 RNq5 NN)이 쿼리 클러스터 /QC={/q1 NNq2 RN, q3 NN, /q4 RNq5 NN}에 연결된다. 즉, 5개의 쿼리 포인트들 q1 NN, q2 RN, q3 NN, q4 RN, q5 NN가 쿼리 클러스터 '/QC'로 클러스터링된다. /QC는 쿼리 세그먼트 세트로 표시된다. 결과적으로 쿼리 포인트 세트 Q={q1 NN, q2 RN, q3 NN, q4 RN, q5 NN}는 쿼리 클러스터 세트 /Q={/q1 NNq2 RN, q3 NN, /q4 RNq5 NN}으로 변환된다.Thus, three query segments (/q 1 NN q 2 RN , q 3 NN , /q 4 RN q 5 NN ) form the query cluster /Q C ={/q 1 NN q 2 RN , q 3 NN , /q 4 RN q 5 NN }. That is, five query points q 1 NN , q 2 RN , q 3 NN , q 4 RN , and q 5 NN are clustered into a query cluster '/Q C '. /Q C denotes a set of query segments. Consequently, the set of query points Q={q 1 NN , q 2 RN , q 3 NN , q 4 RN , q 5 NN } is the set of query clusters /Q={/q 1 NN q 2 RN , q 3 NN , /q 4 RN q 5 NN }.

다음으로 쿼리 클러스터(/QC)의 경계점(Border point)을 정의한다. 쿼리 클러스터(/QC)와 비쿼리 클러스터(G-/QC)가 만나는 모든 지점을 쿼리 클러스터 /QC의 경계점(Border point)이라고 칭하기로 한다. 이 실시 예에서 쿼리 클러스터(/QC)는 세 개의 경계점, 즉 v1, v2, 그리고 v5를 가지며, 여기서 쿼리 클러스터(/QC)와 비쿼리 클러스터(G-/QC)가 만난다. 순차 솔루션은 도 5에 표시된 5개의 SP 쿼리들(q1 NN, q2 RN, q3 NN, q4 RN, q5 NN)을 평가해야 한다. 2 단계 클러스터링 방법을 사용하면, 통합 배치 알고리즘(150, UBA)이 쿼리 포인트들(q1 NN, q2 RN, q3 NN, q4 RN, q5 NN)이 아닌 경계점들(v1, v2, 그리고 v5)에서 3개의 SP 쿼리를 평가할 수 있다.Next, define the border point of the query cluster (/Q C ). All points where the query cluster (/Q C ) and the non-query cluster (G-/Q C ) meet are referred to as border points of the query cluster /Q C . In this embodiment, the query cluster (/Q C ) has three boundary points, v 1 , v 2 , and v 5 , where the query cluster (/Q C ) and the non-query cluster (G-/Q C ) meet. . The sequential solution has to evaluate the five SP queries (q 1 NN , q 2 RN , q 3 NN , q 4 RN , q 5 NN ) shown in FIG. 5 . If the two-step clustering method is used, the unified placement algorithm ( 150 , UBA ) uses boundary points ( v 1 , v 2 , and v 5 ) can evaluate three SP queries.

도 7a 및 도 7b는 데이터 포인트(p)와 쿼리 세그먼트(/qiqj) 사이의 거리를 계산하는 방법을 보여주는 도면들이다. 도 7a는 데이터 포인트(p)가 쿼리 세그먼트(/qiqj)에 포함되지 않는 경우의 거리 계산이고, 도 7b는 데이터 포인트(p)가 쿼리 세그먼트(/qiqj)에 포함되는 경우(p∈/qiqj)의 거리 계산을 보여준다.7A and 7B are diagrams illustrating a method of calculating a distance between a data point (p) and a query segment (/q i q j ). 7a is a distance calculation when the data point (p) is not included in the query segment (/q i q j ), and FIG. 7b is a case where the data point (p) is included in the query segment (/q i q j ). It shows the distance calculation of (p∈/q i q j ).

도 7a를 참조하면, 데이터 포인트(p)가 쿼리 세그먼트(/qiqj)의 외부에 있을 때, 쿼리 포인트(q)에서 데이터 포인트(p)까지의 거리는, q와 p 사이의 최단 경로가 'q→qi→p' 또는 'q→ qj→p'이기 때문에, dist(q, p) = min{len(/qqi) + dist(qi, p), len(qqj) + dist(qj, p)}로 주어질 수 있다. Referring to Figure 7a, when the data point p is outside the query segment (/q i q j ), the distance from the query point q to the data point p is the shortest path between q and p Since 'q→q i → p' or 'q→ q j → p', dist(q, p) = min{len(/qq i ) + dist(q i, p ), len(qq j ) + dist(q j , p)}.

도 7b를 참조하면, 데이터 포인트(p)가 쿼리 세그먼트(/qiqj)의 내부에 있을 때, 쿼리 포인트(q)에서 데이터 포인트(p)까지의 거리는, q와 p 사이의 최단 경로가 'q→p', 'q→ qj→p' 또는 'q→ qj→p'의 3가지 케이스 중 하나이기 때문에, dist(q, p) = min{len(/qp), len(/qqi)+ dist(/qi, p), len(qqj) + dist(qj, p)}로 주어질 수 있다. Referring to Figure 7b, when the data point (p) is inside the query segment (/q i q j ), the distance from the query point (q) to the data point (p), the shortest path between q and p Since it is one of the three cases 'q→p', 'q→ q j →p' or 'q→ q j →p', dist(q, p) = min{len(/qp), len(/ qq i )+ dist(/q i , p), len(qq j ) + dist(q j , p)}.

도 8은 본 발명의 공간 근접성 쿼리에 대한 통합 배치 처리 방법을 간략히 보여주는 순서도이다. 도 8을 참조하면, 동합 배치 알고리즘은, 최근접 이웃(NN) 쿼리와 영역(RN) 쿼리를 개별적이 아닌 클러스터로 그룹화하여 일괄 처리를 수행할 수 있다.8 is a flowchart briefly showing an integrated batch processing method for a spatial proximity query according to the present invention. Referring to FIG. 8 , the coherent placement algorithm may perform batch processing by grouping nearest neighbor (NN) queries and area (RN) queries into individual clusters.

S110 단계에서, LBS 서버(130)가 쿼리를 요청하는 쿼리 포인트들(110, 도 2 참조)로부터 위치와 쿼리 요청을 수신한다. 즉, LBS 서버(130)는 공간 근접성(SP) 쿼리와 데이터 포인트를 수집한다. 그리고 LBS 서버(130)에 의해서 수집된 공간 근접성(SP) 쿼리와 데이터 포인트는 본 발명의 통합 배치 알고리즘(150)에 쿼리 요청 정보로 전달된다.In step S110, the LBS server 130 receives a location and a query request from query points (110, see FIG. 2) requesting a query. That is, the LBS server 130 collects spatial proximity (SP) queries and data points. Spatial proximity (SP) queries and data points collected by the LBS server 130 are transmitted as query request information to the integrated placement algorithm 150 of the present invention.

S120 단계에서, 통합 배치 알고리즘(150)은 가까운 쿼리 포인트들을 쿼리 클러스터들로 그룹화한다. 예를 들면, 도 6a 및 도 6b의 설명에서와 같이 3개의 쿼리 세그먼트들(/q1 NNq2 RN, q3 NN, /q4 RNq5 NN)이 각각 그룹화되고, 이후에 쿼리 클러스터 /QC={/q1 NNq2 RN, q3 NN, /q4 RNq5 NN}로 처리될 수 있다.In step S120, the integrated placement algorithm 150 groups nearby query points into query clusters. For example, as in the description of FIGS. 6A and 6B , three query segments (/q 1 NN q 2 RN , q 3 NN , /q 4 RN q 5 NN ) are each grouped, and then a query cluster / Q C = {/q 1 NN q 2 RN , q 3 NN , /q 4 RN q 5 NN }.

S130 단계에서, 통합 배치 알고리즘(150)은 클러스터 서치 기능을 실행한다. 예를 들면, 통합 배치 알고리즘(150)은 쿼리 클러스터에 대한 클러스터 서치 알고리즘을 실행할 수 있다. 즉, 통합 배치 알고리즘(150)은 이후에 불필요한 네트워크 순회를 피하기 위해 각 쿼리 클러스터에 대한 후보 데이터 포인트를 검색한다. 그리고 통합 배치 알고리즘(150)은 쿼리 클러스터에 대한 후보 데이터 포인트를 사용하여 각 쿼리를 계산할 수 있다. In step S130, the integrated placement algorithm 150 executes a cluster search function. For example, coalescing placement algorithm 150 may execute a cluster search algorithm for query clusters. That is, the coalesced placement algorithm 150 then searches for candidate data points for each query cluster to avoid unnecessary network traversal. And the coalescing placement algorithm 150 can compute each query using the candidate data points for the query cluster.

S140 단계에서, 통합 배치 알고리즘(150)은 쿼리 계산 결과를 LBS 서버(130)에 반환한다. In step S140, the integrated placement algorithm 150 returns the query calculation result to the LBS server 130.

도 9는 도 8의 순서도에 대응하는 제 1 알고리즘을 보여주는 도면이다. 도 9를 참조하면, 제 1 알고리즘(Algorithm 1)은 통합 배치 알고리즘(UBA)으로 표현될 수 있다.FIG. 9 is a diagram showing a first algorithm corresponding to the flowchart of FIG. 8 . Referring to FIG. 9 , the first algorithm (Algorithm 1) may be expressed as a unified placement algorithm (UBA).

통합 배치 알고리즘(UBA)에 따르면, 공간 네트워크에서 SP 쿼리의 통합 일괄 처리를 수행할 수 있다. 여기서, 결과 집합 Π(Q)는 초기에 공집합(라인 1)으로 설정된다. 그런 다음, 도 6a 및 도 6b에서 설명한 바와 같이 가까운 쿼리 포인트가 먼저 쿼리 클러스터(라인 2 및 3)로 그룹화된다. 이후, 각 쿼리 클러스터 /QC에 대해 클러스터 검색(cluster_search)을 수행하여 SP 쿼리의 일괄 처리를 수행하고, 쿼리 결과는 Π(/QC)에 저장한다(라인 6). 그런 다음 쿼리 클러스터 결과 Π(/QC)가 Π(Q)에 추가된다. 여기서, Π(/QC)={<q,Π(q)>|q∈/QC} 및 Π(Q)={<q,Π(q)>|q∈Q}로 표현할 수 있다(라인 7). 각 쿼리 클러스터에 대해 'cluster_search(제 2 알고리즘)를 수행하면 쿼리 결과 Π(Q)가 반환되고, 통합 배치 알고리즘이 종료된다(라인 8).According to the Unified Batch Algorithm (UBA), it is possible to perform unified batch processing of SP queries in spatial networks. Here, the result set Π(Q) is initially set to the empty set (line 1). Then, as described in Figures 6A and 6B, nearby query points are first grouped into query clusters (lines 2 and 3). Subsequently, a cluster search (cluster_search) is performed for each query cluster /Q C to perform batch processing of SP queries, and the query result is stored in Π(/Q C ) (line 6). Then, the query cluster result Π(/Q C ) is added to Π(Q). Here, Π(/Q C )={<q,Π(q)>|q∈/Q C } and Π(Q)={<q,Π(q)>|q∈Q} line 7). When 'cluster_search (second algorithm) is performed on each query cluster, the query result Π(Q) is returned, and the integrated placement algorithm is terminated (line 8).

도 10은 도 8의 S130 단계를 좀더 구체적으로 보여주는 순서도이다. 도 10을 참조하면, 쿼리 클러스터에 대한 클러스터 검색 알고리즘을 실행한다. 통합 배치 알고리즘(150)은 쿼리 클러스터에 대해 이후에 불필요한 네트워크 순회를 피하기 위해 각 쿼리 클러스터에 대한 일괄 실행을 수행한다.10 is a flowchart showing step S130 of FIG. 8 in more detail. Referring to FIG. 10 , a cluster search algorithm for a query cluster is executed. The unified batch algorithm 150 performs batch execution for each query cluster to avoid unnecessary network traversal of the query cluster later.

S131 단계에서, 통합 배치 알고리즘(150)은 쿼리 클러스터의 경계 지점(b)에서의 클러스터 검색 알고리즘을 실행한다.In step S131, the integrated placement algorithm 150 executes the cluster search algorithm at the boundary point (b) of the query cluster.

S133 단계에서, 통합 배치 알고리즘(150)은 경계 지점(b)에서 클러스터 검색 결과로부터 획득된 후보 데이터 지점을 사용하여 세그먼트 검색(Segment_search) 알고리즘 실행한다. In step S133, the integrated location algorithm 150 executes a segment search (Segment_search) algorithm using the candidate data point obtained from the cluster search result at the boundary point (b).

도 11은 도 10에서 수행되는 제 2 알고리즘(cluster_search)을 예시적으로 보여주는 도면이다. 도 11을 참조하면, 제 2 알고리즘(cluster_search)은 쿼리 클러스터(/QC)에서 SP 쿼리에 응답하는 데 사용되는 클러스터 검색 알고리즘을 설명한다. FIG. 11 is a diagram showing a second algorithm (cluster_search) performed in FIG. 10 as an example. Referring to FIG. 11 , a second algorithm (cluster_search) describes a cluster search algorithm used to respond to an SP query in a query cluster (/Q C ).

제 2 알고리즘(cluster_search)은 두 단계로 실행된다. 첫 번째 단계에서 SP 쿼리는 쿼리 클러스터(/QC)의 쿼리 지점이 아니라 쿼리 클러스터(/QC)의 경계 지점에서 계산된다(라인 3~6). SP 쿼리는 NN 쿼리 또는 RN 쿼리이다. 따라서, 경계점(b)에서 계산되는 공간 근접성(SP) 쿼리의 유형을 결정해야 한다. 쿼리 클러스터(/QC)가 NN 쿼리만 포함하는 경우, NN 쿼리는 경계 지점(b)에서 계산된다. 즉, SPQ(b, /QC)=Π(bNN)이다. 마찬가지로 쿼리 클러스터(/QC)가 RN 쿼리만 포함하는 경우, SPQ(b, /QC) 함수는 경계 지점(b)에서 RN 쿼리를 계산한다. 즉, SPQ(b, /QC)=Π(bRN). 마지막으로 쿼리 클러스터(/QC)가 NN 쿼리와 RN 쿼리를 모두 포함하는 경우, SPQ(b, /QC) 함수는 경계 지점(b)에서 NN 또는 RN 조건을 만족하는 모든 데이터 포인트를 찾는 SP 쿼리를 계산한다. 즉, SPQ(b, /QC)=Π(bNN)∪Π(bRN)이 된다. The second algorithm (cluster_search) is executed in two steps. In the first step, the SP query is computed at the boundary points of the query cluster (/Q C ) rather than at the query points of the query cluster (/Q C ) (lines 3-6). SP queries are either NN queries or RN queries. Therefore, it is necessary to determine the type of spatial proximity (SP) query computed at boundary point (b). If the query cluster (/Q C ) contains only NN queries, the NN queries are computed at the boundary point (b). That is, SPQ(b, /Q C )=Π(b NN ). Similarly, if the query cluster (/Q C ) contains only RN queries, the SPQ(b, /Q C ) function computes the RN queries at the boundary point (b). That is, SPQ(b, /Q C )=Π(b RN ). Finally, if the query cluster (/Q C ) contains both NN and RN queries, the SPQ(b, /Q C ) function is an SP that finds all data points that satisfy the NN or RN condition at the boundary point (b). Calculate the query. That is, SPQ(b, /Q C )=Π(b NN )∪Π(b RN ).

제 2 알고리즘(cluster_search)에서 수행되는 두 번째 단계에서는, 쿼리 클러스터(/QC)의 경계 지점에서 얻은 후보 데이터 포인트를 사용하여 쿼리 클러스터(/QC)의 각 쿼리 세그먼트(/qiqj)에 대해 공유 계산이 수행된다(라인 7~10). 여기에서, 쿼리 세그먼트(/qiqj)의 각 SP 쿼리는 Π(bi)∪Π(bj)∪P(bibj)의 후보 데이터 포인트에서 자격 있는 데이터 포인트를 선택한다. 여기서, 쿼리 세그먼트(/qiqj)는 쿼리 클러스터(/QC)의 세그먼트(/bibj)에 속하는 것으로 간주한다. 쿼리 클러스터(/QC)에서 각 쿼리 세그먼트에 대해 segment_search(제 3 알고리즘)를 수행하면, 쿼리 결과 Π(/QC)를 반환하여 cluster_search 알고리즘(제 2 알고리즘)을 종료한다(라인 11).In the second step, performed in the second algorithm (cluster_search), each query segment (/q i q j ) of the query cluster (/Q C ) is evaluated using the candidate data points obtained from the boundary points of the query cluster (/Q C ). A sharing calculation is performed on (lines 7-10). Here, each SP query in the query segment (/q i q j ) selects a qualifying data point from the candidate data points of Π(b i )∪Π(b j )∪P(bi b j ). Here, the query segment (/q i q j ) is regarded as belonging to the segment (/b i b j ) of the query cluster (/Q C ). When segment_search (third algorithm) is performed on each query segment in the query cluster (/Q C ), the cluster_search algorithm (second algorithm) is terminated by returning the query result Π (/Q C ) (line 11).

도 12는 도 11에서 언급된 segment_search(제 3 알고리즘)를 구체적으로 보여주는 도면이다. 도 12를 참조하면, segment_search(제 3 알고리즘)에 의해, Π(bi)∪Π(bj)∪P(/bibj)의 후보 데이터 포인트를 사용하여 쿼리 세그먼트(/QC)의 SP 쿼리에 응답하는 데 사용되는 세그먼트 검색 알고리즘의 절차가 설명된다. FIG. 12 is a diagram showing the segment_search (third algorithm) mentioned in FIG. 11 in detail. Referring to FIG. 12, by segment_search (third algorithm), query segment (/Q C ) using candidate data points of Π(b i )∪Π(b j )∪P(/b i b j ) The procedure of the segment search algorithm used to answer the SP query is described.

먼저, 쿼리 세그먼트(/qiqj)에 대한 일괄 쿼리 결과, 즉, Π(qiqj)는 초기에 비어있는 세트(라인 1)로 설정된다. 그런 다음 도 7a에서 도시한 바와 같이 쿼리 세그먼트(/qiqj)의 쿼리 포인트(q)와 후보 데이터 포인트(p) 사이의 거리, 즉 dist(q, p)가 계산된다(라인 5~9). 여기서, 후보 데이터 포인트(p)가 세그먼트(/bibj)의 외부에 있을 때, 쿼리 포인트(q)에서 데이터 포인트(p)까지의 거리는 dist(q, p)=min{len(/qbi)+dist(bi, p), len(/qbj)+dist(bj, p)}로 표시될 수 있다. 후보 데이터 포인트(p)가 세그먼트(/bibj)의 내부에 있을 때, 즉, p∈bibj일 때, 쿼리 포인트(q)에서 데이터 포인트(p)까지의 거리는, dist(q, p) = min{len(/qp), len(/qbi)+dist(bi, p), len(/qbj)+ dist(bj, p)}로 계산될 수 있다. First, the batch query result for the query segment (/q i q j ), i.e. Π(q i q j ), is initially set to an empty set (line 1). Then, as shown in FIG. 7A, the distance between the query point q of the query segment (/q i q j ) and the candidate data point p, that is, dist(q, p) is calculated (lines 5 to 9). ). Here, when the candidate data point (p) is outside the segment (/b i b j ), the distance from the query point (q) to the data point (p) is dist(q, p)=min{len(/qb i )+dist(b i , p), len(/qb j )+dist(b j , p)}. When the candidate data point (p) is inside the segment (/b i b j ), that is, when p∈b i b j , the distance from the query point (q) to the data point (p) is dist(q , p) = min{len(/qp), len(/qb i )+dist(b i , p), len(/qb j )+ dist(b j , p)}.

쿼리 포인트(q)가 NN 쿼리이고, 후보 데이터 포인트(p)가 현재 NN 포인트(pNN)보다 q에 더 가깝다면, 후보 데이터 포인트(p)는 Π(q)에 추가되고, NN 포인트(pNN)는 Π(q)에서 제거된다. 즉, Π(q)←Π(q)∪{p}-{pNN}이 된다(라인 11~12). 유사하게, 쿼리 포인트(q)가 RN 쿼리이고, dist(q, p)가 쿼리 거리 'q.r'보다 크지 않으면 데이터 포인트(p)는 Π(q)에 추가된다. 즉, Π(q)←Π(q)∪{p}이고, 여기서 쿼리 거리(q.r)은 쿼리 포인트(q)의 쿼리 거리를 의미한다(라인 13~14). 이러한 방식으로 Segment_search 알고리즘(제 3 알고리즘)은 쿼리 세그먼트(/qiqj)에 대한 일괄 처리 결과 Π(/qiqj)를 반환함으로써 종료된다(라인 16).If the query point q is a NN query, and the candidate data point p is closer to q than the current NN point p NN , then the candidate data point p is added to Π(q), and the NN point pNN ) is removed from Π(q). That is, Π(q)←Π(q)∪{p}-{pNN} (lines 11 to 12). Similarly, if query point q is an RN query and dist(q, p) is not greater than the query distance 'q.r' then data point p is added to Π(q). That is, Π(q)←Π(q)∪{p}, where the query distance qr means the query distance of the query point q (lines 13 to 14). In this way, the Segment_search algorithm (third algorithm) ends by returning the batch result Π(/q i q j ) for the query segment (/q i q j ) (line 16).

아래 보조 정리 1은 통합 배치 알고리즘(UBA)의 정확성을 증명한다. 즉, 쿼리 클러스터(/Qc)의 각 쿼리 포인트(q)가 쿼리 클러스터(/Qc)에 대한 후보 데이터 포인트에서 정규화된 데이터 포인트를 검색할 수 있다.Lemma 1 below proves the correctness of the Unified Placement Algorithm (UBA). That is, each query point (q) in the query cluster (/Qc) can retrieve a normalized data point from the candidate data points for the query cluster (/Qc).

* 보조 정리 1 : 쿼리 클러스터(/Qc)의 각 쿼리 포인트(q)는 쿼리 클러스터(/Qc)에 대한 후보 데이터 포인트에서 정규화된 데이터 포인트를 검색 수 있다. * Lemma 1: Each query point (q) in the query cluster (/Qc) can retrieve a normalized data point from the candidate data points for the query cluster (/Qc).

<보조 정리 1>의 증명Proof of <lemma 1>

데이터 포인트(p)가 쿼리 클러스터(/Qc)에 대한 후보 데이터 포인트가 아닌 쿼리 클러스터(/Qc)의 쿼리 포인트(q)에 대한 한정된 데이터 포인트(p)가 존재한다는 가정하에 발생하는 모순을 보여줌으로 보조 정리 1을 증명할 수 있다. 분명히, 쿼리 클러스터(/Qc)에 대한 후보 데이터 포인트의 집합 Σ(/Qc)은 쿼리 클러스터(/Qc) 내부 데이터 포인트의 집합 P(/Qc)와 쿼리 클러스터(/Qc)의 각 경계점(border point)에서의 SP 쿼리 결과 SPQ(b, /Qc)의 합집합이다: Σ(/Qc)=P(/Qc)∪(SPQ(bl, /Qc)∪SPQ(bl+1, /Qc)∪…∪SPQ(bm, /Qc). 여기서, B(/QC)={bl, bl+1,…, bm}. 분명히, 이 데이터 포인트(p)는 쿼리 클러스터(/Qc) 밖에 있어야 한다. 이는 도 7b와 같이 Σ(/Qc)의 정의에 따라 쿼리 클러스터(/Qc) 내부의 한정된 데이터 포인트(p)가 쿼리 클러스터(/Qc)의 후보 데이터 포인트가 되기 때문이다. 정규화된 데이터 포인트(p)가 도 7a와 같이 쿼리 클러스터(/Qc) 외부에 있을 때, 다음 두 가지 수학식의 경우를 고려해야 한다.By showing the contradiction that arises from the assumption that there exists a finite data point (p) for query point (q) in query cluster (/Qc) where data point (p) is not a candidate data point for query cluster (/Qc). We can prove lemma 1. Clearly, the set of candidate data points for the query cluster (/Qc) Σ(/Qc) is the set P(/Qc) of data points inside the query cluster (/Qc) and each border point of the query cluster (/Qc). ) is the union of SPQ(b, /Qc): Σ(/Qc)=P(/Qc)∪(SPQ(b l , /Qc)∪SPQ(b l+1 , /Qc)∪ …∪SPQ(b m , /Qc), where B(/QC)={b l , b l+1 ,…, b m } Clearly, this data point (p) is outside the query cluster (/Qc). This is because, according to the definition of Σ(/Qc) as shown in Fig. 7b, the definite data point p inside the query cluster (/Qc) becomes the candidate data point of the query cluster (/Qc) Normalized data When the point (p) is outside the query cluster (/Qc) as shown in FIG. 7A, the following two equations should be considered.

Figure pat00001
Figure pat00001

Figure pat00002
Figure pat00002

수학식 1의 경우, 규정된 데이터 포인트(p)는 범위 쿼리(qRN)를 충족한다. 그러나, 쿼리 클러스터(/Qc)의 후보 데이터 포인트는 아니다. 수학식 2의 경우, 규정된 데이터 포인트(p)는 NN 쿼리(qNN)를 충족한다. 그러나 쿼리 클러스터(/Qc)의 후보 데이터 포인트는 아니다. 영역 쿼리(qRN)에서 데이터 포인트(p)까지의 최단 경로는 쿼리 클러스터(/Qc)의 경계점을 통과해야 한다. 편의상 영역 쿼리(qRN)에서 데이터 포인트(p)까지의 최단 경로가 qRN→bl→p라고 가정하기로 한다. 여기서 bl은 쿼리 클러스터(/Qc)의 경계점이다. 영역 쿼리(qRN)에서 데이터 포인트(p)까지의 거리는 쿼리 거리 r보다 작거나 같다. 즉, dist(qRN, p)≤r 이다. 따라서, 경계점(bl)에서 데이터 포인트(p)까지의 거리도 'r'보다 작거나 같다. 즉, dist(bl, p)≤r 이다. 이것은 영역 쿼리(qRN)에 대한 자격 있는 데이터 포인트(p)가 쿼리 클러스터(/Qc)에 대한 후보 데이터 포인트가 아니라는 가정에 모순으로 이어진다.For Equation 1, the specified data point p satisfies the range query q RN . However, it is not a candidate data point for the query cluster (/Qc). For Equation 2, the prescribed data points p satisfy the NN query q NN . However, it is not a candidate data point for the query cluster (/Qc). The shortest path from the area query (q RN ) to the data point (p) must pass through the boundary of the query cluster (/Qc). For convenience, it is assumed that the shortest path from the area query (q RN ) to the data point (p) is q RN → b l → p. Here, b l is the boundary point of the query cluster (/Qc). The distance from the area query (q RN ) to the data point (p) is less than or equal to the query distance r. That is, dist(q RN , p)≤r. Therefore, the distance from the boundary point b l to the data point p is also less than or equal to 'r'. That is, dist(b l , p) ≤ r. This leads to a contradiction to the assumption that a qualifying data point (p) for a range query (q RN ) is not a candidate data point for a query cluster (/Qc).

다음으로, 최근접 이웃 쿼리(qNN)에 대한 규정된 데이터 포인트(p)가 쿼리 클러스터(/Qc)에 대한 후보 데이터 포인트가 아닌 두 번째 경우를 고려하기로 한다. 편의상, 최근접 이웃 쿼리(qNN)에서 데이터 포인트(p)까지의 최단 경로는 qNN→bl→p이고 데이터 포인트(pl)는 p가 아니라 bl의 최근접 이웃(NN)이라고 가정한다. 이것은 데이터 포인트(pl)가 p보다 bl에 더 가깝다는 것을 의미한다. 즉, dist(bl, pl) < dist(bl, p)이다. 최근접 이웃 쿼리(qNN)에서 데이터 포인트(pl)까지의 최단 경로는 qNN→bl→p(qNN→bl→pl)이다. 따라서 데이터 포인트(pl)는 p가 아니라 최근접 이웃 쿼리(qNN)의 최근접 이웃(NN)이어야 한다. 이것은 데이터 포인트(p)가 최근접 이웃 쿼리(qNN)의 최근접 이웃(NN)이라는 가정과 모순된다. 따라서 쿼리 클러스터(/Qc)의 각 쿼리 포인트(q)는 쿼리 클러스터(/Qc)의 후보 데이터 포인트에서 정규화된 데이터 포인트를 검색할 수 있다.Next, consider the second case where the prescribed data point p for the nearest neighbor query q NN is not a candidate data point for the query cluster /Qc. For convenience, we assume that the shortest path from a nearest neighbor query (q NN ) to a data point (p) is q NN → b l → p and that the data point (p l ) is the nearest neighbor (NN) of b l , not p. do. This means that the data point (p l ) is closer to b l than to p. That is, dist(b l , p l ) < dist(b l , p). The shortest path from a nearest neighbor query (q NN ) to a data point (p l ) is q NN → b l → p(q NN → b l → p l ). Therefore, the data point (p l ) must be the nearest neighbor (NN) of the nearest neighbor query (q NN ), not p. This contradicts the assumption that the data point p is the nearest neighbor (NN) of the nearest neighbor query (q NN ). Therefore, each query point (q) in the query cluster (/Qc) can retrieve a normalized data point from the candidate data points in the query cluster (/Qc).

도 13은 동적 공간 네트워크에서의 통합 배치 알고리즘(UBA)과 INE 및 RNE와 같은 순차 알고리즘의 시간 복잡성을 비교한 테이블이다. 도 13을 참조하면, 본 발명의 통합 배치 알고리즘(UBA)은 한 번에 하나의 쿼리 처리(one-query-at-a-time) 알고리즘과 독립적이며, 이러한 알고리즘에 쉽게 통합될 수 있다. 단순화를 위해, INE과 RNE는 동적 공간 네트워크에서 단일 공간 근접성(SP) 쿼리를 평가하는 것으로 간주되며, 시간 복잡도는 'O'(|E|+|V|ㆍlog|V|)이다. 13 is a table comparing the time complexity of the unified placement algorithm (UBA) and sequential algorithms such as INE and RNE in dynamic spatial networks. Referring to Figure 13, the unified batch algorithm (UBA) of the present invention is independent of one-query-at-a-time algorithms and can be easily incorporated into such algorithms. For simplicity, INE and RNE are considered as evaluating a single spatial proximity (SP) query in a dynamic spatial network, with time complexity 'O'(|E|+|V|ㆍlog|V|).

통합 배치 알고리즘(UBA)은 Mㆍ|/Q| SP 쿼리들의 수 만큼을 계산한다. 여기서, |/Q|는 쿼리 클러스터(/Q)의 수이고, M은 쿼리 클러스터(/Qc)의 최대 경계점의 수를 나타낸다. 즉, M = max{|B(/Qc)|, /Qc∈/Q}이다. 역으로, 각 쿼리 지점을 개별적으로 처리해야 하기 때문에 순차 알고리즘은 |Q| SP 쿼리의 수만큼 계산한다. 따라서 통합 배치 알고리즘(UBA) 및 순차 알고리즘의 시간 복잡도는 각각 'O'(|/Q|ㆍ(|E|+|V|ㆍlog|V|)) 및 'O'(|Q|ㆍ(|E|+|V|ㆍlog|V|))이다. 시간 복잡도 분석의 결과는 통합 배치 알고리즘(UBA)이 순차 알고리즘보다 우수함을 나타낸다. 특히, |/Q|≪|Q|, 즉 쿼리 포인트가 심하게 치우친 분포를 나타낼 때 통합 배치 알고리즘(UBA)이 더 우수하다. 더불어, 위의 비교 결과는 |/Q|~|Q|, 쿼리 포인트가 균일한 분포를 보일 때에는 통합 배치 알고리즘(UBA)이 순차 알고리즘과 유사한 성능을 나타냄을 보여준다.The Unified Batch Algorithm (UBA) is Mㆍ|/Q| Calculate as many as the number of SP queries. Here, |/Q| is the number of query clusters (/Q), and M represents the maximum number of boundary points of the query cluster (/Qc). That is, M = max{|B(/Qc)|, /Qc∈/Q}. Conversely, since each query point must be processed individually, the sequential algorithm |Q| Calculate as many as the number of SP queries. Therefore, the time complexities of the unified batch algorithm (UBA) and the sequential algorithm are 'O'(|/Q|ㆍ(|E|+|V|ㆍlog|V|)) and 'O'(|Q|ㆍ(| E|+|V|ㆍlog|V|)). The results of the time complexity analysis indicate that the unified batch algorithm (UBA) outperforms the sequential algorithm. In particular, the unified placement algorithm (UBA) is superior when |/Q|≪|Q|, that is, when the query points exhibit a highly skewed distribution. In addition, the above comparison results show that the unified batch algorithm (UBA) exhibits performance similar to that of the sequential algorithm when |/Q|∼|Q| and query points show a uniform distribution.

도 14는 경계점에서의 공간 근접성 쿼리의 계산을 보여주는 테이블이다. 도 6a, 도 6b, 그리고 도 14를 참조하여, 통합 배치 알고리즘(UBA)을 사용하여 5개의 공간 근접성 쿼리들(q1 NN, q2 RN, q3 NN, q4 RN, q5 NN)이 경계점(v1, v2, v5)을 갖는 쿼리 클러스터 /Qc = {/q1 NNq2 RN, /q3 NN, /q4 RNq5 NN}로 그룹화된다. 14 is a table showing calculation of a spatial proximity query at a boundary point. Referring to FIGS. 6A, 6B, and 14, five spatial proximity queries (q 1 NN , q 2 RN , q 3 NN , q 4 RN , q 5 NN ) using the unified placement algorithm (UBA) are The query clusters /Qc with boundary points (v 1 , v 2 , v 5 ) are grouped into = {/q 1 NN q 2 RN , /q 3 NN , /q 4 RN q 5 NN }.

쿼리 포인트 집합 Q = {q1 NN, q2 RN, q3 NN, q4 RN, q5 NN}은 쿼리 클러스터 집합 /Q = {/q1 NNq2 RN, /q3 NN, /q4 RNq5 NN}으로 변환된다. 통합 배치 알고리즘(UBA)은 5개의 쿼리 포인트들(q1 NN, q2 RN, q3 NN, q4 RN, q5 NN)이 아니라 쿼리 클러스터 집합(/Q)의 경계 지점에서 3개의 공간 근접성(SP) 쿼리만 계산한다. 쿼리 클러스터(/Qc)에는 NN 쿼리(q1 NN, q3 NN, q5 NN)와 RN 쿼리(q2 RN, q4 RN)가 모두 포함된다. 따라서, 경계점(v1, v2, v5)에서 공간 접근성(SP) 쿼리의 결과는 Π(v1)=Π(v1 NN)∪Π(v1 RN), Π(v2)=Π(v2 NN)∪Π(v2 RN), Π(v5)=Π(v5 NN)∪Π(v5 RN)이어야 한다. 도 14에서는 세 경계점(v1, v2, v5)에서의 공간 접근성(SP) 쿼리 결과를 보여준다. The set of query points Q = {q 1 NN , q 2 RN , q 3 NN , q 4 RN , q 5 NN } is the set of query clusters /Q = {/q 1 NN q 2 RN , /q 3 NN , /q 4 RN q 5 NN }. The Unified Placement Algorithm (UBA) uses not five query points (q 1 NN , q 2 RN , q 3 NN , q 4 RN , q 5 NN ) but three spatial proximity at the boundary of a set of query clusters (/Q). (SP) Only queries are computed. The query cluster (/Qc) contains both NN queries (q 1 NN , q 3 NN , q 5 NN ) and RN queries (q 2 RN , q 4 RN ). Therefore, the result of the spatial accessibility (SP) query at boundary points (v 1 , v 2 , v 5 ) is Π(v 1 )=Π(v 1 NN )∪Π(v 1 RN ), Π(v 2 )=Π (v 2 NN )∪Π(v 2 RN ), Π(v 5 )=Π(v 5 NN )∪Π(v 5 RN ). 14 shows spatial accessibility (SP) query results at three boundary points (v 1 , v 2 , v 5 ).

Segment_search(제 3 알고리즘)은 쿼리 클러스터(/QC) 내의 각 쿼리 세그먼트에 의해 호출된다. 편의를 위해 3개의 쿼리 세그먼트들(/q1 NNq2 RN, /q3 NN, /q4 RNq5 NN)이 순차적으로 처리되는 것으로 가정하기로 한다. 먼저, Segment_search 함수는 Π(v1 NN)∪Π(v1 RN)∪Π(v2 NN)∪Π(v2 RN)∪P(/v1v2) = {p2, p4}의 SP 쿼리를 후보 데이터 포인트로 계산한다. 이 함수는 쿼리 세그먼트(/q1 NNq2 RN) 내의 쿼리 포인트쌍(q1 NN와 q2 RN)과 후보 데이터 포인트들(p2, p4) 사이의 거리를 계산한다. Segment_search (third algorithm) is called by each query segment in the query cluster (/Q C ). For convenience, it is assumed that three query segments (/q 1 NN q 2 RN , /q 3 NN , /q 4 RN q 5 NN ) are sequentially processed. First, the Segment_search function is Π(v 1 NN )∪Π(v 1 RN )∪Π(v 2 NN )∪Π(v 2 RN )∪P(/v 1 v 2 ) = {p 2 , p 4 } Calculates the SP query into candidate data points. This function calculates the distance between a query point pair (q 1 NN and q 2 RN ) and candidate data points (p 2 , p 4 ) within a query segment (/q 1 NN q 2 RN ).

도 15는 쿼리 포인트와 후보 데이터 포인트들 사이의 거리를 계산하는 방법을 보여주는 테이블이다. 도 15를 참조하면, 쿼리 세그먼트(/qiqj)의 각 쿼리 포인트 쌍(q)과 후보 데이터 포인트(p) 사이의 거리가 요약되어 있다. 여기서, SP 쿼리(q1 NN)는 후보 데이터 포인트(p2와 p4)에서 쿼리 포인트(q1 NN)에 가장 가까운 데이터 포인트를 찾는다. 결과적으로 후보 데이터 포인트(p4)가 후보 데이터 포인트(p2)보다 쿼리 포인트(q1 NN)에 더 가깝기 때문에 데이터 포인트(p4)가 쿼리 포인트(q1 NN)의 선택된 최근접 이웃(NN)이 된다. 유사하게, SP 쿼리(q2 RN)는 쿼리 거리 r=4 이내의 데이터 포인트를 찾는다. 따라서 dist(q2 RN, p2)=4, dist(q2 RN, p 4)=11이므로 q2 RN의 결과에 데이터 포인트(p2)가 포함된다. 쿼리 세그먼트(/q1 NNq2 RN)에 대한 쿼리 결과는 Π(/q1 NNq2 R)=Π(q1 NN)∪Π(q2 RN)={<q1 NN,{p4}>, <q2 RN, {p2}>}로 나타낼 수 있다.15 is a table showing how to calculate a distance between a query point and candidate data points. Referring to FIG. 15 , the distance between each query point pair (q) of the query segment (/q i q j ) and the candidate data point (p) is summarized. Here, the SP query (q 1 NN ) finds the closest data point to the query point (q 1 NN ) from the candidate data points (p 2 and p 4 ). As a result, since the candidate data point (p 4 ) is closer to the query point (q 1 NN ) than the candidate data point (p 2 ), the data point (p 4 ) is the selected nearest neighbor (NN) of the query point (q 1 NN ). ) becomes Similarly, the SP query (q 2 RN ) finds data points within query distance r=4. Therefore, since dist(q 2 RN , p 2 )=4 and dist(q 2 RN, p 4 )=11, the result of q 2 RN contains the data point p 2 . The query result for the query segment (/q 1 NN q 2 RN ) is Π(/q 1 NN q 2 R )=Π(q 1 NN )∪Π(q 2 RN )={<q 1 NN ,{p 4 }>, <q 2 RN , {p 2 }>}.

다음으로, segment_search 함수는 Π(v2 NN)∪Π(v2 RN)∪Π(v5 NN)∪Π(v5 RN)∪P(/v2v5) = {p1, p2}의 후보 데이터 포인트로 SP 쿼리를 계산한다. 먼저, 쿼리 포인트(q3 NN)쌍 각각과 후보 데이터 포인트들(p1, p2) 사이의 거리가 계산된다. 그런 다음, SP 쿼리(q3 NN)은 후보 데이터 포인트들(p1, p2)에서 쿼리 포인트(q3 NN)에 가장 가까운 데이터 포인트를 찾는다. 결과적으로, p1은 p2보다 쿼리 포인트(q3 NN)에 더 가깝기 때문에 p1은 쿼리 포인트(q3 NN)의 선택된 최근접 이웃(NN)이 된다. q3 NN에 대한 쿼리 결과는 Π(q3 NN)={<q3 NN, {p1}>}이 된다.Next, the segment_search function calculates Π(v 2 NN )∪Π(v 2 RN )∪Π(v 5 NN )∪Π(v 5 RN )∪P(/v 2 v 5 ) = {p 1 , p 2 } Compute the SP query with the candidate data points of First, the distance between each pair of query points (q 3 NN ) and candidate data points (p 1 , p 2 ) is calculated. Then, the SP query (q 3 NN ) finds the closest data point to the query point (q 3 NN ) from the candidate data points (p 1 , p 2 ). Consequently, since p 1 is closer to the query point (q 3 NN ) than p 2 , p 1 becomes the selected nearest neighbor (NN) of the query point (q 3 NN ). The query result for q 3 NN becomes Π(q 3 NN )={<q 3 NN , {p 1 }>}.

마지막으로, segment_search 함수는 Π(v1 NN)∪Π(v1 RN)∪Π(v5 NN)∪Π(v5 RN)∪P(/v1v)={p1, p4}의 후보 데이터 포인트를 사용하여 SP 쿼리(/q4 RNq5 NN)를 계산한다. 먼저, 쿼리 세그먼트(/q4 RNq5 NN) 내의 각 쿼리 포인트 쌍과 후보 데이터 포인트(p1, p4) 사이의 거리가 계산된다. SP 쿼리(q4 RN)는 쿼리 거리 r=4 이내의 데이터 포인트를 찾는다. dist(q4 RN, p1)=9 및 dist(q4 RN, p4)=8이므로 SP 쿼리(q4 RN)의 결과 집합에는 데이터 포인트가 존재하지 않는다. SP 쿼리(q5 NN)는 데이터 포인트들(p1, p4)에서 q5 NN에 가장 가까운 데이터 포인트를 식별한다. 결과적으로 데이터 포인트(p1)는 데이터 포인트(p4)보다 쿼리 포인트(q5 NN)에 더 가깝기 때문에, 데이터 포인트(p1)는 SP 쿼리(q5 NN)의 선택된 최근접 이웃(NN)이 된다. 쿼리 세그먼트(/q4 RNq5 NN)에 대한 쿼리 결과는 Π(/q4 RNq5 NN)=Π(q4 RN)∪Π(q5 NN)={<q4 RN, Φ>, <q5 NN, {p1}>}이다. 명백하게, 쿼리 포인트 집합(Q) 내의 SP 쿼리들의 결과는 쿼리 클러스터(/Qc)의 쿼리 세그먼트들의 결과들의 합집합으로 나타난다(Π(Q)= Π(/q1 NNq2 RN)∪Π(q3 NN)∪Π(/q4 RNq5 NN)= {<q1 NN,{p4}>, <q2 RN, {p2}>, <q3 NN, {p1}>, <q4 RN, Φ>, <q5 NN, {p1}>}). Finally , the segment_search function has the following equation : _ Compute the SP query (/q 4 RN q 5 NN ) using the candidate data points. First, the distance between each pair of query points in the query segment (/q 4 RN q 5 NN ) and the candidate data points (p 1 , p 4 ) is calculated. The SP query (q 4 RN ) finds data points within the query distance r=4. Since dist(q 4 RN , p 1 )=9 and dist(q 4 RN , p 4 )=8, there are no data points in the result set of the SP query (q 4 RN ). The SP query (q 5 NN ) identifies the closest data point to q 5 NN from data points (p 1 , p 4 ). Consequently, since the data point (p 1 ) is closer to the query point (q 5 NN ) than the data point (p 4 ), the data point (p 1 ) is the selected nearest neighbor (NN) of the SP query (q 5 NN ). becomes The query result for the query segment (/q 4 RN q 5 NN ) is Π(/q 4 RN q 5 NN )=Π(q 4 RN )∪Π(q 5 NN )={<q 4 RN , Φ>, <q 5 NN , {p 1 }>}. Obviously, the results of the SP queries in the query point set (Q) appear as the union of the results of the query segments of the query cluster (/Qc) (Π(Q)= Π(/q 1 NN q 2 RN )∪Π(q 3 NN )∪Π(/q 4 RN q 5 NN )= {<q 1 NN ,{p 4 }>, <q 2 RN , {p 2 }>, <q 3 NN , {p 1 }>, <q 4 RN , Φ>, <q 5 NN , {p 1 }>}).

<성능 평가><Performance evaluation>

도 16 및 도 17은 3개의 실제 공간 네트워크(Spacial Network)와 실험 매개변수를 보여준다. 도 16 및 도 17을 참조하면, 이러한 실제 공간 네트워크는 크기가 다르며, 미국 도로 네트워크의 일부이다. 설명의 편의를 위해, 공간 네트워크의 범위는 단위제곱 [0, 1]2로 정규화하였고, 쿼리 거리 r은 10-2로 설정하였다. 쿼리 포인트는 중심 분포를 따르고 데이터 포인트는 중심 또는 균일 분포를 따른다. 여기에서 중심 기반 포인트는 현실 세계에서 심하게 치우친 POI 분포를 모방하기 위해 생성되었다. 먼저, 중심들(c1, c2, …,c|C|)은 공간 네트워크의 범위에 따라 무작위로 선택되었고, |C|는 중심의 수를 나타낸다. 각 중심 주변의 점은 중심을 나타내는 평균과 함께 정규 분포를 따르고 표준 편차는 σ=10-2로 설정되었다. 총 1 내지 10개의 중심이 쿼리 포인트로 선택되었고 5개의 중심이 데이터 포인트로 선택되었다. NN 쿼리의 수는 SP 쿼리에 대한 RN 쿼리의 수와 동일했다. 각 실험에서 단일 매개변수는 범위 내에서 변경되었고 다른 매개변수는 기본값으로 유지되었다.16 and 17 show three real spatial networks and experimental parameters. Referring to Figures 16 and 17, these real space networks are of different sizes and are part of the US road network. For convenience of description, the range of the spatial network is normalized to unit square [0, 1] 2 , and the query distance r is set to 10 -2 . Query points follow a central distribution, and data points follow a central or uniform distribution. Here, centroid-based points were created to mimic the heavily skewed POI distribution in the real world. First, the centroids (c 1 , c 2 , …,c |C| ) were randomly selected according to the range of the spatial network, and |C| represents the number of centroids. The points around each centroid follow a normal distribution with the mean representing the centroid and the standard deviation set to σ=10 -2 . A total of 1 to 10 centroids were selected as query points and 5 centroids were selected as data points. The number of NN queries was equal to the number of RN queries for SP queries. In each experiment, a single parameter was changed within a range and the other parameters were kept at their default values.

다음으로 본 발명의 통합 배치 알고리즘(150)을 쿼리 처리 시간 및 평가된 SP 쿼리 수 측면에서 SP 쿼리를 순차적으로 계산하는 SEQ라는 순차적 알고리즘과 비교하였다. 여기에서는 쿼리와 데이터 포인트가 동적 공간 네트워크 내에서 자유롭게 이동한다고 가정했다. 쿼리 및 데이터 포인트가 동적 공간 네트워크 내에서 자유롭게 실행될 때, 사전 계산된 거리가 자주 무효화될 수 있기 때문에 문헌에 제시된 사전 계산 기술을 활용하는 것은 비실용적이다. UBA와 SEQ는 유사한 작업을 위해 공통 서브루틴을 사용한다(예: 단일 쿼리 지점에서 SP 쿼리 평가). 따라서 두 알고리즘 모두 Microsoft Visual Studio 2019 개발 환경을 사용하여 C++로 구현되었다. 실험은 32GB RAM과 3.1GHz 프로세서(i9-9900)가 장착된 Windows 10 운영 체제를 실행하는 데스크톱 컴퓨터에서 실행되었다. 최근 많은 연구에서와 같이 UBA와 SEQ에 대한 색인 구조는 온라인 지도 서비스에서 중요한 신속한 응답을 제공하기 위해 메인 메모리에 남아 있다. 실험은 10번 반복되었으며 평균 처리 시간을 측정하여 Q의 SP 쿼리를 결정했다. Next, the integrated batch algorithm 150 of the present invention was compared with a sequential algorithm called SEQ that sequentially calculates SP queries in terms of query processing time and the number of evaluated SP queries. Here we assume that queries and data points move freely within a dynamic spatial network. When queries and data points run freely within dynamic spatial networks, it is impractical to utilize precomputation techniques presented in the literature because precomputed distances can often become invalid. UBA and SEQ use common subroutines for similar tasks, such as evaluating SP queries at a single query point. Therefore, both algorithms were implemented in C++ using the Microsoft Visual Studio 2019 development environment. Experiments were run on a desktop computer running the Windows 10 operating system with 32GB RAM and a 3.1GHz processor (i9-9900). As in many recent studies, the index structures for UBA and SEQ remain in main memory to provide rapid response, which is important in online map services. The experiment was repeated 10 times and the average processing time was measured to determine the SP query of Q.

앞서 언급한 바와 같이 제안된 UBA는 한 번에 하나의 쿼리 처리 알고리즘과 직교(Orthogonal)하며 이러한 알고리즘에 쉽게 통합될 수 있다. 본 발명에서는 INE와 RNE가 동적 공간 네트워크에 적합한 'Dijkstra 알고리즘'과 유사한 네트워크 확장을 기반으로 하기 때문에 동적 공간 네트워크에 대한 NN 및 RN 쿼리를 각각 평가하기 위해 INE 및 RNE를 사용했다.As mentioned earlier, the proposed UBA is orthogonal to one query processing algorithm at a time and can be easily incorporated into such algorithms. In the present invention, we used INE and RNE to evaluate NN and RN queries for dynamic spatial networks, respectively, since INE and RNE are based on network expansion similar to the 'Dijkstra algorithm' suitable for dynamic spatial networks.

도 18 내지 도 21은 실험 결과를 보여주는 그래프들이다. 도 18은 CAL 로드맵에서 SP 쿼리를 평가하기 위해 UBA와 SEQ의 쿼리 처리 시간을 비교한 결과를 보여준다. 도 18 내지 도 20에서 3개의 상단 행 및 3개의 하단 행 차트는 데이터 포인트가 각각 균일 분포 및 중심 분포를 따랐을 때의 실험 결과를 보여준다. 각 차트는 한 번에 하나의 매개변수를 변경하여 쿼리 처리 시간과 평가된 SP 쿼리 수를 보여준다. 도 18 내지 도 21에서 괄호 안의 값은 제안된 UBA에서 평가한 SP 쿼리 수를 나타낸다. SEQ에 의해 평가된 SP 쿼리의 수는 |Q|와 정확히 동일하기 때문에 생략되었다. 18 to 21 are graphs showing experimental results. 18 shows the results of comparing query processing times of UBA and SEQ to evaluate SP queries in the CAL roadmap. The three top row and three bottom row charts in FIGS. 18-20 show the experimental results when the data points followed a uniform distribution and a central distribution, respectively. Each chart shows the query processing time and the number of SP queries evaluated by changing one parameter at a time. 18 to 21, the values in parentheses indicate the number of SP queries evaluated by the proposed UBA. The number of SP queries evaluated by SEQ is omitted because it is exactly equal to |Q|.

도 18a를 참조하면, 쿼리 포인트 집합(Q)의 SP 쿼리 중 그림 18a는 |Q| 쿼리 포인트 중 1K와 10K 사이, 즉 1K≤|Q|≤10K였다. 도시된 바와 같이 본 발명의 UBA는 Q의 SP 쿼리 수가 증가함에 따라 분명히 SEQ를 능가했다. 쿼리 처리 시간 측면에서 UBA는 |Q|=7K에 대해 SEQ보다 최대 2.9배 더 빨랐다. 그러나 UBA는 |Q|=1K에 대해 SEQ보다 최대 2.59배 느렸다. 본 발명의 UBA는 SEQ와 달리 |Q|에 민감하지 않다. 이는 UBA에서 일괄 처리의 효율성이 쿼리 포인트의 수(|Q|)만큼 증가했다. |Q|=1K, 3K, 5K, 7K 및 10K일 때 UBA는 SEQ보다 각각 75%, 89%, 88%, 91% 및 92%만큼 SP 쿼리를 더 적게 계산했다. Referring to FIG. 18A, among the SP queries of the query point set (Q), FIG. 18a shows |Q| Between 1K and 10K of the query points, i.e. 1K≤|Q|≤10K. As shown, our UBA clearly outperformed SEQ as the number of SP queries in Q increased. In terms of query processing time, UBA was up to 2.9 times faster than SEQ for |Q|=7K. However, UBA was up to 2.59 times slower than SEQ for |Q|=1K. Unlike SEQ, the UBA of the present invention is not sensitive to |Q|. This increases the efficiency of batch processing in UBA by the number of query points (|Q|). When |Q|=1K, 3K, 5K, 7K, and 10K, UBA computed fewer SP queries than SEQ by 75%, 89%, 88%, 91%, and 92%, respectively.

도 18b를 참조하면, |P| 데이터 포인트의 수는 1K와 10K 사이에서 다양했다. 즉, 1K≤|P|≤10K이다. 따라서 UBA는 모든 경우에 SEQ를 분명히 능가했다. UBA의 쿼리 처리 시간은 |P|=1K일 때 SEQ의 쿼리 처리 시간보다 최대 8.9배 낮았다. 데이터 포인트 |P| 값이 감소하면 NN 쿼리 처리를 위한 검색 공간이 증가한다. 데이터 포인트 |P|의 변경에 관계없이 UBA 및 SEQ는 각각 789 및 10,000 SP 쿼리를 계산했다. Referring to FIG. 18B, |P| The number of data points varied between 1K and 10K. That is, 1K≤|P|≤10K. Thus, UBA clearly outperformed SEQ in all cases. The query processing time of UBA was up to 8.9 times lower than that of SEQ when |P|=1K. Data point |P| As the value decreases, the search space for processing NN queries increases. Regardless of the change in data point |P|, UBA and SEQ counted 789 and 10,000 SP queries, respectively.

도 18c를 참조하면, 쿼리 포인트들의 중심의 수(|C|)가 1과 10 사이에서 가변될 때의 쿼리 처리 시간을 보여준다. 즉, 1≤|C|≤10 이다. 본 발명의 UBA는 모든 경우에 대해 SEQ보다 최대 2.3배 빨랐다. 중심의 수(|C|)가 증가할수록, 쿼리 포인트의 밀도가 감소하여 쿼리 클러스터의 수(|Q|)가 증가하기 때문에, UBA와 SEQ 간의 쿼리 처리 시간의 차이는 감소했다. 구체적으로 |C|=1, 3, 5, 7 및 10일 때 UBA는 각각 789, 1196, 2438, 3928, 4015개의 SP 쿼리를 계산한 반면 SEQ는 이러한 모든 경우에 대해 10K SP 쿼리를 계산했다.Referring to FIG. 18C , query processing time when the number of centroids (|C|) of query points varies between 1 and 10 is shown. That is, 1≤|C|≤10. Our UBA was up to 2.3 times faster than SEQ in all cases. As the number of centroids (|C|) increases, the difference in query processing time between UBA and SEQ decreases because the density of query points decreases and the number of query clusters (|Q|) increases. Specifically, when |C|=1, 3, 5, 7, and 10, UBA computed 789, 1196, 2438, 3928, and 4015 SP queries, respectively, while SEQ computed 10K SP queries for all these cases.

도 18d 내지 도 18f는 데이터 포인트가 중심 분포를 따랐을 때 UBA 및 SEQ의 쿼리 처리 시간을 보여준다. 본 발명의 UBA의 쿼리 처리 시간은 모든 경우에 대해 SEQ의 쿼리 처리 시간보다 최대 18.95배 낮았다. 도 18a의 경우와 달리 데이터 포인트가 심하게 치우친 분포를 따랐을 때, UBA와 SEQ의 쿼리 처리 시간은 그림 18d와 같이 |Q|에 따라 증가하지 않았으며, 이는 쿼리 처리 시간이 |Q|보다 데이터 포인트의 분포에 더 민감했음을 의미한다. |Q|=1K, 3K, 5K, 7K, 10K일 때 UBA의 쿼리 처리 시간은 각각 21.7초, 162.8초, 21.9초, 126.8초, 468.7초였다. 도 18d 내지 도 18f에서 볼 수 있듯이 UBA는 모든 경우에 SEQ보다 빨랐다. 데이터 포인트의 중심 분포에 대한 UBA와 SEQ 간의 쿼리 처리 시간 차이는 데이터 포인트의 균일한 분포보다 몇 자릿수까지 더 컸다. 18D-18F show the query processing times of UBA and SEQ when the data points follow a central distribution. The query processing time of UBA of the present invention was at most 18.95 times lower than that of SEQ in all cases. Unlike the case of FIG. 18a, when the data points follow a severely skewed distribution, the query processing time of UBA and SEQ does not increase with |Q| as shown in FIG. This means that the distribution is more sensitive. When |Q|=1K, 3K, 5K, 7K, and 10K, UBA's query processing time was 21.7 seconds, 162.8 seconds, 21.9 seconds, 126.8 seconds, and 468.7 seconds, respectively. As can be seen in Figures 18d to 18f, UBA was faster than SEQ in all cases. The difference in query processing time between UBA and SEQ for a central distribution of data points was up to several orders of magnitude greater than for a uniform distribution of data points.

도 19a 내지 도 19f는 FLA 로드맵에서 SP 쿼리를 평가하기 위해 UBA와 SEQ를 사용할 때 얻은 쿼리 처리 시간을 비교한 결과를 보여준다. 도 19a는 쿼리 처리 시간을 |Q|의 함수로 보여준다. 본 발명의 UBA가 |Q|≥3K에 대해 SEQ보다 최대 2.2배 더 빠르다는 것을 알 수 있다. 그러나 |Q|=1K의 경우 SEQ가 UBA보다 2.7배 더 빨랐다. UBA의 일괄 처리가 SP 쿼리의 소수가 아닌 많은 수에 대한 것이기 때문이다. 19a to 19f show results of comparing query processing times obtained when using UBA and SEQ to evaluate SP queries in the FLA roadmap. 19a shows query processing time as a function of |Q|. It can be seen that our UBA is up to 2.2 times faster than SEQ for |Q|≥3K. However, for |Q|=1K, SEQ was 2.7 times faster than UBA. This is because UBA's batch processing is for large numbers, not small numbers, of SP queries.

도 19b는 쿼리 처리 시간을 |P|의 함수로 보여준다. UBA와 SEQ는 이 두 경우에 대해 각각 1601 및 10,000 SP 쿼리를 계산했지만 UBA는 |P|=1K 및 10K에 대해 각각 SEQ보다 5.5배 및 2.2배 더 빨랐다. |P|=1K일 때 NN 쿼리에 대한 검색 공간이 |P|=10K일 때보다 더 컸기 때문이다. 19B shows the query processing time as a function of |P|. UBA and SEQ computed 1601 and 10,000 SP queries for these two cases, respectively, but UBA was 5.5 and 2.2 times faster than SEQ for |P|=1K and 10K, respectively. This is because when |P|=1K, the search space for the NN query was larger than when |P|=10K.

도 19c는 쿼리 처리 시간을 |C|로 나타낸 것으로, UBA의 경우 모든 경우에서 SEQ의 경우보다 최대 2.1배 짧았다. 분명히 쿼리 클러스터의 수가 |C|로 증가하여 제안된 UBA의 성능에 부정적인 영향을 미쳤다. 19C shows the query processing time as |C|, which was shorter by a maximum of 2.1 times than that of SEQ in all cases in the case of UBA. Apparently, the number of query clusters increased to |C|, which negatively affected the performance of the proposed UBA.

도 19d 내지 도 19f에서 볼 수 있듯이, UBA는 모든 경우에 SEQ보다 최대 11배 빨랐다. UBA와 SEQ의 쿼리 처리 시간이 모두 변동했다. 즉, 심하게 치우친 데이터 포인트의 분포가 NN 쿼리 처리 시간에 큰 영향을 미쳤다. 구체적으로 그림 19d와 같이 쿼리 포인트 집합(Q)의 SP 쿼리 수의 차이에도 불구하고 |Q|=1K에 대한 UBA의 쿼리 처리 시간은 |Q|=3K에 대한 쿼리 처리 시간보다 8.9배 더 길었다.As can be seen in Figures 19D-19F, UBA was up to 11 times faster than SEQ in all cases. Both UBA and SEQ query processing times fluctuated. In other words, a heavily skewed distribution of data points greatly affected the NN query processing time. Specifically, as shown in Figure 19d, despite the difference in the number of SP queries in the query point set (Q), the query processing time of UBA for |Q|=1K was 8.9 times longer than that for |Q|=3K.

도 20a 내지 도 20f는 UBA 및 SEQ를 사용하여 얻은 쿼리 처리 시간을 COL 로드맵과 비교한 결과를 보여준다. 도 20a에서 볼 수 있듯이 본 발명의 UBA는 5K≤|Q|≤10K일때 SEQ보다 최대 3.1배 더 빨랐다. 여기서, |Q|가 증가할 수록 UBA는 SEQ보다 우수했다. 20a to 20f show results obtained by comparing query processing times obtained using UBA and SEQ with a COL roadmap. As can be seen in FIG. 20a, UBA of the present invention was up to 3.1 times faster than SEQ when 5K≤|Q|≤10K. Here, as |Q| increased, UBA was superior to SEQ.

도 20b에서 볼 수 있듯이, UBA와 SEQ는 각각 409개와 10,000개의 SP 쿼리를 계산했기 때문에, UBA는 |P|값에 관계없이 SEQ보다 최대 16.3배 더 빨랐다. 분명히, 이러한 계산된 SP 쿼리 수(즉, 9591)의 차이가 발생했다. 본 발명의 UBA는 클러스터된 SP 쿼리의 일괄 처리를 이용할 수 있다. 따라서 불필요한 거리 계산을 피할 수 있다. As shown in Fig. 20b, since UBA and SEQ computed 409 and 10,000 SP queries, respectively, UBA was up to 16.3 times faster than SEQ regardless of |P| value. Clearly, this accounted for the difference in the number of SP queries (i.e. 9591). The UBA of the present invention can use batch processing of clustered SP queries. Thus, unnecessary distance calculations can be avoided.

도 20c에서 볼 수 있듯이 UBA는 중심의 수(|C|)의 모든 경우에서 SEQ를 분명히 능가했다. 중심의 수(|C|)가 증가할수록 쿼리 포인트의 밀도가 감소하여 UBA의 일괄 처리에 비효율적이었다. As can be seen in Fig. 20c, UBA clearly outperformed SEQ in all cases of the number of centroids (|C|). As the number of centroids (|C|) increased, the density of query points decreased, which was inefficient for batch processing of UBA.

도 20d 내지 도 20f에서 볼 수 있듯이, UBA는 모든 경우에 SEQ보다 최대 26.6배 빨랐다. 도 20d에서 볼 수 있듯이 UBA와 SEQ의 쿼리 처리 시간은 데이터 포인트의 치우친 분포가 NN 쿼리의 검색 공간에 큰 영향을 미치기 때문에 크게 변동했다. As can be seen in Figures 20D-20F, UBA was up to 26.6 times faster than SEQ in all cases. As shown in Fig. 20d, the query processing time of UBA and SEQ fluctuated greatly because the skewed distribution of data points greatly affected the search space of the NN query.

도 21a 및 도 21b는 UBASEG 및 UBACLS를 사용한 쿼리 처리 시간과 CAL 로드맵을 비교한 결과를 보여준다. UBA의 두 가지 버전, 즉 UBASEG와 UBACLS를 구현하고 평가하여 2단계 클러스터링 방법이 UBA의 일괄 처리와 |Q| 측면에서의 확장성에 미치는 영향을 조사했다. UBASEG는 가까운 쿼리 포인트를 쿼리 세그먼트로 변환하고 UBACLS는 근처 쿼리 포인트를 쿼리 클러스터로 변환한다. UBASEG 및 UBACLS는 각각 도 6a 및 도 6b에 도시되어 있다. 여기서, 괄호 안의 두 값은 각각 UBASEG 및 UBACLS에서 평가한 SP 쿼리 수를 나타낸다. 도시한 바와 같이, UBASEG가 평가한 SP 쿼리의 수는 UBACLS의 수보다 많았다. 21A and 21B show results of comparing query processing time and CAL roadmap using UBA SEG and UBA CLS . By implementing and evaluating two versions of UBA, namely UBA SEG and UBA CLS , a two-step clustering method was found to be consistent with UBA's batch processing and |Q| The effect on scalability in terms was investigated. UBA SEG converts nearby query points into query segments, and UBA CLS converts nearby query points into query clusters. UBA SEG and UBA CLS are shown in FIGS. 6A and 6B , respectively. Here, the two values in parentheses indicate the number of SP queries evaluated by UBA SEG and UBA CLS , respectively. As shown, the number of SP queries evaluated by UBA SEG was greater than that of UBA CLS .

도 21a를 참조하면, 데이터 포인트가 균일한 분포를 보일 때 UBASEG는 1K≤|Q|≤10K에 대해 UBACLS보다 최대 6.1배 더 빨랐다. 그러나 쿼리 포인트의 수|Q| 증가하면 UBACLS가 UBASEG보다 빠르며, 이는 UBACLS가 |Q|를 사용하여 UBASEG보다 더 잘 확장되었음을 의미한다. 특히, UBACLS는 |Q|=100K에 대해 UBASEG보다 1.5배 더 빨랐다. Referring to FIG. 21A, when data points show a uniform distribution, UBA SEG is up to 6.1 times faster than UBA CLS for 1K≤|Q|≤10K. However, the number of query points|Q| When it increases, UBA CLS is faster than UBA SEG , which means that UBA CLS scales better than UBA SEG with |Q|. In particular, UBA CLS was 1.5 times faster than UBA SEG for |Q|=100K.

도 21b를 참조하면, 데이터 포인트가 중심 분포를 나타낼 때 UBACLS는 모든 경우에 UBASEG보다 최대 2.2배 빨랐다. 따라서, UBACLS는 UBASEG보다 |Q|배 확장되었다고 볼 수 있다. 데이터 포인트의 분포가 쿼리 처리 시간에 상당한 영향을 미쳤다는 것을 의미한다. 특히, 데이터 포인트가 균일하고 중심 분포를 나타낼 때 UBACLS의 쿼리 처리 시간은 |Q|=100K에 대해 각각 1.5초와 497.7초였다. Referring to FIG. 21B , when the data points show a central distribution, UBA CLS was up to 2.2 times faster than UBA SEG in all cases. Therefore, it can be seen that UBA CLS is |Q| times larger than UBA SEG . This means that the distribution of data points has a significant impact on query processing time. In particular, when the data points are uniform and show a central distribution, the query processing time of UBA CLS was 1.5 seconds and 497.7 seconds for |Q|=100K, respectively.

본 발명에서는 동적 공간 네트워크에서 NN과 RN 쿼리로 구성된 SP 쿼리를 효율적으로 처리하기 위한 통합 배치 알고리즘(UBA)이 제안되었다. 본 발명의 UBA의 목표는 일괄 처리 중에 불필요한 거리 계산을 피하는 것이다. 따라서, UBA는 SP 쿼리의 2단계 클러스터링 및 일괄 처리를 수행하여 쿼리 클러스터에 대해 계산되는 SP 쿼리 수를 줄일 수 있다. 실험 결과, 본 발명의 UBA가 한 번에 하나의 쿼리 처리를 기반으로 하는 기존 알고리즘보다 성능이 우수하고 쿼리 수에 따라 잘 확장됨을 확인할 수 있었다. 본 발명의 UBA가 기존의 비교 알고리즘보다 최대 26.6배 빠른 것을 발견했다. In the present invention, a unified placement algorithm (UBA) is proposed to efficiently process SP queries composed of NN and RN queries in dynamic spatial networks. A goal of the UBA of the present invention is to avoid unnecessary distance calculations during batch processing. Thus, UBA can perform two-step clustering and batching of SP queries to reduce the number of SP queries computed for a query cluster. Experimental results show that the UBA of the present invention outperforms existing algorithms based on processing one query at a time and scales well with the number of queries. We found that our UBA was up to 26.6 times faster than the existing comparison algorithm.

본 발명의 UBA에는 몇 가지 장점이 있다. 첫째, 본 발명의 UBA는 SP 쿼리를 클러스터링하고 일괄 처리를 수행하여 불필요한 네트워크 탐색을 방지할 수 있다. 둘째, 본 발명의 UBA는 공간 네트워크를 위한 한 번에 하나의 쿼리 처리 알고리즘에 쉽게 통합될 수 있다. 그러나 본 발명의 UBA 역시 쿼리 포인트의 분포에 따라 성능이 매우 민감한 단점이 있다. 따라서, UBA는 특히 쿼리 포인트가 균일한 분포를 나타낼 때 순차 알고리즘과 유사한 성능을 보여준다. 본 발명의 UBA는 쿼리 포인트가 심하게 치우친 분포를 나타낼 때 순차 알고리즘보다 성능이 뛰어나다. The UBA of the present invention has several advantages. First, the UBA of the present invention clusters SP queries and performs batch processing to prevent unnecessary network searches. Second, the UBA of the present invention can be easily incorporated into one query processing algorithm at a time for spatial networks. However, the UBA of the present invention also has a disadvantage in that performance is very sensitive according to the distribution of query points. Thus, UBA shows similar performance to sequential algorithms, especially when the query points show a uniform distribution. The UBA of the present invention outperforms the sequential algorithm when the query points represent a highly skewed distribution.

본 발명의 통합 배치 솔루션은 공간 조인 쿼리 및 공간 키워드 쿼리와 같은 정교한 공간 쿼리의 분산 배치 처리를 위해 초대형 공간 네트워크에 적용될 수 있을 것으로 기대된다.The integrated batch solution of the present invention is expected to be applicable to a very large spatial network for distributed batch processing of sophisticated spatial queries such as spatial join queries and spatial keyword queries.

상술한 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술한 실시 예들 이외에도, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들도 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술한 실시 예들에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The foregoing are specific examples for carrying out the present invention. In addition to the above-described embodiments, the present invention will also include embodiments that can be simply or easily changed in design. In addition, the present invention will also include techniques that can be easily modified and practiced using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments and should not be defined, and should be defined by those equivalent to the claims of this invention as well as the claims to be described later.

Claims (4)

위치 기반 서비스 시스템의 동적 공간 네트워크에서의 공간 근접성 쿼리를 처리하는 방법에 있어서:
복수의 단말들로부터 공간 근접성(SP) 쿼리와 데이터 포인트를 수집하는 단계;
상기 공간 근접성 쿼리의 쿼리 포인트들을 쿼리 클러스터로 그룹화하는 단계;
최근접 이웃(NN) 쿼리와 범위(RN) 쿼리를 포함하는 상기 쿼리 클러스터에 대한 일괄 처리(Batch processing)를 위해 클러스터 검색 알고리즘을 실행하는 단계; 그리고
상기 클러스터 검색 알고리즘에 의해서 계산된 쿼리 결과를 상기 복수의 단말들로 반환하는 단계를 포함하는 공간 근접성 쿼리를 처리하는 방법.
A method for processing a spatial proximity query in a dynamic spatial network of a location-based service system comprising:
Collecting spatial proximity (SP) queries and data points from a plurality of terminals;
grouping query points of the spatial proximity query into query clusters;
executing a cluster search algorithm for batch processing of the query clusters comprising a nearest neighbor (NN) query and a range (RN) query; and
and returning a query result calculated by the cluster search algorithm to the plurality of terminals.
제 1 항에 있어서,
상기 클러스터 검색 알고리즘을 실행하는 단계는:
상기 쿼리 클러스터의 경계점에서의 클러스터 검색을 실행하여 후보 데이터 지점을 획득하는 단계; 그리고
상기 후보 데이터 지점에 대한 세그먼트 검색 알고리즘을 실행하는 단계를 포함하는 공간 근접성 쿼리를 처리하는 방법.
According to claim 1,
The step of executing the cluster search algorithm is:
acquiring candidate data points by performing a cluster search on boundary points of the query cluster; and
A method of processing a spatial proximity query comprising executing a segment search algorithm for the candidate data points.
제 2 항에 있어서,
상기 경계점에서의 클러스터 검색은,
상기 쿼리 클러스터에 상기 최근접 이웃(NN) 쿼리만 포함되는 경우, 상기 범위(RN) 쿼리만을 포함하는 경우, 그리고 상기 최근접 이웃(NN) 쿼리와 상기 범위(RN) 쿼리를 모두 포함하는 경우에 따라 데이터 포인트의 검색 조건이 가변되는 공간 근접성 쿼리를 처리하는 방법.
According to claim 2,
Cluster search at the boundary point,
When the query cluster includes only the nearest neighbor (NN) query, when it includes only the range (RN) query, and when it includes both the nearest neighbor (NN) query and the range (RN) query How to handle spatial proximity queries in which the search conditions for data points vary according to
제 2 항에 있어서,
상기 세그먼트 검색 알고리즘은, 상기 후보 데이터 포인트가 쿼리 세그먼트 내부에 존재할 때와, 상기 후보 데이터 포인트가 쿼리 세그먼트의 외부에 존재할 때에 상이한 거리값을 갖는 공간 근접성 쿼리를 처리하는 방법.
According to claim 2,
The segment search algorithm processes a spatial proximity query having different distance values when the candidate data point exists inside the query segment and when the candidate data point exists outside the query segment.
KR1020210176671A 2021-11-16 2021-12-10 Method for processing spatial proximity queries in dynamic spatial networks KR20230071671A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210157158 2021-11-16
KR20210157158 2021-11-16

Publications (1)

Publication Number Publication Date
KR20230071671A true KR20230071671A (en) 2023-05-23

Family

ID=86544307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210176671A KR20230071671A (en) 2021-11-16 2021-12-10 Method for processing spatial proximity queries in dynamic spatial networks

Country Status (1)

Country Link
KR (1) KR20230071671A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140102373A (en) 2013-02-13 2014-08-22 아주대학교산학협력단 A secure monitoring technique for moving k-nearest neighbor queries in road networks
KR101450525B1 (en) 2013-04-29 2014-10-23 아주대학교산학협력단 A method for computing safe exit points of moving range queries in road networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140102373A (en) 2013-02-13 2014-08-22 아주대학교산학협력단 A secure monitoring technique for moving k-nearest neighbor queries in road networks
KR101450525B1 (en) 2013-04-29 2014-10-23 아주대학교산학협력단 A method for computing safe exit points of moving range queries in road networks

Similar Documents

Publication Publication Date Title
US11551325B2 (en) Travel coordination system implementing pick-up location optimization
CN111366160B (en) Path planning method, path planning device and terminal equipment
US10119826B2 (en) System and method for accelerating route search
Huang et al. In-route skyline querying for location-based services
US20170131110A1 (en) Searching similar trajectories by locations
JP4032126B1 (en) Mobile object position estimation system and mobile object position estimation method
CN107101645B (en) A kind of paths planning method and path planning apparatus
EP2947608A1 (en) Systems and methods for personalized multi-destination trip planning
Sun et al. Online delivery route recommendation in spatial crowdsourcing
CN109284946B (en) Method, device and system for determining travel distance and logistics service travel time
Lu et al. An efficient framework for multirequest route planning in urban environments
CA3138392A1 (en) Efficient freshness crawl scheduling
US20200173789A1 (en) Systems and methods of routing optimization
JP2021526246A (en) Systems and methods to improve the visualization of traffic conditions
CN109858951A (en) New-energy automobile is powered on or changes the prediction of electricity demanding
Wei et al. Hsm-smcs: Task assignment based on hybrid sensing modes in sparse mobile crowdsensing
Huang A schedule-based pathfinding algorithm for transit networks using pattern first search
Cao et al. SHAREK*: A scalable matching method for dynamic ride sharing
KR20230071671A (en) Method for processing spatial proximity queries in dynamic spatial networks
US9959290B2 (en) Method for the continuous processing of two-level data on a system with a plurality of nodes
Hendawi et al. Panda∗: A generic and scalable framework for predictive spatio-temporal queries
Madria et al. Ridesharing-inspired trip recommendations
Ghosh et al. Opportunistic package delivery as a service on road networks
Ghosh et al. Computing Skyline Using Taxicab Geometry
Vu A framework for ridesharing recommendation services

Legal Events

Date Code Title Description
E902 Notification of reason for refusal