KR102127769B1 - Processing method of k-nearest neighbor join queries in road networks and device that processes k-nearest neighbor join queries in road networks - Google Patents

Processing method of k-nearest neighbor join queries in road networks and device that processes k-nearest neighbor join queries in road networks Download PDF

Info

Publication number
KR102127769B1
KR102127769B1 KR1020180091763A KR20180091763A KR102127769B1 KR 102127769 B1 KR102127769 B1 KR 102127769B1 KR 1020180091763 A KR1020180091763 A KR 1020180091763A KR 20180091763 A KR20180091763 A KR 20180091763A KR 102127769 B1 KR102127769 B1 KR 102127769B1
Authority
KR
South Korea
Prior art keywords
data
nearest
node
join query
segment
Prior art date
Application number
KR1020180091763A
Other languages
Korean (ko)
Other versions
KR20200016544A (en
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 경북대학교 산학협력단
Priority to KR1020180091763A priority Critical patent/KR102127769B1/en
Publication of KR20200016544A publication Critical patent/KR20200016544A/en
Application granted granted Critical
Publication of KR102127769B1 publication Critical patent/KR102127769B1/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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

도로 네트워크 상에서 k-최근접 조인 질의를 처리하는 장치가 개시된다. 상기 장치는, 클라이언트 단말로부터 적어도 하나 이상의 객체에 대한 k-최근접 질의 요청을 수신하는 수신부; 상기 요청에 응답하여, 상기 단말의 위치를 기준으로 하는 k-최근접 질의 결과를 연산하는 질의 결과 연산부; 및 상기 요청에 응답하여, 상기 단말의 위치를 기준으로 하는 k-최근접 질의 결과를 상기 단말로 전송하는 전송부; 를 포함할 수 있고, 상기 질의 결과 연산부는 제1데이터 집합 R에 포함된 제1데이터 객체들을 제1데이터 세그먼트로 정의하고, 상기 제1데이터 세그먼트 내에 포함된 2개의 제1데이터 객체에 대해 k-최근접 이웃 조인 질의를 수행하고, 상기 제1데이터 세그먼트 내에 포함된 나머지 제1데이터 객체에 대해 k-최근접 이웃 서치를 수행할 수 있다.An apparatus for processing a k-nearest join query on a road network is disclosed. The apparatus includes: a receiver configured to receive a k-nearest query request for at least one object from a client terminal; A query result calculating unit for calculating a k-nearest query result based on the location of the terminal in response to the request; And a transmission unit, in response to the request, transmitting a k-nearest query result based on the location of the terminal to the terminal. It may include, the query result operation unit defines the first data object included in the first data set R as a first data segment, k- for two first data objects included in the first data segment A nearest neighbor join query may be performed, and k-nearest neighbor search may be performed on the remaining first data objects included in the first data segment.

Description

도로 네트워크에서 k-최근접 이웃 조인 질의 처리 방법 및 도로 네트워크에서 k-최근접 조인 질의를 처리하는 장치{PROCESSING METHOD OF K-NEAREST NEIGHBOR JOIN QUERIES IN ROAD NETWORKS AND DEVICE THAT PROCESSES K-NEAREST NEIGHBOR JOIN QUERIES IN ROAD NETWORKS}Method for processing k-nearest neighbor join query in road network and device for processing k-nearest join query in road network TECHNICAL SERVICES ROAD NETWORKS}

본 발명은, 도로 네트워크에서 k-최근접 조인 질의를 처리하는 방법에 관한 발명이다. 보다 구체적으로는, 도로 네트워크에서 k-최근접 조인 질의 처리 시간을 줄일 수 있는 방법에 관한 발명이다.The present invention relates to a method of processing a k-nearest join query in a road network. More specifically, the present invention relates to a method of reducing k-nearest join query processing time in a road network.

이동 통신망, GPS 등과 같은 위치 탐색 및 서비스 기술이 발전함에 따라, 최근에는 이동 객체의 위치 기반 서비스를 지원하는 응용 분야에 대한 관심이 높아졌다. 이동 객체의 위치 기반 서비스는 이동 객체와 주유소 등과 같은 정적 객체의 위치 정보를 효율적으로 검색하기 위한 k최근접 이웃 검색을 요구한다.As location search and service technologies, such as mobile communication networks and GPS, have developed, interest in applications that support location-based services of mobile objects has recently increased. The location-based service of a moving object requires a k-nearest neighbor search to efficiently retrieve the location information of a moving object and a static object such as a gas station.

도로 네트워크 정보, 이동 객체의 정보, 정적 객체 정보 등이 저장된 데이터베이스를 도로 네트워크 데이터베이스(road network databases)라 하며, 도로 네트워크 데이터베이스에서 도로 네트워크는 방향성을 가진 그래프로 모델링 된다.The database storing road network information, moving object information, static object information, etc. is called a road network database, and in the road network database, the road network is modeled as a directional graph.

하나의 도로 세그먼트(road segment)는 그래프의 간선에 해당되며, 서로 다른 두 도로 세그먼트가 만나는 지점이 그래프의 노드에 해당된다. 또한, 도로 네트워크 위에 정류소, 학교, 호텔 등과 같은 시설물들은 정적 객체로 모델링 되며, 자동차, 사람과 같은 이동성을 가지고 있는 객체는 이동 객체로 모델링 된다.One road segment corresponds to the edge of the graph, and the point where two different road segments meet corresponds to the node of the graph. In addition, facilities such as stops, schools and hotels on the road network are modeled as static objects, and objects with mobility such as cars and people are modeled as moving objects.

도로 네트워크 데이터베이스에서 사용되는 질의들은 K최근접 이웃 검색(k-nearest neighbor queries), 영역 질의(range queries), 공간 조인 질의(spatial join queries) 등이 있다. 기존 유클리드 공간상에서는 임의의 두 객체의 절대 위치만으로도 그 객체들 간의 유클리드 거리를 계산할 수 있다. 그러나 도로 네트워크 공간상에서 이동 객체는 미리 정의된 도로 네트워크 위로만 움직일 수 있기 때문에 객체의 절대 위치만으로 객체들 간의 네트워크 거리(network distance)를 계산할 수 없다. 여기서, 두 객체간의 네트워크 거리란 도로 네트워크에서 임의의 두 객체간의 최단 경로 상에 존재하는 도로 세그먼트 길이들의 총 합이다. 즉, 절대 위치가 같아도 두 점간을 연결하는 네트워크의 상황에 따라 거리가 달라지기 때문에 임의의 두 점간의 네트워크 거리는 두 점의 절대 위치만을 가지고 계산할 수 없다. 네트워크 거리를 효율적으로 구하기 위한 다양한 방법들이 연구되어 왔으며, 대표적인 예로는 IER 기법, INE 기법, VN 기법 등이 있다.Queries used in the road network database include K-nearest neighbor queries, range queries, and spatial join queries. In the existing Euclidean space, the Euclidean distance between the two objects can be calculated using only the absolute positions of any two objects. However, in a road network space, since a moving object can move only over a predefined road network, it is impossible to calculate a network distance between objects based on the absolute position of the object. Here, the network distance between two objects is the total sum of the lengths of road segments existing on the shortest path between any two objects in the road network. That is, even if the absolute positions are the same, the distance varies depending on the situation of the network connecting the two points. Therefore, the network distance between any two points cannot be calculated using only the absolute positions of the two points. Various methods have been studied to efficiently obtain the network distance, and typical examples are IER technique, INE technique, and VN technique.

IER 기법은 유클리드 거리가 네트워크 거리보다 항상 작거나 같은 성질을 이용한다. 먼저, 유클리드 거리를 기준으로 후보들을 찾고, 이들만을 대상으로 실제 네트워크 거리를 구한다. 저장 공간 오버헤드가 작다는 장점을 가지고 있지만, 여러 번의 시행 착오를 겪기 때문에 질의 처리 성능이 크게 떨어진다.The IER technique uses a property where the Euclidean distance is always less than or equal to the network distance. First, candidates are searched based on the Euclidean distance, and the actual network distance is determined only for them. It has the advantage of small storage space overhead, but the query processing performance is greatly reduced due to several trial and error.

INE 기법은 질의 점으로부터 도로 세그먼트를 차례로 확장해 가면서 정적 객체의 유무를 검색한다. IER 기법과 마찬가지로, 저장 공간 오버헤드가 작다는 장점을 가지고 있지만, 다수의 디스크 액세스가 필요하기 때문에 질의 처리 성능이 좋지 않다. VN 기법은 각 정적 객체와 인접한 다른 정적 객체간의 거리가 같은 지점들을 기준으로 전체 네트워크 공간을 셀들의 집합으로 나눈다. 효과적인 질의 처리를 위하여 각 셀 안의 모든 정적 객체, 노드, 셀 경계선간 거리를 선계산(pre-computation) 해둔다.The INE technique searches for the presence or absence of a static object by expanding road segments sequentially from the query point. As with the IER technique, it has the advantage of small storage space overhead, but the query processing performance is poor because it requires a large number of disk accesses. The VN technique divides the entire network space into a set of cells based on points having the same distance between each static object and other adjacent static objects. For effective query processing, the distance between all static objects, nodes, and cell boundaries in each cell is pre-computed.

VN 기법은 IER 기법 및 INE 기법과 비교하여 질의 처리 성능이 뛰어 나지만, 저장 공간의 오버헤드가 지나치게 크다는 단점이 있다.The VN technique has superior query processing performance compared to the IER technique and INE technique, but has a disadvantage that the overhead of storage space is too large.

이러한 종래 최단거리 계산 방법의 불합리한 점을 극복하고 서버와의 통신비용을 절감하고 연산방법을 단순화시킬 수 있는 k최근접 질의 연산 방법 및 장치에 대한 요구가 높아지고 있는 실정이다.There is an increasing demand for a k-nearest query calculation method and apparatus capable of overcoming the irrationality of the conventional shortest distance calculation method, reducing communication cost with a server, and simplifying the calculation method.

k-최근접 조인 질의처리 알고리즘은 두 데이터 집합 R과 S를 기반으로 R의 모든 레코드에 대해 S의 데이터 중 가장 인접한 k개의 레코드를 탐색하는 알고리즘으로써, 대용량 데이터 분석을 위한 중요한 질의 처리 알고리즘이다. k-means clustering, k-medoids clustering, outlier detection 등의 데이터 마이닝 및 분석을 요구하는 응용 분야에서 활용되고 있다. 그러나 기존 k-최근접점 조인 질의처리 알고리즘은 높은 인덱스 구축비용 문제로 인해 대용량 데이터 처리에 적합하지 않은 문제점을 지닌다.The k-nearest join query processing algorithm is an algorithm that searches the nearest k records of S data for all records in R based on two data sets R and S, and is an important query processing algorithm for analyzing large amounts of data. It is used in applications requiring data mining and analysis such as k-means clustering, k-medoids clustering, and outlier detection. However, the existing k-nearest point join query processing algorithm has a problem that is not suitable for processing large amounts of data due to a high index construction cost problem.

본 발명에서는, 도로 네트워크 상에서 실행되는 k-최근접 이웃 조인 질의를 효율적으로 처리하고자 한다.In the present invention, it is intended to efficiently process a k-nearest neighbor join query executed on a road network.

또한 본 발명에서는, 도로 네트워크 상에서 실행되는 k-최근접 이웃 조인 질의의 처리 시간을 감소시키고자 한다.Also, in the present invention, it is intended to reduce the processing time of a k-nearest neighbor join query executed on a road network.

본 발명에 따르면, 도로 네트워크 상의 제1데이터 집합 R, 제2데이터 집합 S 중 하나의 데이터 집합에 포함된 객체로부터 가장 가까운 k개의 객체를 다른 데이터 집합에 있는 객체에서 선택하는 k-최근접 조인 질의 처리 방법으로써, 제1데이터 집합 R에 포함된 제1데이터 객체들을 제1데이터 세그먼트의 집합으로 정의하는 단계; 상기 정의된 제1데이터 세그먼트 내에 포함된 일부의 제1데이터 객체들에 대해 K최근접 이웃 조인 질의를 수행하는 단계; 상기 정의된 제1데이터 세그먼트 내에 포함된 나머지 제1데이터 객체에 대해 K최근접 이웃 서치를 수행하는 단계; 를 포함하는 k-최근접 조인 질의 처리 방법이 개시될 수 있다.According to the present invention, the k-nearest join query selects k objects closest to an object included in one of the first data set R and the second data set S on the road network from objects in another data set. A processing method, comprising: defining first data objects included in the first data set R as a set of first data segments; Performing a K nearest neighbor join query on some first data objects included in the defined first data segment; Performing K nearest neighbor search on the remaining first data objects included in the defined first data segment; A k-nearest join query processing method may be disclosed.

본 발명의 일 실시예에 따르면, 상기 제1데이터 집합 R에 포함된 제1데이터 객체들을 제1데이터 세그먼트의 집합으로 정의하는 단계; 는, 상기 도로 네트워크 상의 노드를 기준으로 교차하는 도로 세그먼트의 개수를 판별하는 단계; 상기 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개 혹은 3개 이상인 노드끼리 이어진 도로 세그먼트 상에 포함된 제1 데이터 객체들을 잇는 시퀀스를 제1데이터 세그먼트로 정의하는 단계; 를 포함할 수 있다. According to an embodiment of the present invention, defining the first data objects included in the first data set R as a set of first data segments; The method includes: determining a number of road segments intersecting based on a node on the road network; Defining a sequence that connects the first data objects included on the road segment in which the number of road segments intersecting with respect to the node is 1 or 3 or more nodes, as a first data segment; It may include.

상기 제1데이터 세그먼트에 포함되는 제1데이터 객체의 개수가 1개 혹은 2개일 경우, 각각의 제1데이터 객체에 대한 K최근접 조인 질의를 수행하는 단계;를 포함할 수 있다.And if the number of first data objects included in the first data segment is 1 or 2, performing a K closest join query for each first data object.

상기 제1데이터 세그먼트에 포함되는 제1데이터 객체의 개수가 3개 이상일 경우, 상기 제1데이터 세그먼트의 양 끝단에 위치하는 2개의 제1데이터 객체에 대한 K최근접 이웃 질의를 수행하는 단계; 및 상기 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체를 제외한 제1데이터 세그먼트의 내부에 포함된 나머지 제1데이터 객체들에 대해 K최근접 이웃 서치를 진행하는 단계; 를 더 포함할 수 있다.If the number of first data objects included in the first data segment is 3 or more, performing a K nearest neighbor query on two first data objects located at both ends of the first data segment; And performing K nearest neighbor search for the remaining first data objects included in the first data segment except for the first data objects located at both ends of the first data segment. It may further include.

본 발명의 일 실시예에 있어서, 상기 K최근접 이웃 서치를 진행하는 단계는, 상기 제1데이터 세그먼트의 내부에 포함된 제2데이터 객체들을 추출하는 단계; 상기 제1데이터 세그먼트의 양 끝단에 위치하는 2개의 제1데이터 객체들에 대한 K-최근접 조인 질의 처리로 도출된 K번째로 가까운 제2데이터 객체들을 추출하는 단계; 상기 추출된 제2데이터 객체들의 집합을 정의하는 단계; 상기 내부에 포함된 나머지 제1데이터 객체들에 대해, 상기 정의된 제2데이터 객체들의 집합에 포함된 제2데이터 객체와의 거리를 측정하여 상기 내부에 포함된 나머지 제1데이터 객체들과 가장 가까운 k개의 객체를 추출하는 단계; 를 포함할 수 있다.In one embodiment of the present invention, the step of performing the K nearest neighbor search comprises: extracting second data objects included in the first data segment; Extracting K-th closest second data objects derived by K-nearest join query processing for two first data objects located at both ends of the first data segment; Defining a set of the extracted second data objects; For the remaining first data objects included in the inside, a distance from the second data object included in the defined set of second data objects is measured to be closest to the remaining first data objects included in the inside. extracting k objects; It may include.

본 발명의 다른 실시예에 있어서, k-최근접 조인 질의 처리 방법은, 상기 도로 네트워크 상의 임의의 한 노드에 근접한 제1데이터 세그먼트들을 추출하는 단계; 상기 노드에 근접한 제1데이터 세그먼트의 개수가 2개 이상일 경우 상기 노드를 기준으로 k최근접 이웃 조인 질의를 수행하는 단계;를 포함할 수 있다.In another embodiment of the present invention, a k-nearest join query processing method includes: extracting first data segments proximate to any one node on the road network; And performing a k nearest neighbor join query based on the node when the number of the first data segments adjacent to the node is two or more.

상기 다른 실시예에 있어서, 상기 노드에 근접한 제1데이터 세그먼트의 개수가 2개 이상일 경우 상기 노드를 기준으로 k최근접 이웃 조인 질의를 수행하는 단계;는, 상기 노드에 근접한 제1데이터 세그먼트에 포함되는 제1데이터 객체의 개수가 2개 이상일 수 있고, 상기 임의의 한 노드는 상기 노드를 기준으로 교차하는 도로 세그먼트의 개수가 3개 이상인 노드일 수 있다.In another embodiment, if the number of first data segments proximate to the node is two or more, performing k nearest neighbor join query based on the node; is included in the first data segment proximate to the node. The number of first data objects may be two or more, and the arbitrary one node may be a node having three or more road segments intersecting based on the node.

본 발명에서는, 도로 네트워크 상에서 실행되는 k-최근접 이웃 조인 질의를 효율적으로 처리할 수 있다.In the present invention, the k-nearest neighbor join query executed on the road network can be efficiently processed.

또한 본 발명에서는, 도로 네트워크 상에서 실행되는 k-최근접 이웃 조인 질의의 처리 시간을 감소시킬 수 있다.In addition, in the present invention, the processing time of the k-nearest neighbor join query executed on the road network can be reduced.

도 1은 도로 네트워크의 일 예를 나타내는 도면이다.
도 2는 본 발명에 따른 k-최근접 조인 질의 처리 장치의 주요 구성을 나타낸 블록도이다.
도 3은 본 발명에 따른 k-최근접 조인 질의 처리 장치가 포함하는 질의 결과 연산부의 주요 구성을 나타낸 블록도이다.
도 4는 본 발명에 따른 k-최근접 조인 질의 처리 장치가 포함하는 질의 결과 처리 모듈의 주요 구성을 나타낸 블록도이다.
도 5는 도로 네트워크 상에서 k-최근접 조인 질의 처리를 설명하기 위한 도면이다.
도 6은 도 5에서 제1데이터 세그먼트를 정의하는 것을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 필요한 전제를 증명하는 것을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 있어서 거리를 계산하는 것을 설명하기 위한 도면이다.
도 9는 본 발명의 다른 실시예에 있어서 k-최근접 조인 질의를 설명하기 위한 도면이다.
도 10 내지 도 11은 본 발명의 다른 실시예에 있어서, k-최근접 조인 질의 방법을 설명하기 위한 도면이다.
도 12 내지 도 14는, 본 발명에 따른 k-최근접 조인 질의 처리 방법을 사용했을 때의 처리 결과를 나타내는 그래프들이다.
1 is a diagram showing an example of a road network.
2 is a block diagram showing a main configuration of a k-nearest join query processing apparatus according to the present invention.
3 is a block diagram showing a main configuration of a query result operation unit included in the k-nearest join query processing apparatus according to the present invention.
4 is a block diagram showing the main configuration of a query result processing module included in the k-nearest join query processing apparatus according to the present invention.
5 is a diagram for explaining k-nearest join query processing on a road network.
FIG. 6 is a diagram for describing defining a first data segment in FIG. 5.
7 is a view for explaining that proves the premise required for an embodiment of the present invention.
8 is a view for explaining calculating a distance in an embodiment of the present invention.
9 is a diagram for explaining a k-nearest join query in another embodiment of the present invention.
10 to 11 are views for explaining a k-nearest join query method according to another embodiment of the present invention.
12 to 14 are graphs showing processing results when the k-nearest join query processing method according to the present invention is used.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 또한, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present invention pertains may easily practice. However, the present invention can be implemented in many different forms and is not limited to the embodiments described herein. In addition, in the detailed description of the preferred embodiment of the present invention, when it is determined that detailed descriptions of related known functions or configurations may unnecessarily obscure the subject matter of the present invention, detailed descriptions thereof will be omitted. In addition, the same reference numerals are used throughout the drawings for parts having similar functions and functions.

어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 구체적으로, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.“Including” a component means that other components may be further included instead of excluding other components, unless otherwise stated. Specifically, the terms “include” or “have” are intended to indicate that a feature, number, step, action, component, part, or combination thereof described in the specification exists, or that one or more other features or It should be understood that the presence or addition possibilities of numbers, steps, actions, components, parts or combinations thereof are not excluded in advance.

제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components. For example, the first component may be referred to as a second component without departing from the scope of the present invention, and similarly, the second component may be referred to as a first component.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한 도면에서 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.Singular expressions include plural expressions unless the context clearly indicates otherwise. In addition, the shape and size of elements in the drawings may be exaggerated for a more clear description.

본 명세서 전체에서 사용되는 '~부' 및 '~모듈' 은 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부' 및 '~모듈'이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부' 및 '~모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. The'~ unit' and'~ module' used throughout this specification are units for processing at least one function or operation, and may mean hardware components such as software, an FPGA, or an ASIC. However, the terms'~unit' and'~module' are not limited to software or hardware. The'~unit' and'~module' may be configured to be in an addressable storage medium, or may be configured to reproduce one or more processors.

일 예로서 '~부' 및 '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함할 수 있다. 구성요소와 '~부' 및 '~모듈'에서 제공하는 기능은 복수의 구성요소 및 '~부' 및 '~모듈'들에 의해 분리되어 수행될 수도 있고, 다른 추가적인 구성요소와 통합될 수도 있다.As an example,'~unit' and'~module' are components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, It can include procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays and variables. Components and functions provided by'~unit' and'~module' may be performed separately by a plurality of components and'~unit' and'~module', or may be integrated with other additional components. .

이하에서는 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 일반적인 도로 네트워크 상에 위치한 각각의 객체들을 표현하는 도면이다. 상기 도 1에서는, 삼각형으로 표시된 관광명소와, 사각형으로 표시된 호텔들이 도로 네트워크 상에 배치되어 있다. 실제 도로 네트워크는 도 1과 같이 복잡하게 도로가 얽혀져 있으며, 얽힌 도로들 상에 무작위적으로 호텔 및 관광명소가 배치되어 있다. 여행자의 경우를 예로 들면, 자신이 묵는 호텔에서 가장 가까운 관광명소가 어디에 해당하는지 궁금할 수 있으나, 도로 네트워크 상에서는 상기에서 설명한 바와 같이 유클리드 최단 거리를 사용할 수 없기 때문에, 가장 가까운 관광명소를 찾고자 할 때, 모든 관광명소에 대해 도로 네트워크 상의 거리를 고려하여 거리를 측정한 결과 가장 가까운 k개의 관광명소를 찾아야 한다. 그러나 주변의 모든 관광명소에 대해 거리를 일일이 측정할 경우에는 굉장히 많은 시간이 소요되며, 도로 네트워크가 복잡하게 얽혀 있고 호텔의 수 및 관광명소의 수가 다수일 경우 연산 시간이 훨씬 길어지는 단점이 발생하여, 효율적인 처리가 어려운 문제점이 발생한다.1 is a diagram representing respective objects located on a general road network. In FIG. 1, tourist attractions indicated by triangles and hotels indicated by squares are arranged on a road network. In the actual road network, roads are complicatedly entangled as shown in FIG. 1, and hotels and tourist attractions are randomly arranged on the roads. In the case of a traveler, for example, you may be wondering where the closest tourist attraction to your hotel is, but on the road network, you cannot use the shortest Euclidean distance as described above, so when you want to find the nearest tourist attraction However, as a result of measuring the distance in consideration of the distance on the road network for all tourist attractions, it is necessary to find the nearest k tourist attractions. However, it takes a very long time to measure distances for all the nearby tourist attractions, and when the road network is complicated and the number of hotels and the number of tourist attractions is large, the calculation time is much longer. However, a problem arises that is difficult to process efficiently.

이하에서는 도 1과 같은 도로 네트워크 상에서 k-최근접 이웃 조인 질의를 효율적으로 처리하는 방법에 대해 자세히 설명한다.Hereinafter, a method of efficiently processing a k-nearest neighbor join query on a road network as shown in FIG. 1 will be described in detail.

도 2는 본 발명에 따른 k-최근접 조인 질의 처리 장치(100)의 주요 구성을 나타낸 블록도이다. K-최근접 조인 질의 처리 장치(100)는 수신부(110)와, 전송부(130) 및 질의 결과 연산부(120)를 포함할 수 있다.2 is a block diagram showing the main configuration of the k-nearest join query processing apparatus 100 according to the present invention. The K-nearest join query processing apparatus 100 may include a receiving unit 110, a transmitting unit 130, and a query result calculating unit 120.

수신부(110)는, 클라이언트 단말(미도시)로부터의 질의 요청정보를 수신할 수 있다. 상기 클라이언트 단말에서의 질의 요청정보는, 질의 요구조건에 부합되는 객체로서, 질의하는 클라이언트 단말의 위치를 기준으로 가장 근접하게 위치하는 일정 개수(k개)의 제2데이터 객체 정보이다. 상기 일정 개수는 클라이언트가 클라이언트 단말에서 원하는 숫자를 입력할 수 있다. 상기 숫자는 정수일 수 있다.The receiver 110 may receive query request information from a client terminal (not shown). The query request information in the client terminal is an object that satisfies the query requirement and is a predetermined number (k) of second data object information located closest to the location of the querying client terminal. The predetermined number may be input by the client to the desired number in the client terminal. The number may be an integer.

질의 결과 연산부(120)는, 수신부(110)에서 수신된 질의 요청정보에 응답하되, 제1데이터 집합에 포함된 제1데이터 객체들을 제1데이터 세그먼트로 정의하고, 상기 제1데이터 세그먼트 내에 포함된 2개의 제1데이터 객체에 대해 k-최근접 이웃 조인 질의를 수행하고, 상기 제1데이터 세그먼트 내에 포함된 나머지 제1데이터 객체에 대해 k-최근접 이웃 서치를 수행할 수 있다. 상기 질의 결과 연산부의 주요 구성은 도 3에서 설명된다.The query result calculating unit 120 responds to the query request information received from the receiving unit 110, defines first data objects included in the first data set as a first data segment, and is included in the first data segment. A k-nearest neighbor join query may be performed on two first data objects, and a k-nearest neighbor search may be performed on the remaining first data objects included in the first data segment. The main configuration of the query result operation unit is described in FIG. 3.

전송부(130)는, 상기 질의 결과 연산부(120)에서 연산된 질의하는 클라이언트 단말의 위치를 기준으로 가장 근접하게 위치하는 일정 개수(k개)의 제2데이터 객체 정보를 클라이언트 단말로 전송할 수 있다.The transmitting unit 130 may transmit a predetermined number (k) of second data object information located closest based on the location of the querying client terminal calculated by the query result calculating unit 120 to the client terminal. .

도 3은 본 발명에 따른 k-최근접 조인 질의 처리 장치(100)가 포함하는 질의 결과 연산부(120)의 주요 구성을 나타낸 블록도이다.3 is a block diagram showing the main configuration of the query result operation unit 120 included in the k-nearest join query processing apparatus 100 according to the present invention.

상기 질의 결과 연산부(120)는 노드 결정 모듈(121), 데이터 객체 검색 모듈(122), 그룹화 모듈(123), 질의 결과 처리 모듈(124)을 포함할 수 있다.The query result calculation unit 120 may include a node determination module 121, a data object search module 122, a grouping module 123, and a query result processing module 124.

노드 결정 모듈(121)은 도로 네트워크 상의 노드를 기준으로 교차하는 도로 세그먼트의 개수를 판별할 수 있다. 도로 네트워크 상의 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개일 경우, 2개일 경우 및 3개 이상일 경우로 노드를 분류하여 결정할 수 있다. 자세한 노드 분류 방법은 이하에서 설명한다.The node determination module 121 may determine the number of road segments intersecting based on the nodes on the road network. The number of road segments intersecting based on the nodes on the road network may be determined by classifying the nodes into one case, two cases, and three or more cases. The detailed node classification method will be described below.

데이터 객체 검색 모듈(122)은, 상기 노드 결정 모듈(121)에서 결정된 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개 혹은 3개 이상인 노드끼리 이어진 도로 세그먼트 상에 위치하는 제1데이터 객체 및 제2데이터 객체를 검색할 수 있다. 데이터 객체 검색 모듈(122)을 통해, 후술할 제1데이터 세그먼트를 정의하는 데 필요한 제1데이터 객체를 추출할 수 있으며, 후술할 k-최근접 서치 모듈에서 필요한 제1데이터 세그먼트 상에 위치하는 제2데이터 객체를 추출할 수 있다.The data object retrieval module 122 may include a first data object and a first data object located on a road segment in which nodes having one or three or more road segments cross each other based on the node determined by the node determination module 121. 2Data objects can be searched. Through the data object search module 122, a first data object required to define a first data segment to be described later can be extracted, and a product located on a first data segment required in a k-nearest search module to be described later. 2Data objects can be extracted.

그룹화 모듈(123)은, 상기 노드 결정 모듈(121)에서 결정된 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개 혹은 3개 이상인 노드끼리 이어진 도로 세그먼트 상에 위치하는 제1데이터 객체들을 제1데이터 세그먼트로 정의할 수 있다. 그룹화 모듈(123)에서 제1데이터 세그먼트를 정의하는 방법은 후술한다.The grouping module 123 is the first data of the first data objects located on the road segment in which the number of road segments intersecting one or more nodes is greater than or equal to 1 based on the node determined by the node determination module 121. It can be defined as a segment. The method of defining the first data segment in the grouping module 123 will be described later.

질의 결과 처리 모듈(124)은 상기 그룹화 모듈(123)에서 생성된 제1데이터 세그먼트에 대한 k-최근접 조인 질의를 수행할 수 있다. 질의 결과 처리 모듈(124)은 제1 k-최근접 조인 질의 처리 모듈(1200)과 제2 k-최근접 조인 질의 처리 모듈(1300)을 포함하여, 두 가지 방법으로 k-최근접 조인 질의를 수행할 수 있다. 질의 결과 처리 모듈(124)의 주요 구성은 도 4에서 설명된다.The query result processing module 124 may perform a k-nearest join query on the first data segment generated by the grouping module 123. The query result processing module 124 includes a first k-nearest join query processing module 1200 and a second k-nearest join query processing module 1300, and performs k-nearest join queries in two ways. It can be done. The main configuration of the query result processing module 124 is described in FIG. 4.

도 4는, 본 발명에 따른 k-최근접 조인 질의 처리 장치(100)가 포함하는 질의 결과 처리 모듈(124)의 주요 구성을 나타낸 블록도이다.4 is a block diagram showing the main configuration of the query result processing module 124 included in the k-nearest join query processing apparatus 100 according to the present invention.

질의 결과 처리 모듈(124)은, 제1데이터 세그먼트 분류 모듈(1100), 제1 k-최근접 조인 질의 처리 모듈(1200), 제1 저장 모듈(1400), k-최근접 서치 모듈(1600)을 포함할 수 있다. 또한 상기 질의 결과 처리 모듈(124)은, 제2 저장 모듈(1500) 및 제2 k-최근접 조인 질의 처리 모듈(1300)을 더 포함할 수 있다.The query result processing module 124 includes a first data segment classification module 1100, a first k-nearest join query processing module 1200, a first storage module 1400, and a k-nearest search module 1600. It may include. In addition, the query result processing module 124 may further include a second storage module 1500 and a second k-nearest join query processing module 1300.

제1데이터 세그먼트 분류 모듈(1100)은, k-최근접 조인 질의를 수행하기 이전에 상기 그룹화 모듈(123)에서 정의된 제1데이터 세그먼트를 일정 기준으로 분류한다. 상기 제1데이터 세그먼트를 분류하는 기준은, 상기 제1데이터 세그먼트 상에 포함되어 있는 제1데이터 객체의 개수를 기준으로 할 수 있다. 상기 분류는, 제1데이터 세그먼트 상에 포함되어 있는 제1데이터 객체의 개수가 1개인 경우, 2개인 경우 및 3개 이상인 경우를 기준으로 하여 분류할 수 있다.The first data segment classification module 1100 classifies the first data segment defined in the grouping module 123 on a predetermined basis before performing the k-nearest join query. A criterion for classifying the first data segment may be based on the number of first data objects included on the first data segment. The classification may be classified based on the case where the number of first data objects included in the first data segment is 1, 2, and 3 or more.

제1 k-최근접 조인 질의 처리 모듈(1200)은, 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체에 대한 k-최근접 조인 질의를 수행한다. 상기 제1데이터 세그먼트 분류 모듈(1100)에서 진행된 분류 기준에 의해, 제1데이터 세그먼트 상에 포함되어 있는 제1데이터 객체의 개수가 1개일 경우에는, 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체가 없이 1개의 객체만 존재하는 것이므로, 1개의 제1데이터 객체에 대해 k-최근접 조인 질의 처리를 수행한다. 제1데이터 세그먼트 상에 포함되어 있는 제1데이터 객체의 개수가 2개일 경우에는, 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체가 2개의 제1데이터 객체에 해당할 것이므로, 2개의 제1데이터 객체에 대해 k-최근접 조인 질의 처리를 수행한다.The first k-nearest join query processing module 1200 performs a k-nearest join query on the first data object located at both ends of the first data segment. When the number of first data objects included in the first data segment is one according to the classification criteria performed in the first data segment classification module 1100, the first data segments are located at both ends of the first data segment. Since there is only one object without a data object, k-nearest join query processing is performed on one first data object. When the number of first data objects included in the first data segment is two, since the first data objects located at both ends of the first data segment will correspond to the two first data objects, the two data objects 1 Perform k-nearest join query processing on data objects.

제1데이터 세그먼트 상에 포함되어 있는 제1데이터 객체의 개수가 3개 이상일 경우에는, 제1데이터 세그먼트의 양 끝단에 위치하는 2개의 제1데이터 객체에 대해 k-최근접 조인 질의 처리를 수행하고, 상기 양 끝단에 위치하지 않은 나머지 제1데이터 객체에 대해서는 k-최근접 서치 모듈(1600)을 통해 k-최근접 서치를 수행하게 된다. 상세한 내용은 후술한다.When the number of first data objects included in the first data segment is 3 or more, a k-nearest join query processing is performed on two first data objects located at both ends of the first data segment, , K-nearest search is performed through the k-nearest search module 1600 for the remaining first data objects not located at both ends. Details will be described later.

제1 저장 모듈(1400)은, 상기 제1 k-최근접 조인 질의 처리 모듈(1200)에서 수행된 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체에 대해 k-최근접 조인 질의를 수행한 결과로 나타난 상기 양 끝단에 위치하는 제1데이터 객체와 가장 가까운 k개의 제2데이터 객체들을 저장할 수 있다. 제1 저장 모듈(1400)은 상기 제1 k-최근접 조인 질의 처리 모듈(1200)에서 수행된 결과 데이터를 저장할 수 있다.The first storage module 1400 performs a k-nearest join query on a first data object located at both ends of the first data segment performed by the first k-nearest join query processing module 1200 As a result, k second data objects closest to the first data object located at both ends may be stored. The first storage module 1400 may store result data performed in the first k-nearest join query processing module 1200.

제2 저장 모듈(1500)은, 상기 그룹화 모듈(123)에서 정의된 제1데이터 세그먼트 상에 포함되어 있는 제2데이터 객체들을 저장할 수 있다.The second storage module 1500 may store second data objects included in the first data segment defined in the grouping module 123.

k-최근접 서치 모듈(1600)은, 상기 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체를 제외한 내부에 포함된 제1데이터 객체에 대해 K최근접 이웃 서치를 진행할 수 있다. K-최근접 서치 모듈(1600)은, 상기 제1 k-최근접 조인 질의 처리 모듈(1200)에서 k-최근접 조인 질의 처리가 수행되지 않은 제1데이터 객체에 대해 k-최근접 이웃 서치를 수행할 수 있다.The k-nearest search module 1600 may conduct a K-nearest neighbor search for the first data object included therein, except for the first data object located at both ends of the first data segment. The K-nearest search module 1600 searches the k-nearest neighbor search for the first data object in which the k-nearest join query processing is not performed in the first k-nearest join query processing module 1200. It can be done.

k-최근접 서치 모듈(1600)은 거리 계산 모듈(1610)을 포함할 수 있다. 거리 계산 모듈(1610)은, 상기 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체를 제외한 내부에 포함된 제1데이터 객체에 대해 상기 제1 저장 모듈(1400) 및 제2 저장 모듈(1500)에 저장된 제2데이터 객체들과의 거리를 계산할 수 있다. 거리 계산 모듈(1610)은 제1 k-최근접 조인 질의 처리 모듈(1200)에서 k-최근접 조인 질의가 수행되지 않은 제1데이터 객체에 대해 제1 저장 모듈(1400) 및 제2 저장 모듈(1500)에 저장된 제2데이터 객체와의 거리를 계산하여, 가장 가까운 k개의 제2데이터 객체를 추출할 수 있다.The k-nearest search module 1600 may include a distance calculation module 1610. The distance calculation module 1610 includes the first storage module 1400 and the second storage module 1500 for the first data object included therein, except for the first data object located at both ends of the first data segment. ) Can calculate distances from the second data objects. The distance calculation module 1610 includes a first storage module 1400 and a second storage module (1400) for a first data object in which the k-nearest join query is not performed in the first k-nearest join query processing module 1200 ( 1500), the closest k second data objects may be extracted by calculating a distance from the second data object stored in 1500).

제2 k-최근접 조인 질의 처리 모듈(1300)은, 상기 제1 k-최근접 조인 질의 처리 모듈(1200)과 선택적으로 처리될 수 있다. 그러나 일정 조건에 따라 동시에 처리되어 수행될 수도 있다. 제2 k-최근접 조인 질의 처리 모듈(1300)은, 상기 제1 k-최근접 조인 질의 처리 모듈(1200)과 같이 제1데이터 세그먼트의 양 끝단의 제1데이터 객체에 대해 k-최근접 조인 질의를 처리하는 것이 아니며, 일정한 기준을 만족시킨 노드에 대해서 k-최근접 조인 질의 처리를 수행한다. 상세한 내용은 이하에서 도면과 함께 설명한다.The second k-nearest join query processing module 1300 may be selectively processed with the first k-nearest join query processing module 1200. However, it may be simultaneously processed and performed according to certain conditions. The second k-nearest join query processing module 1300, like the first k-nearest join query processing module 1200, k-nearest join to the first data object at both ends of the first data segment It does not process queries, but performs k-nearest join query processing on nodes that satisfy certain criteria. Details will be described below with reference to the drawings.

이하에서는 도 2 내지 도 4에서 설명한 k-최근접 조인 질의 처리 장치(100)의 구성요소를 이용하여, k-최근접 이웃 조인 질의를 수행하는 방법에 대해 도면을 이용하여 구체적으로 설명한다.Hereinafter, a method of performing the k-nearest neighbor join query using the components of the k-nearest join query processing apparatus 100 described in FIGS. 2 to 4 will be described in detail with reference to the drawings.

도 5는 도로 네트워크 상에서 k-최근접 이웃 조인 질의를 설명하기 위한 도면이다. K-최근접 이웃 조인 질의를 수행하는 방법을 설명하기 이전에, 도면에 표시된 기호들과 본 명세서에서 쓰여질 기호들 및 용어에 대해 간단히 설명한다. r1 내지 r6은 제1데이터 객체를 나타낸다. 즉, r은 제1데이터 객체의 집합 R이 포함하는 제1데이터 객체들을 의미한다. s1 내지 s4는 제2데이터 객체를 나타낸다. 즉, s는 제2데이터 객체의 집합 S가 포함하는 제2데이터 객체를 의미한다. 도로 세그먼트 상에 표시된 숫자(number)는 두 지점간의 거리를 의미하며 노드 v1부터 v4 각각은 도로 세그먼트(segment) 각각의 교차점 또는 경계점을 가리킨다. 이때, 도로 네트워크 위의 숫자(number)는 두 지점간의 거리를 나타낼 수도 있고, 도로 네트워크에서 도로의 트래픽을 고려한 가중치가 부여된 두 지점 간의 도달시간을 나타낼 수도 있다. k는 최근접 이웃 조인 질의 시에 요청하는 숫자를 의미한다. 즉, 제1데이터 객체로부터 가장 가까운 k개의 제2데이터 객체를 찾는 k 최근접 이웃 조인 질의에서의 k는 임의로 설정할 수 있는 숫자이며, k는 정수일 수 있다. 5 is a diagram for explaining a k-nearest neighbor join query on a road network. Before describing how to perform the K-nearest neighbor join query, the symbols shown in the drawings and the symbols and terms to be used herein are briefly described. r1 to r6 represent first data objects. That is, r means first data objects included in the set R of the first data objects. s1 to s4 denote second data objects. That is, s means the second data object included in the set S of the second data objects. The number displayed on the road segment means the distance between the two points, and each of nodes v1 to v4 indicates an intersection or boundary point of each road segment. At this time, a number on the road network may indicate a distance between two points, or may indicate an arrival time between two weighted points in consideration of the traffic of the road in the road network. k means the number requested during the nearest neighbor join query. That is, k in the k nearest neighbor join query that finds the k second data objects closest to the first data object is a number that can be arbitrarily set, and k can be an integer.

이하에서는 후술할 명세서 및 알고리즘에서 쓰이는 기호에 대해 설명한다.

Figure 112018077890655-pat00001
는 노드 시퀀스, 즉 노드끼리 이어진 세그먼트를 의미한다.
Figure 112018077890655-pat00002
혹은
Figure 112018077890655-pat00003
은 정의된 제1데이터 세그먼트를 의미한다.
Figure 112018077890655-pat00004
은 제1데이터 객체 r로부터 가장 가까운 k개의 제2데이터 객체들의 집합을 의미한다. S(
Figure 112018077890655-pat00005
)는 제1데이터 세그먼트 상에 위치하고 있는 제2데이터 객체의 집합을 의미한다. dist(p, q)는 각 포인트 지점인 p와 q 사이를 연결하는 최단 경로의 길이를 의미한다. len(p, q)는 각 포인트 지점인 p와 q 사이를 연결하는 세그먼트상의 길이를 의미하며, 이 때 p와 q는 같은 노드 시퀀스 상에 위치하여야 한다. Ψ(r1)은 r1에 대해 k-최근접 조인 질의를 수행한 결과의 쌍을 의미한다.Hereinafter, symbols used in the specification and the algorithm described later will be described.
Figure 112018077890655-pat00001
Denotes a node sequence, that is, a segment of nodes.
Figure 112018077890655-pat00002
or
Figure 112018077890655-pat00003
Means a defined first data segment.
Figure 112018077890655-pat00004
Denotes a set of k second data objects closest to the first data object r. S(
Figure 112018077890655-pat00005
) Means a set of second data objects located on the first data segment. dist(p, q) means the length of the shortest path connecting between p and q, each point point. len(p, q) means the length on the segment connecting each point point, p and q, where p and q must be located on the same node sequence. Ψ(r1) means a pair of results of performing k-nearest join query on r1.

상기 용어들을 바탕으로 하여 k-최근접 조인 질의를 수행하는 방법에 대해 설명한다.Based on the terms above, a method of performing a k-nearest join query will be described.

도 6은 k-최근접 조인 질의 처리 장치에서, 제1데이터 세그먼트를 정의하는 방법을 설명하기 위한 도면이다. 노드 결정 모듈(121)에서는, 전술한 바와 같이 도로 네트워크 상의 노드를 기준으로 교차하는 도로 세그먼트의 개수를 판별하여, 노드를 분류하고 결정할 수 있다.6 is a diagram for describing a method of defining a first data segment in the k-nearest join query processing apparatus. The node determination module 121 may classify and determine the nodes by determining the number of road segments intersecting based on the nodes on the road network as described above.

도 6을 참조하면, 노드는 도로 네트워크에서의 도로 세그먼트가 각각 교차하는 교차점 또는 경계점을 의미하므로, 도 6에 나타난 도로 네트워크 상에는, 노드로 표시된 v1 내지 v4 외에도, r2와 r5가 배치된 부분에 2개의 노드가 더 존재하게 된다.Referring to FIG. 6, since a node means an intersection or a boundary point where road segments in the road network intersect each other, on the road network shown in FIG. 6, in addition to v1 to v4 indicated as nodes, r2 and r5 are arranged in 2 There are more nodes.

노드 결정 모듈(121)에서는 일정한 기준에 따라, 노드를 3종류로 분류할 수 있다. 도로 네트워크에서의 노드를 기준으로, 인접하는 도로 세그먼트가 3개 이상일 경우에는 인터섹션(intersection) 노드로 정의한다. 도로 네트워크에서의 노드를 기준으로, 인접하는 도로 세그먼트가 2개일 경우에는 인터메디에잇(intermediate) 노드로 정의한다. 도로 네트워크에서의 노드를 기준으로, 인접하는 도로 세그먼트가 1개일 경우에는 터미널(terminal) 노드로 정의한다.The node determination module 121 may classify nodes into three types according to certain criteria. Based on the nodes in the road network, if there are three or more adjacent road segments, it is defined as an intersection node. When there are two adjacent road segments based on a node in the road network, it is defined as an intermediate node. Based on the node in the road network, when there is one adjacent road segment, it is defined as a terminal node.

도 6을 참조하면, 노드 v1의 경우 노드 v1을 기준으로 3개의 도로 세그먼트가 인접해 있기 때문에 v1은 인터섹션 노드로 정의된다. 노드 v2의 경우 v2를 기준으로 2개의 도로 세그먼트가 인접해 있기 때문에 v2는 인터메디에잇 노드로 정의된다. 마찬가지로, 노드 v3의 경우 인터섹션 노드로 정의되며 노드 v4의 경우 인터메디에잇 노드로 정의된다. 또한 도면에 표시되지 않은 노드인 r2와 r5가 배치된 부분에 존재하는 2개의 노드 역시 교차하는 도로 세그먼트의 개수가 2개인 바, 인터메디에잇 노드로 정의된다.Referring to FIG. 6, in the case of node v1, v3 is defined as an intersection node because three road segments are adjacent to node v1. In the case of node v2, v2 is defined as an intermediate node because two road segments are adjacent to each other based on v2. Similarly, node v3 is defined as an intersection node, and node v4 is defined as an intermediary node. In addition, the two nodes present in the part where the nodes r2 and r5 not arranged in the drawing are also arranged have two intersecting road segments, which are defined as intermediate nodes.

상기 도면 상에는 나타나지 않았지만, 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개일 수도 있으며, 4개 이상인 경우도 있을 수 있다. Although not shown in the figure, the number of road segments intersecting based on the node may be 1, or there may be 4 or more.

상기 노드 결정 모듈(121)에서 노드를 기준으로 교차하는 도로 세그먼트의 개수를 판별하고 노드를 분류하면, 그를 이용하여 그룹화 모듈(123)은 제1데이터 세그먼트를 정의할 수 있다. 상기 노드 결정 모듈(121)에서 결정된 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개 혹은 3개 이상인 노드끼리 이어진 도로 세그먼트 상에 위치하는 제1데이터 객체들을 제1데이터 세그먼트로 정의할 수 있다.When the node determination module 121 determines the number of road segments intersecting based on the nodes and classifies the nodes, the grouping module 123 may define the first data segment using the nodes. Based on the nodes determined by the node determination module 121, first data objects located on road segments in which nodes having one or three or more road segments cross each other may be defined as the first data segment.

상기 노드 결정 모듈(121)에서 결정된 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개 혹은 3개 이상인 노드끼리 이어진 도로 세그먼트를 설명을 위해, "노드 시퀀스"로 본 명세서에서 정의한다.In order to describe a road segment in which nodes having one or three or more road segments intersecting each other based on the node determined by the node determination module 121 are described, it is defined herein as a "node sequence".

이하에서는 상기 정의된 노드들을 이용하여 노드 시퀀스를 형성하는 방법에 대해 설명한다. 노드 시퀀스는 두 노드 간의 경로일 수 있다. 이 때 노드 시퀀스의 양 끝단을 이루는 노드로는 인터섹션(intersection) 노드 혹은 터미널(terminal) 노드가 될 수 있다. 또한 노드 시퀀스의 양 끝단을 제외한 내부에 포함되는 노드는 인터메디에잇(intermediate) 노드가 될 수 있다.Hereinafter, a method of forming a node sequence using the above-defined nodes will be described. The node sequence may be a path between two nodes. At this time, the nodes forming both ends of the node sequence may be an intersection node or a terminal node. Also, a node included inside except for both ends of the node sequence may be an intermediate node.

즉, 노드 시퀀스를 형성하는 방법은 터미널(terminal) 노드 혹은 인터섹션(intersection) 노드를 노드 시퀀스의 시작점으로 설정한다. 그 후, 다른 터미널(terminal) 노드 혹은 다른 인터섹션(intersection) 노드까지 경로를 이동한다. 그 때, 노드 시퀀스의 양 끝단을 제외한 내부 세그먼트에 포함되는 노드는 인터메디에잇(intermediate) 노드일 수 있다.That is, the method of forming a node sequence sets a terminal node or an intersection node as a starting point of the node sequence. Then, the path is moved to another terminal node or to another intersection node. In this case, a node included in the inner segment except both ends of the node sequence may be an intermediate node.

상기 노드 시퀀스를 설정하는 방법을 도 6을 참고하여 설명하면 다음과 같다. 인터섹션(intersection) 노드인 v1을 기준으로, 다른 인터섹션(intersection) 노드인 v3까지 경로를 이동하면

Figure 112018077890655-pat00006
의 세 개의 노드 시퀀스가 설정될 수 있다. 이때 노드 시퀀스의 양 끝단(v1, v3)을 제외한 내부 시퀀스에 포함되는 노드인 v2와 v4는 인터메디에잇(intermediate) 노드인 바, 노드 시퀀스는 적법하게 설정된 것을 확인할 수 있다.The method for setting the node sequence will be described with reference to FIG. 6 as follows. If you move the path from v1, the intersection node, to v3, another intersection node,
Figure 112018077890655-pat00006
A sequence of three nodes of can be set. At this time, nodes 2 and v4 included in the internal sequence except for both ends (v1 and v3) of the node sequence are intermediate nodes, so it can be confirmed that the node sequence is set properly.

이하에서는, 상기 설정된 노드 시퀀스를 이용하여 제1데이터 세그먼트를 정의하는 방법을 설명한다. 제1데이터 세그먼트는 상기 설정된 노드 시퀀스에 포함된 제1데이터 객체들의 집합을 이용하여 설정될 수 있다.Hereinafter, a method of defining a first data segment using the set node sequence will be described. The first data segment may be set using a set of first data objects included in the set node sequence.

데이터 객체 검색 모듈(122)은, 상기 설정된 노드 시퀀스 상에 위치하는 제1데이터 객체 및 제2데이터 객체를 검색할 수 있다. 데이터 객체 검색 모듈(122)은 상기 노드 시퀀스 상에 위치하는 제1데이터 객체를 검색하여, 그룹화 모듈(123)에서 제1데이터 세그먼트를 정의할 수 있다. 제1데이터 세그먼트를 정의하는 방법을 이하에서 도면을 이용하여 설명한다.The data object search module 122 may search for the first data object and the second data object located on the set node sequence. The data object search module 122 may search for a first data object located on the node sequence, and define a first data segment in the grouping module 123. A method of defining the first data segment will be described below with reference to the drawings.

도 5 내지 도 6을 참고하여, 상기 노드 시퀀스인

Figure 112018077890655-pat00007
에 각각 포함된 제1데이터 객체들을 살펴본다. 노드 시퀀스
Figure 112018077890655-pat00008
에 포함된 제1데이터 객체는 r1, r5, r4이다. 노드 시퀀스
Figure 112018077890655-pat00009
에 포함된 제1데이터 객체는 r6이다. 노드 시퀀스
Figure 112018077890655-pat00010
에 포함된 제1데이터 객체는 r3, r2이다.5 to 6, the node sequence is
Figure 112018077890655-pat00007
Let's look at the first data objects included in each. Node sequence
Figure 112018077890655-pat00008
The first data objects included in are r1, r5, and r4. Node sequence
Figure 112018077890655-pat00009
The first data object included in is r6. Node sequence
Figure 112018077890655-pat00010
The first data objects included in are r3 and r2.

제1데이터 세그먼트는, 상기 각각의 노드 시퀀스 상에 포함된 제1데이터 객체들을 그룹화한 것을 의미한다. 즉 노드 시퀀스

Figure 112018077890655-pat00011
에 포함되는 제1데이터 세그먼트는
Figure 112018077890655-pat00012
로 그룹화할 수 있다. 노드 시퀀스
Figure 112018077890655-pat00013
에 포함되는 제1데이터 세그먼트는 r6 하나만 존재하는 바 그대로 표시된다. 노드 시퀀스
Figure 112018077890655-pat00014
에 포함된 제1데이터 세그먼트는
Figure 112018077890655-pat00015
로 그룹화될 수 있다. 따라서 제1데이터 세그먼트는 하나의 도로네트워크 상에서, 노드 시퀀스가 생성되는 개수에 따라 제1데이터 세그먼트의 개수가 결정될 수 있다.The first data segment means grouping the first data objects included in each node sequence. Node sequence
Figure 112018077890655-pat00011
The first data segment included in
Figure 112018077890655-pat00012
Can be grouped as. Node sequence
Figure 112018077890655-pat00013
In the first data segment included in r6, only one r6 exists and is displayed as it is. Node sequence
Figure 112018077890655-pat00014
The first data segment included in
Figure 112018077890655-pat00015
Can be grouped as Accordingly, the number of the first data segments may be determined according to the number of node sequences generated in one road network.

즉 제1데이터 세그먼트를 정의하는 방법은, 데이터 객체 검색 모듈(122)을 이용하여 상기 노드 시퀀스 상에 포함된 제1데이터 객체를 검색한 후에, 상기 노드 시퀀스의 한 끝단의 노드에서 가장 가까운 제1데이터 객체를 시작점으로 하고, 상기 노드 시퀀스의 나머지 끝단의 노드에서 가장 가까운 제1데이터 객체를 끝지점으로 하여 상기 노드 시퀀스 상에 포함된 제1데이터 객체를 모두 포함하도록 이어진 도로 세그먼트의 일부분을 제1데이터 세그먼트로 정의할 수 있다.That is, the method of defining the first data segment, after retrieving the first data object included in the node sequence using the data object search module 122, the first closest to the node at one end of the node sequence The data object is used as a starting point, and the first data object closest to the node at the other end of the node sequence is used as an end point, and a portion of the road segment connected to include all the first data objects included in the node sequence is first. It can be defined as a data segment.

상기 설명한 노드 시퀀스를 설정하고, 제1데이터 세그먼트를 그룹화하는 것을 알고리즘으로써 표현하면 다음과 같이 표현할 수 있다.Setting the node sequence described above and grouping the first data segment as an algorithm can be expressed as follows.

Figure 112018077890655-pat00016
Figure 112018077890655-pat00016

상기와 같이 제1데이터 세그먼트

Figure 112018077890655-pat00017
을 정의한 후에는, 상기 정의된 제1데이터 세그먼트에 대해 k-최근접 조인 질의를 수행하게 된다. 이를 수행하는 자세한 메커니즘은 이하에서 설명한다.As described above, the first data segment
Figure 112018077890655-pat00017
After defining, k-nearest join query is performed on the defined first data segment. The detailed mechanism for doing this is described below.

제1데이터 세그먼트 분류 모듈(1100)은 상기 정의된 제1데이터 세그먼트에 포함된 제1데이터 객체의 개수들을 추출한다. 도 6을 예로 들면, 제1데이터 세그먼트

Figure 112018077890655-pat00018
에 포함된 제1데이터 객체의 개수는 3개이고, 제1데이터 세그먼트
Figure 112018077890655-pat00019
에 포함된 제1데이터 객체의 개수는 2개이며, 제1데이터 세그먼트 r6에 포함된 제1데이터 객체의 개수는 1개이다.The first data segment classification module 1100 extracts the number of first data objects included in the defined first data segment. 6, the first data segment
Figure 112018077890655-pat00018
The number of first data objects included in the number is three, and the first data segment
Figure 112018077890655-pat00019
The number of first data objects included in is 2, and the number of first data objects included in the first data segment r6 is 1.

이 때, 제1데이터 세그먼트에 포함된 제1데이터 객체의 개수가 1개 혹은 2개일 경우에는, 제1 최근접 조인 질의 처리 모듈(1200)은 해당 데이터 세그먼트에 포함된 모든 제1데이터 객체에 대하여 k최근접 조인 질의 질의를 수행한다.In this case, when the number of first data objects included in the first data segment is 1 or 2, the first nearest join query processing module 1200 is for all the first data objects included in the corresponding data segment. k Perform the query of the nearest join query.

제1데이터 세그먼트에 포함된 제1데이터 객체의 개수가 3개 이상일 경우에는 이하와 같이 처리된다.When the number of the first data objects included in the first data segment is 3 or more, processing is as follows.

제1데이터 세그먼트의 양 끝단에 포함된 제1데이터 객체들을 추출한다. 제1데이터 세그먼트

Figure 112018077890655-pat00020
의 경우에는 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체는 r1 및 r4에 해당한다. 이 때 양 끝단에 포함된 제1데이터 객체에 대해서는 제1 최근접 조인 질의 처리 모듈(1200)에서 k 최근접 조인 질의 처리를 수행한다. 그러나 양 끝단에 포함된 제1데이터 객체를 제외한, 제1데이터 세그먼트의 내부에 포함된 나머지 제1데이터 객체인 r5에 대해서는 k 최근접 조인 질의 처리를 수행하지 않더라도 k개의 최근접 제2데이터 객체들을 추출할 수 있다.The first data objects included at both ends of the first data segment are extracted. 1st data segment
Figure 112018077890655-pat00020
In the case of the first data object located at both ends of the first data segment corresponds to r1 and r4. At this time, for the first data object included at both ends, the k nearest join query processing is performed by the first nearest join query processing module 1200. However, for the remaining first data object r5 included in the first data segment, except for the first data object included at both ends, k nearest second data objects are obtained even if k nearest join query processing is not performed. Can be extracted.

제1데이터 세그먼트의 양 끝단에 포함된 제1데이터 객체를 제외한 내부에 포함된 나머지 제1데이터 객체에 대해서는 k-최근접 서치 모듈(1600)을 이용하여 k최근접 이웃 서치가 진행된다. 이 때, k최근접 이웃 서치가 진행되는 제2데이터 객체의 집합은 제1 저장 모듈(1400)에 저장되는 상기 제1 데이터 세그먼트의 양 끝단에 포함된 제1데이터 객체들에 대한 k 최근접 조인 질의 결과와, 제2 저장 모듈(1500)에 저장되는 제1데이터 세그먼트 내부에 포함된 제2데이터 객체를 합친 것의 집합일 수 있다.The k-nearest neighbor search is performed by using the k-nearest search module 1600 for the remaining first data objects contained inside except for the first data objects included at both ends of the first data segment. At this time, k sets of second data objects in which the nearest neighbor search is performed are k nearest joins to the first data objects included in both ends of the first data segment stored in the first storage module 1400. It may be a set of query results and a second data object included in a first data segment stored in the second storage module 1500.

즉, 상기 알고리즘이 가능하기 위해서는 제1데이터 세그먼트의 양 끝단에 포함된 제1데이터 객체을 제외한 내부에 포함되는 제1데이터 객체에 대한 k 최근접 조인 질의 결과가, 제1데이터 세그먼트의 양 끝단에 포함된 제1데이터 객체들의 k개의 가까운 제2데이터 객체 및 제1데이터 세그먼트에 포함된 제2데이터 객체를 합친 집합 중에 포함되어야 함이 전제되어야 한다.That is, in order to enable the algorithm, k closest join query results for the first data object included therein, except for the first data object included at both ends of the first data segment, are included at both ends of the first data segment. It should be assumed that k close second data objects of the first data objects and second data objects included in the first data segment should be included in the combined set.

이를 도 7을 이용하여, 간단한 증명으로써 입증한다.This is verified by simple proof using FIG. 7.

증명하고자 하는 명제는 다음과 같다.The proposition to be proved is as follows.

모든 제1데이터 객체

Figure 112018077890655-pat00021
을 만족할 때, 즉 제1데이터 세그먼트 내부에 모든 제1데이터 객체가 포함되는 경우를 가정한다. 이 때,
Figure 112018077890655-pat00022
를 만족한다.
Figure 112018077890655-pat00023
가 의미하는 바는 제1데이터 객체 ri 혹은 rj로부터 가장 가까운 k개의 제2데이터 객체들을 의미하며,
Figure 112018077890655-pat00024
가 의미하는 바는 제1데이터 세그먼트
Figure 112018077890655-pat00025
상에 위치해 있는 제2데이터 객체들을 의미한다.All first data objects
Figure 112018077890655-pat00021
When it is satisfied, that is, it is assumed that all the first data objects are included in the first data segment. At this time,
Figure 112018077890655-pat00022
Is satisfied.
Figure 112018077890655-pat00023
Means that k second data objects closest to the first data object ri or rj,
Figure 112018077890655-pat00024
Means first data segment
Figure 112018077890655-pat00025
Means the second data objects located on the image.

즉, 상기 수식이 의미하는 바는 제1데이터 세그먼트 내부에 포함된 제1데이터 객체로부터 가장 가까운 k개의 제2데이터 객체는, 제1데이터 세그먼트의 양 끝단에 위치한 각 제1데이터 객체로부터 가장 가까운 k개의 제2데이터 객체들의 집합과 제1데이터 세그먼트 상에 위치한 제2데이터 객체들의 집합을 합친 것 중에 존재한다는 것이다.That is, the expression means that k second data objects closest to the first data object included in the first data segment are k closest to each first data object located at both ends of the first data segment. The second set of second data objects and the second set of data objects located on the first data segment are present.

증명 방법으로는, 상기 수식이 반대됨을 전제로 하여, 반대되는 명제가 참이 아님을 증명한다. 즉,

Figure 112018077890655-pat00026
가 참이 아님을 가정한다. 여기서 제2데이터 객체
Figure 112018077890655-pat00027
이라고 가정할 경우,
Figure 112018077890655-pat00028
Figure 112018077890655-pat00029
의 집합에 포함되지 않게 된다. 또한
Figure 112018077890655-pat00030
Figure 112018077890655-pat00031
의 집합에도 역시 포함되지 않게 된다. 따라서
Figure 112018077890655-pat00032
와 ri와의 거리는 ri로부터 가장 가까운 k번째 제2데이터 객체와의 거리보다 더 멀게 된다. 이를 수식으로 표현하면
Figure 112018077890655-pat00033
와 같이 표현할 수 있다. 마찬가지로,
Figure 112018077890655-pat00034
와 rj와의 거리는 rj로부터 가장 가까운 k번째 제2데이터 객체와의 거리보다 더 멀게 된다. 이를 수식으로 표현하면
Figure 112018077890655-pat00035
와 같이 표현할 수 있다. 또한, 이와 동일하게
Figure 112018077890655-pat00036
와 rj와의 거리는 rj로부터 가장 가까운 k번째 제2데이터 객체와의 거리보다 더 멀게 된다. 이를 수식으로 표현하면
Figure 112018077890655-pat00037
와 같이 표현할 수 있다. 또한 상기 가정에 따르면
Figure 112018077890655-pat00038
는 제1데이터 세그먼트인
Figure 112018077890655-pat00039
상에도 위치하지 아니하므로, 제1데이터 객체 r로부터 가장 가까운 s+까지의 경로는 다음과 같이 표현할 수 있다. R은 제1데이터 세그먼트 내에 포함되는 제1데이터 객체이고, 도로 네트워크의 특성상 r과 s+와의 경로 거리를 판단할 때 ri 혹은 rj를 통과하는 경로로써 진행해야 함은 자명한 사실이므로, 거리는
Figure 112018077890655-pat00040
과 같이 표현할 수 있다. As a proof method, on the premise that the above formula is reversed, it proves that the opposite proposition is not true. In other words,
Figure 112018077890655-pat00026
Assume is not true. Where the second data object
Figure 112018077890655-pat00027
Assuming that,
Figure 112018077890655-pat00028
The
Figure 112018077890655-pat00029
Will not be included in the set. Also
Figure 112018077890655-pat00030
The
Figure 112018077890655-pat00031
Is not included in the set of. therefore
Figure 112018077890655-pat00032
The distance between and and ri is greater than the distance from the nearest k-th second data object from ri. If you express this as a formula
Figure 112018077890655-pat00033
Can be expressed as Likewise,
Figure 112018077890655-pat00034
The distance between rj and rj is greater than the distance from the nearest k-th second data object from rj. If you express this as a formula
Figure 112018077890655-pat00035
Can be expressed as Also, in the same way
Figure 112018077890655-pat00036
The distance between rj and rj is greater than the distance from the nearest k-th second data object from rj. If you express this as a formula
Figure 112018077890655-pat00037
Can be expressed as Also according to the above assumptions
Figure 112018077890655-pat00038
Is the first data segment
Figure 112018077890655-pat00039
Since it is not located on the image, the path from the first data object r to the nearest s+ can be expressed as follows. Since R is the first data object included in the first data segment, and it is obvious that it is necessary to proceed as a path through ri or rj when determining the path distance between r and s+ due to the nature of the road network.
Figure 112018077890655-pat00040
Can be expressed as

즉 상기 기재한 바에 따르면, dist(r,s+)>

Figure 112018077890655-pat00041
를 만족하게 되기 때문에, s+는
Figure 112018077890655-pat00042
에 포함될 수 없고, 따라서 상기 전제는 만족할 수 없게 되는 것이다.That is, according to the above description, dist(r,s+)>
Figure 112018077890655-pat00041
Since s+ is satisfied, s+ is
Figure 112018077890655-pat00042
Cannot be included, and therefore the above premise is unsatisfactory.

이로써,

Figure 112018077890655-pat00043
임이 증명되었다.Thereby,
Figure 112018077890655-pat00043
Im proved.

상기 증명에 따르면, 제1데이터 세그먼트의 양 끝단에 포함된 제1데이터 객체를 제외하고, 내부에 포함된 제1데이터 객체에 대해서 k최근접 조인 질의를 처리할 필요 없이, 이미 처리된 제2데이터 객체의 집합 내에서 간단한 연산을 통해 거리만을 계산함으로써 k최근접 조인 질의를 하는 것과 같은 결과를 얻을 수 있는 것으로써, 모든 제1데이터 객체에 대해 k-최근접 조인 질의를 수행하는 것보다 시간 측면이나 효율 측면에서 훨씬 효과적으로 수행이 가능하게 된다.According to the above proof, except for the first data object included at both ends of the first data segment, the second data already processed, without the need to process the k nearest join query for the first data object included therein By calculating the distance only through a simple operation within a set of objects, it is possible to obtain the same result as a k-nearest join query, which is more time-consuming than performing a k-nearest join query on all first data objects. However, it can be performed more effectively in terms of efficiency.

상기 설명한 k-최근접 조인 질의 처리 및 k-최근접 서치를 수행하는 알고리즘은 다음과 같이 표현될 수 있다.The algorithm for performing the k-nearest join query processing and k-nearest search described above may be expressed as follows.

알고리즘 2는 제1데이터 세그먼트가 정의되었을 때, k 최근접 조인 질의를 수행하는 전체적인 프로그래밍 코드이며, 알고리즘 3은 상기 알고리즘 2에서의 k-최근접 조인 질의 처리 방법을 자세히 프로그래밍 한 코드이다. 알고리즘 3은 상기 설명한 바와 같이, 제1데이터 세그먼트가 포함하는 제1데이터 객체의 개수를 기준으로 하여, 각 조건에 맞는 k-최근접 조인 질의 처리를 수행하는 것을 확인할 수 있다. 알고리즘 4는 제1데이터 세그먼트가 3개 이상의 제1데이터 객체를 포함하는 경우에 있어서, 상기 제1데이터 세그먼트의 양 끝단에 있는 제1데이터 객체를 제외한 나머지 제1데이터 객체에 대해 k-최근접 이웃 서치를 진행하는 방법에 대한 알고리즘이다. Algorithm 2 is the overall programming code that performs the k nearest join query when the first data segment is defined, and algorithm 3 is the code that details the processing method of the k-nearest join query in algorithm 2 above. As described above, the algorithm 3 can confirm that the k-nearest join query processing for each condition is performed based on the number of first data objects included in the first data segment. Algorithm 4 is a k-nearest neighbor for the remaining first data object except for the first data object at both ends of the first data segment when the first data segment includes three or more first data objects. It is an algorithm for how to conduct a search.

Figure 112018077890655-pat00044
Figure 112018077890655-pat00044

Figure 112018077890655-pat00045
Figure 112018077890655-pat00045

Figure 112018077890655-pat00046
Figure 112018077890655-pat00046

알고리즘 4에 있어서, 제2데이터 객체 s가 어떠한 집합 안에 포함되는지 여부에 따라, 7가지의 알고리즘을 통해 제1데이터 객체와 제2데이터 객체 간의 거리를 계산할 수 있다. 제2데이터 객체의 포함 조건에 따른 거리 계산을 나타내는 표는 아래와 같이 표현할 수 있다. In the algorithm 4, the distance between the first data object and the second data object may be calculated through seven algorithms according to whether the second data object s is included in a certain set. A table representing distance calculation according to the inclusion condition of the second data object can be expressed as follows.

Figure 112018077890655-pat00047
Figure 112018077890655-pat00047

상기 설명한 알고리즘 1 내지 4 및 설명한 k-최근접 조인 질의 방법에 의해, 도 6의 도로 네트워크 상에서 각각의 제1데이터 객체와 가장 가까운 k개의 제2데이터 객체를 찾는 방법에 대해서 설명한다. The methods of finding the k second data objects closest to each first data object on the road network of FIG. 6 by the algorithms 1 to 4 described above and the k-nearest join query method described above will be described.

제1데이터 객체의 집합은 r1 내지 r6에 해당하고, 제2데이터 객체의 집합은 s1 내지 s4가 된다. 본 실시예에서 k는 2로 설정한다. The set of first data objects corresponds to r1 to r6, and the set of second data objects is s1 to s4. In this embodiment, k is set to 2.

상기에서 설명한 바와 같이, 도 6의 도로 네트워크에서의 제1데이터 세그먼트는

Figure 112018077890655-pat00048
, r6,
Figure 112018077890655-pat00049
로 정의된다. 상기 정의된 제1데이터 세그먼트를 이용하여, 각각의 제1데이터 세그먼트의 양 끝단에 배치된 제1데이터 객체에 대해 k-최근접 조인 질의 처리를 수행하고, 제1데이터 세그먼트 상에 포함된 제2데이터 객체와, 제1데이터 세그먼트의 양 끝단을 제외한 내부에 포함된 제1데이터 객체 및 상기 k-최근접 조인 질의 처리 결과의 집합을 나타낸 표가 아래에 제시된다. As described above, the first data segment in the road network of FIG. 6 is
Figure 112018077890655-pat00048
, r6,
Figure 112018077890655-pat00049
Is defined as Using the defined first data segment, k-nearest join query processing is performed on the first data object disposed at both ends of each first data segment, and the second included on the first data segment A table showing a set of data objects, first data objects included therein except for both ends of the first data segment and the k-nearest join query processing results is shown below.

Figure 112018077890655-pat00050
Figure 112018077890655-pat00050

3개 이상의 제1데이터 객체를 포함하는 제1데이터 세그먼트인

Figure 112018077890655-pat00051
에 대해 살펴본다. 전술한 바에서 증명한 명제에 따르면, 제1데이터 세그먼트
Figure 112018077890655-pat00052
가 포함하는 r5에 대해서, r5와 가장 가까운 2개의 제2데이터 객체는
Figure 112018077890655-pat00053
중 2개에 해당한다. 따라서 남은 단계는, k-최근접 서치 모듈을 이용하여 거리 계산을 진행할 수 있다. 거리 계산의 대상이 되는 제2 데이터 객체는
Figure 112018077890655-pat00054
에 해당한다. 상기 제2 데이터 객체들과, 제1데이터 세그먼트의 내부에 포함된 r5와의 거리를 계산하기 위해 상기 알고리즘 4 및 상기 표 1에 따른 거리 계산 기준이 이용된다. 각각의 제2데이터 객체에 대해 거리를 계산하는 알고리즘을 수행한다.
Figure 112018077890655-pat00055
의 경우,
Figure 112018077890655-pat00056
에 해당하므로, r5로부터 s1까지의 거리는 상기 표의 수식에 의해
Figure 112018077890655-pat00057
이 된다.
Figure 112018077890655-pat00058
의 경우,
Figure 112018077890655-pat00059
에 해당하므로, r5로부터의 s2까지의 거리는 상기 표의 수식에 의해 dist(
Figure 112018077890655-pat00060
이 된다. 마찬가지로,
Figure 112018077890655-pat00061
의 경우,
Figure 112018077890655-pat00062
에 해당하므로, r5로부터 s3까지의 거리는
Figure 112018077890655-pat00063
가 된다. 이 때, r5에서 s3까지의 거는 r1을 거쳐서 가는 거리가 r4를 거쳐서 가는 거리에 비해 가깝다. 따라서 r5부터 r3까지의 가장 짧은 거리는
Figure 112018077890655-pat00064
가 된다. 그러나 s3는 r1에서 가장 가까운 2개의 제2데이터 객체인 s1 및 s2에 포함되어 있지 않기 때문에, r1을 거쳐서 가는 거리는 고려되지 않는다. 결론적으로, 제1데이터 객체 r5와 가장 가까운 2개의 데이터 객체는 s1, s2가 되고, Ψ(r5)={<r5,s1>,<r5,s2>}로 표현할 수 있다. 상기 전술한 바와 같이 r5와의 거리를 측정하는 방법은 도 8을 참조하면 이해를 도울 수 있다.A first data segment comprising three or more first data objects.
Figure 112018077890655-pat00051
Let's take a look. According to the proposition proved in the foregoing, the first data segment
Figure 112018077890655-pat00052
For r5, which is included, the two second data objects closest to r5 are
Figure 112018077890655-pat00053
Two of them. Therefore, for the remaining steps, distance calculation may be performed using a k-nearest search module. The second data object that is the object of distance calculation
Figure 112018077890655-pat00054
Corresponds to Distance calculation criteria according to the algorithm 4 and Table 1 are used to calculate the distance between the second data objects and r5 included in the first data segment. An algorithm for calculating a distance is performed for each second data object.
Figure 112018077890655-pat00055
In the case of,
Figure 112018077890655-pat00056
Therefore, the distance from r5 to s1 is determined by the formula in the table above.
Figure 112018077890655-pat00057
It becomes.
Figure 112018077890655-pat00058
In the case of,
Figure 112018077890655-pat00059
Therefore, the distance from r5 to s2 is dist(
Figure 112018077890655-pat00060
It becomes. Likewise,
Figure 112018077890655-pat00061
In the case of,
Figure 112018077890655-pat00062
Therefore, the distance from r5 to s3 is
Figure 112018077890655-pat00063
Becomes At this time, the distance from r5 to s3 is closer than the distance through r4. So the shortest distance from r5 to r3 is
Figure 112018077890655-pat00064
Becomes However, since s3 is not included in the two second data objects closest to r1, s1 and s2, the distance to go through r1 is not considered. In conclusion, the two data objects closest to the first data object r5 are s1 and s2, and can be expressed as Ψ(r5)={<r5,s1>,<r5,s2>}. As described above, a method of measuring a distance from r5 may be helpful with reference to FIG. 8.

본 발명의 다른 실시예에 따르면, 상기 전술한 방법을 이용한 k 최근접 조인 질의 방법보다 연산 횟수를 더 효율적으로 진행할 수 있는 방법이 존재한다.According to another embodiment of the present invention, there is a method capable of more efficiently performing the number of operations than the k nearest join query method using the above-described method.

본 발명의 다른 실시예에서는, 질의 결과 처리 모듈(124)의 제2 최근접 조인 질의 처리 모듈(1300)을 이용하여 k-최근접 조인 질의를 수행할 수 있다. 상기 방법은 도로 네트워크 상에 노드로부터 노드 시퀀스를 설정하고, 상기 노드 시퀀스 내부에 포함된 제1데이터 세그먼트를 정의하는 방법까지는 전술한 바와 동일하므로 생략한다. 제1데이터 세그먼트를 설정한 이후에, 제1데이터 세그먼트 분류 모듈(1100)을 이용하여 제1데이터 세그먼트 내에 포함된 제1데이터 객체의 개수를 추출한다.In another embodiment of the present invention, a k-nearest join query may be performed using the second nearest join query processing module 1300 of the query result processing module 124. The method is the same as described above until a method of setting a node sequence from a node on a road network and defining a first data segment included in the node sequence is omitted. After setting the first data segment, the number of first data objects included in the first data segment is extracted using the first data segment classification module 1100.

상기 전술한 제1 k-최근접 조인 질의 처리 모듈(1200)을 이용한 k-최근접 조인 질의 방법의 실시예에서는, 제1데이터 세그먼트 내에 포함된 제1데이터 객체의 개수가 3개 이상일 경우 내부에 포함된 제1데이터 객체에 대해서는 k최근접 이웃 서치 방법을 이용하였다면, 본 실시예에서는 제1데이터 세그먼트 내에 포함된 제1데이터 객체의 개수가 2개 이상일 경우에 전술한 바와 다른 방법을 이용하여 제2 k-최근접 조인 질의 처리 모듈(1300)을 이용하여 k-최근접 이웃 조인 질의를 수행한다.In the embodiment of the k-nearest join query method using the above-described first k-nearest join query processing module 1200, when the number of first data objects included in the first data segment is 3 or more, the internal If the k nearest neighbor search method is used for the included first data object, in the present embodiment, when the number of the first data objects included in the first data segment is two or more, the method is different from the above-described method. The k-nearest neighbor query is performed using the 2k-nearest join query processing module 1300.

제2 k-최근접 조인 질의 처리 모듈(1300)에서의 처리 방법은 이하와 같다. 상기 정의된 제1데이터 세그먼트 내에 포함된 제1데이터 객체의 개수가 2개 이상일 경우, 해당 제1데이터 세그먼트의 양 끝단에 존재하는 제1데이터 객체와 가장 가까운 노드를 추출한다. 상기 추출한 노드를 기준으로 하여, 상기 노드를 교차하는 인접한 도로 세그먼트에 포함된 제1데이터 세그먼트의 개수를 판단한다. 이 때, 추출한 노드와 인접한 도로 세그먼트에 포함된 제1데이터 세그먼트가 2개 이상일 경우에는, 상기 추출한 노드에 대한 k최근접 조인 질의를 수행한다. 추출한 노드와 인접한 도로 세그먼트에 포함된 제1데이터 세그먼트가 1개일 경우에는, 해당 제1데이터 세그먼트에 대한 k최근접 조인 질의를 수행한다.The processing method in the second k-nearest join query processing module 1300 is as follows. When the number of first data objects included in the defined first data segment is two or more, a node closest to the first data object present at both ends of the first data segment is extracted. Based on the extracted node, the number of first data segments included in adjacent road segments intersecting the node is determined. At this time, when there are two or more first data segments included in the road segment adjacent to the extracted node, a k-nearest join query is performed on the extracted node. When there is one first data segment included in the road segment adjacent to the extracted node, a k-nearest join query for the first data segment is performed.

제1데이터 세그먼트가 2개 이상일 경우를 도 9를 이용하여 자세히 설명한다. 이를 설명하기 전에 새로운 문자를 정의한다. 상기 도면상에 나타난

Figure 112018077890655-pat00065
는, 인터섹션 노드 vx와 인접한 도로 세그먼트에 존재하는 제1 데이터 세그먼트의 개수를 의미한다.The case where there are two or more first data segments will be described in detail with reference to FIG. 9. Define a new character before explaining it. As shown on the drawing
Figure 112018077890655-pat00065
Denotes the number of first data segments existing in the road segment adjacent to the intersection node vx.

도 9는 본 발명에서의 도로 네트워크들의 일 예를 나타낸 도면이다. 도면에서 굵은 부분으로 표시한 것은 제1데이터 세그먼트를 나타낸다.9 is a diagram showing an example of road networks in the present invention. In the figure, those indicated by bold portions indicate the first data segment.

도 9(a)에서는 제1데이터 세그먼트

Figure 112018077890655-pat00066
상에 포함되는 제1데이터 객체 r1과 r2가 존재한다. 도 9(a)에서는, 도로 네트워크 상의 임의의 어느 한 노드를 기준으로 인접한 제1데이터 세그먼트가 1개이기 때문에, 이러한 경우에는 전술한 바와 같이 제1 k-최근접 조인 질의 처리 모듈에 의해 전술한 바와 같은 방법, 즉 제1 k-최근접 조인 질의 모듈(1200)을 이용하여 k-최근접 조인 질의 처리를 수행할 수 있다.In FIG. 9(a), the first data segment
Figure 112018077890655-pat00066
There are first data objects r1 and r2 included in the image. In FIG. 9(a), since there is one adjacent first data segment based on any one node on the road network, in this case, as described above, the first k-nearest join query processing module described above As described above, the k-nearest join query processing may be performed using the first k-nearest join query module 1200.

도 9(b)에서는, 제1데이터 세그먼트

Figure 112018077890655-pat00067
상에 포함되는 제1데이터 객체 r1과 r2가 존재하며, 또 다른 제1데이터 세그먼트
Figure 112018077890655-pat00068
상에 포함되는 제1데이터 객체 r3와 r4가 존재한다. 도 9(b)에서는, 상기 도로 네트워크 상의 임의의 한 노드에 근접한 제1데이터 세그먼트가 2개가 될 수 있다. 즉, 노드 v2 혹은 v5를 기준으로 할 경우, 상기 각 노드와 근접한 제1데이터 세그먼트의 개수가 2개가 된다. 이 때, 상기 노드와 근접한 2개 이상의 제1데이터 세그먼트가 포함하는 제1데이터 객체의 개수가 각각 2개 이상인 조건을 만족할 경우에는 제2 k-최근접 조인 질의 처리 모듈(1300)에 의해 k-최근접 조인 질의를 수행할 수 있다.In Fig. 9(b), the first data segment
Figure 112018077890655-pat00067
First data objects r1 and r2 included in the image exist, and another first data segment
Figure 112018077890655-pat00068
There are first data objects r3 and r4 included in the image. In FIG. 9B, two first data segments adjacent to any one node on the road network may be two. That is, when the node v2 or v5 is used as a reference, the number of first data segments adjacent to each node is two. At this time, when the number of first data objects included in two or more first data segments adjacent to the node satisfies two or more conditions, k-by the second k-nearest join query processing module 1300 You can perform the nearest join query.

상기 제2 k-최근접 조인 질의 처리 모듈(1300)에서는, 노드를 기준으로 하여 인접한 도로 세그먼트에 위한 제1데이터 세그먼트의 개수가 2개 이상이고, 상기 제1데이터 세그먼트 내에 포함된 제1데이터 객체들의 개수가 2개 이상일 경우, 상기 노드에 대해 k-최근접 조인 질의 처리를 수행한다. 이 때, 상기 노드는 상기 노드를 기준으로 교차하는 도로 세그먼트의 개수가 3개 이상인 노드일 수 있다. 즉, 상기 노드는 인터섹션(intersection) 노드일 수 있다.In the second k-nearest join query processing module 1300, the number of first data segments for adjacent road segments based on a node is two or more, and a first data object included in the first data segment If the number of them is 2 or more, k-nearest join query processing is performed on the node. In this case, the node may be a node having three or more road segments intersecting based on the node. That is, the node may be an intersection node.

즉, 제2 k-최근접 조인 질의 처리 모듈에서는 제1데이터 객체를 기준으로 k-최근접 조인 질의를 수행하는 것이 아닌, 특정 조건을 만족할 경우 상기 조건을 만족하는 노드를 기준으로 k-최근접 조인 질의를 처리함으로써, 제1 k-최근접 조인 질의 처리 모듈에서의 처리 방법보다 처리 시간이 훨씬 줄어드는 효과가 존재한다. That is, the second k-nearest join query processing module does not perform the k-nearest join query based on the first data object, but when the specific condition is satisfied, the k-nearest based on the node satisfying the condition. By processing the join query, there is an effect that the processing time is much shorter than the processing method in the first k-nearest join query processing module.

이를 도 10 내지 도 11을 참고하여 구체적으로 설명한다.This will be described in detail with reference to FIGS. 10 to 11.

도 10(a)에서는 제1데이터 세그먼트에 포함된 제1데이터 객체 ri를 중심으로, 양 옆에 배치된 노드 vl, vm이 존재한다. 이 때 각각의 노드를 기준으로 인접하는 도로 세그먼트가 포함하는 제1데이터 세그먼트의 개수를 판단한다. 도 10(a)의 두 노드는 모두 인접하는 도로 세그먼트가 포함하는 제1데이터 세그먼트의 개수가 2개이다. 도 10(b)의 경우, 두 노드 중 vl을 기준으로 인접하는 제1데이터 세그먼트의 개수가 2개이나, vm을 기준으로 인접하는 제1데이터 세그먼트의 개수는 1개이다. 도 10(c)의 경우, 두 노드 중 vm을 기준으로 인접하는 제1데이터 세그먼트의 개수가 2개이나, vl을 기준으로 인접하는 제1데이터 세그먼트의 개수는 1개이다. 도10(d)의 경우 두 노드는 모두 인접하는 도로 세그먼트가 포함하는 제1데이터 세그먼트의 개수가 1개이다. In FIG. 10(a), there are nodes vl and vm disposed on both sides of the first data object ri included in the first data segment. At this time, the number of first data segments included in the adjacent road segment is determined based on each node. Both nodes of FIG. 10(a) have two first data segments included in adjacent road segments. In the case of FIG. 10(b), the number of adjacent first data segments is 2 based on vl among the two nodes, but the number of adjacent first data segments is 1 based on vm. In the case of FIG. 10(c), the number of adjacent first data segments is 2 based on vm among the two nodes, but the number of adjacent first data segments is 1 based on vl. In the case of FIG. 10(d), both nodes have one first data segment included in an adjacent road segment.

상기 도 10에서는 노드 vl과 vm 사이에 존재하는 제1데이터 세그먼트가 1개의 제1데이터 객체를 가지고 있었으므로, 제1 k-최근접 조인 질의 처리 모듈(1200)에 의해서 k-최근접 조인 질의가 수행되나, 도 11을 참고하면, 노드 vl과 vm 사이에 존재하는 제1데이터 세그먼트가 가지는 제1데이터 객체의 개수가 2개이므로, 제2 k-최근접 조인 질의 처리 모듈(1300)에 의한 k-최근접 조인 질의가 수행될 수 있다. In FIG. 10, since the first data segment existing between the nodes vl and vm has one first data object, the k-nearest join query is processed by the first k-nearest join query processing module 1200. However, referring to FIG. 11, since the number of first data objects of the first data segment existing between the nodes vl and vm is two, k by the second k-nearest join query processing module 1300 -Nearest join queries can be performed.

즉 도 11에서도, 도 11(a)의 경우 두 노드 vl, vm 모두 인접한 제1 데이터 세그먼트가 2개 이상이고, 상기 인접한 제1 데이터 세그먼트에 포함된 제1데이터 객체의 개수 역시 2개 이상에 해당하므로 상기 노드 vl, vm 에 대한 k-최근접 조인 질의 처리를 수행할 수 있다. 도 11(b)의 경우 vl을 기준으로, 도 11(c)의 경우 vm을 기준으로 하여 인접한 제1데이터 세그먼트가 2개 이상이고, 상기 인접한 제1데이터 세그먼트에 포함된 제1데이터 객체의 개수가 2개에 해당하므로, 상기 도 11(b)의 경우에는 vl을 기준으로, 도 11(c)의 경우 vm을 기준으로 하여 k-최근접 조인 질의를 수행할 수 있다. 도 11(d)의 경우, 두 노드를 기준으로 인접한 제1데이터 세그먼트의 개수가 1개에 해당하는 바, 제1 k-최근접 조인 질의 처리 모듈(1200)에 의해 k-최근접 조인 질의가 수행될 수 있다.That is, even in FIG. 11, in the case of FIG. 11(a), two nodes vl and vm have two or more adjacent first data segments, and the number of first data objects included in the adjacent first data segments also corresponds to two or more. Therefore, k-nearest join query processing for the nodes vl and vm can be performed. In the case of FIG. 11(b), there are two or more adjacent first data segments based on vl and based on vm in FIG. 11(c), and the number of first data objects included in the adjacent first data segments Since 2 corresponds to 2, the k-nearest join query can be performed based on vl in the case of FIG. 11(b) and vm in the case of FIG. 11(c). In the case of FIG. 11(d), since the number of adjacent first data segments based on two nodes corresponds to one, a k-nearest join query is processed by the first k-nearest join query processing module 1200 Can be performed.

상기 설명한 바를 알고리즘으로 나타내면 이하와 같이 나타낼 수 있다. If the above-described bar is represented by an algorithm, it can be expressed as follows.

Figure 112018077890655-pat00069
Figure 112018077890655-pat00069

Figure 112018077890655-pat00070
Figure 112018077890655-pat00070

이하에서는, 상기 제2 최근접 조인 질의 처리 모듈을 이용하여 도 5 내지 도 6에서의 k-최근접 조인 질의를 처리하는 방법에 대해 설명한다. Hereinafter, a method of processing the k-nearest join query in FIGS. 5 to 6 using the second nearest join query processing module will be described.

전술한 바와 같이, 제1 최근접 조인 질의 처리 모듈을 이용하여 k-최근접 조인 질의를 수행할 때에는 제1데이터 객체 r1, r2, r3, r4, r6에 대해서 k-최근접 조인 질의를 수행하였다. 즉 5번의 k-최근접 이웃 질의를 수행하였다. 그러나, 제2 최근접 조인 질의 처리 모듈을 이용하여 k-최근접 조인 질의를 수행할 경우, 인터섹션 노드인 v1, v3 및 제1데이터 객체 r6에 대해서만 k-최근접 조인 질의를 수행하더라도 상기와 같은 결과를 얻을 수 있는 바, 3번의 k-최근접 이웃 질의를 이용하여 진행할 수 있으므로, 훨씬 효율적인 방법임을 확인할 수 있다. 즉, v1에 대한 k-최근접 이웃 조인 질의는 r3 및 r4에 대한 k-최근접 이웃 조인 질의를 대체할 수 있으며, v3에 대한 k-최근접 이웃 조인 질의는 r1 및 r2에 대한 k-최근접 이웃 조인 질의를 대체할 수 있다.As described above, when performing the k-nearest join query using the first nearest join query processing module, the k-nearest join query was performed on the first data objects r1, r2, r3, r4, and r6. . That is, five k-nearest neighbor queries were performed. However, when the k-nearest join query is performed using the second nearest join query processing module, the k-nearest join query is performed only for the intersection nodes v1, v3, and the first data object r6. Since the same result can be obtained, since it can be performed using 3 k-nearest neighbor queries, it can be confirmed that it is a more efficient method. That is, the k-nearest neighbor join query for v1 can replace the k-nearest neighbor join query for r3 and r4, and the k-nearest neighbor join query for v3 is k-nearest for r1 and r2. You can replace the neighbor join query.

도 12 내지 14는 본 발명의 k-최근접 조인 질의 처리 방법을 이용하여 실제 도로 맵 상에서 k-최근접 조인 질의를 수행한 것을 나타내는 그래프이다. 도 12는 북아메리카(North America), 도 13은 샌프란시스코(San Francisco), 도 14는 캘리포이나의 샌와킨 카운티(San Joaquin County)의 로드맵을 이용하여 k-최근접 이웃 조인을 수행하였다. 상기 도 12, 도 13, 도 14에서의 도로 네트워크에서 포함되는 노드의 개수는 각각 12416, 192276, 20040개에 달한다.12 to 14 are graphs showing that a k-nearest join query is performed on an actual road map using the k-nearest join query processing method of the present invention. FIG. 12 performs a k-nearest neighbor join using a road map of North America, FIG. 13 San Francisco, and FIG. 14 San Joaquin County of California. The number of nodes included in the road network in FIGS. 12, 13, and 14 is 12416, 192276, and 20040, respectively.

실제 도로 네트워크 상에서의 제1데이터 객체 및 제2데이터 객체의 위치는 중심 또는 균일한 분포를 따른다. 도 12 내지 도 14에서의 (a)는 k값을 변화시키는 것에 따른 처리 시간을 나타내는 그래프이며, (b)는 (c)는 제1데이터 세그먼트 및 제2데이터 세그먼트의 개수 변화에 따른 처리 시간을 나타내는 그래프이다. (d)는 객체의 분포를 다양화한 것에 따른 처리 시간을 설명하는 그래프를 의미한다.The positions of the first data object and the second data object on the real road network follow a central or uniform distribution. (A) in FIGS. 12 to 14 is a graph showing the processing time according to changing the k value, (b) (c) is the processing time according to the change in the number of the first data segment and the second data segment It is a graph to show. (d) means a graph explaining processing time according to diversification of the distribution of objects.

도 12 내지 도 14를 살펴보면, 전체적인 그래프의 경향성이 유사한 것을 확인할 수 있다. 상기 그래프들에 따르면, k-최근접 조인 질의를 모든 제1데이터 객체에 대해 수행했을 경우와, 제1 k-최근접 조인 질의 처리 모듈에 의해 수행된 경우 및 제2 k-최근접 조인 질의 처리 모듈에 의해 수행된 경우의 세 가지 방법으로 수행한 결과 그래프를 비교하고 있다. 그래프들에 따르면, k-최근접 조인 질의를 수행하는 처리 시간이 모든 제1데이터 객체에 대해 수행했을 경우가 가장 오래 걸리며, 그 다음이 제1 k-최근접 조인 질의 처리 방법에 의해 수행된 경우이며, 처리 시간이 가장 적게 걸리는 방법은 제2 k-최근접 조인 질의 처리 방법에 의해 수행된 경우임을 확인할 수 있다. 즉 상기 그래프를 통해, 본 발명에서 제시하고 있는 k-최근접 조인 질의 처리 방법이 기존의 방법에 비해 효율적으로 처리 가능하다는 것을 확인할 수 있다.12 to 14, it can be seen that the overall graph tendency is similar. According to the graphs, the k-nearest join query is performed on all the first data objects, the first k-nearest join query processing module, and the second k-nearest join query processing The graphs of the results of the three methods performed by the module are compared. According to the graphs, the processing time for performing the k-nearest join query is the longest when it is performed on all the first data objects, and the next is performed by the first k-nearest join query processing method It can be confirmed that the method that takes the least processing time is the case performed by the second k-nearest join query processing method. That is, it can be confirmed through the graph that the k-nearest join query processing method proposed in the present invention can be processed more efficiently than the existing method.

본 발명의 일 실시예에 따른 최단 경로 탐색 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The shortest path search method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed through various computer means and can be recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention or may be known and usable by those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical disks. -Hardware devices specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the present invention, and vice versa.

이상의 실시예들은 본 발명의 이해를 돕기 위하여 제시된 것으로, 본 발명의 범위를 제한하지 않으며, 이로부터 다양한 변형 가능한 실시예들도 본 발명의 범위에 속하는 것임을 이해하여야 한다. 본 발명의 기술적 보호범위는 특허청구범위의 기술적 사상에 의해 정해져야 할 것이며, 본 발명의 기술적 보호범위는 특허청구범위의 문언적 기재 그 자체로 한정되는 것이 아니라 실질적으로는 기술적 가치가 균등한 범주의 발명까지 미치는 것임을 이해하여야 한다.It is to be understood that the above embodiments are presented to help the understanding of the present invention, and do not limit the scope of the present invention, from which various deformable embodiments belong to the scope of the present invention. The technical protection scope of the present invention should be determined by the technical spirit of the claims, and the technical protection scope of the present invention is not limited to the literary description of the claims, but is a category in which technical value is substantially equal. It should be understood that it extends to the invention.

100 : k-최근접 조인 질의 처리 장치
110 : 수신부
120 : 질의 결과 연산부
121 : 노드 결정 모듈
122 : 데이터 객체 검색 모듈
123 : 그룹화 모듈
124 : 질의 결과 처리 모듈
130 : 전송부
1100 : 제1데이터 세그먼트 분류 모듈
1200 : 제1 k-최근접 조인 질의 처리 모듈
1300 : 제2 k-최근접 조인 질의 처리 모듈
1400 : 제1 저장 모듈
1500 : 제2 저장 모듈
1600 : k-최근접 서치 모듈
1610 : 거리 계산 모듈
100: k-nearest join query processing device
110: receiver
120: query result operation unit
121: node determination module
122: data object search module
123: grouping module
124: query result processing module
130: transmission unit
1100: first data segment classification module
1200: first k-nearest join query processing module
1300: second k-nearest join query processing module
1400: first storage module
1500: second storage module
1600: k-nearest search module
1610: Distance calculation module

Claims (15)

도로 네트워크 상의 제1데이터 집합 R, 제2데이터 집합 S 중 하나의 데이터 집합에 포함된 객체로부터 가장 가까운 k개의 객체를 다른 데이터 집합에 있는 객체에서 선택하는 k-최근접 조인 질의 처리 방법으로써,
제1데이터 집합 R에 포함된 제1데이터 객체들을 제1데이터 세그먼트의 집합으로 정의하는 단계;
상기 정의된 제1데이터 세그먼트 내에 포함된 일부의 제1데이터 객체들에 대해 K최근접 이웃 조인 질의를 수행하는 단계;
상기 정의된 제1데이터 세그먼트 내에 포함된 나머지 제1데이터 객체에 대해 K최근접 이웃 서치를 수행하는 단계;
를 포함하고,
상기 제1데이터 집합 R에 포함된 제1데이터 객체들을 제1데이터 세그먼트의 집합으로 정의하는 단계; 는,
상기 도로 네트워크 상의 노드를 기준으로 교차하는 도로 세그먼트의 개수를 판별하는 단계;
상기 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개 혹은 3개 이상인 노드끼리 이어진 도로 세그먼트 상에 포함된 제1 데이터 객체들을 잇는 시퀀스를 제1데이터 세그먼트로 정의하는 단계;
를 포함하는 k-최근접 조인 질의 처리 방법.
A k-nearest join query processing method that selects k objects closest to an object included in one of the first data set R and the second data set S on the road network from objects in the other data set,
Defining first data objects included in the first data set R as a set of first data segments;
Performing a K nearest neighbor join query on some first data objects included in the defined first data segment;
Performing K nearest neighbor search on the remaining first data objects included in the defined first data segment;
Including,
Defining first data objects included in the first data set R as a set of first data segments; Is,
Determining the number of road segments intersecting based on a node on the road network;
Defining a sequence that connects the first data objects included on the road segment in which the number of road segments intersecting with respect to the node is 1 or 3 or more nodes, as a first data segment;
K-nearest join query processing method comprising a.
삭제delete 제1항에 있어서,
상기 제1데이터 세그먼트에 포함되는 제1데이터 객체의 개수가 1개 혹은 2개일 경우, 각각의 제1데이터 객체에 대한 K최근접 조인 질의를 수행하는 단계; 를 포함하는 k-최근접 조인 질의 처리 방법.
According to claim 1,
If the number of first data objects included in the first data segment is 1 or 2, performing a K closest join query for each first data object; K-nearest join query processing method comprising a.
제1항에 있어서,
상기 제1데이터 세그먼트에 포함되는 제1데이터 객체의 개수가 3개 이상일 경우,
상기 제1데이터 세그먼트의 양 끝단에 위치하는 2개의 제1데이터 객체에 대한 K최근접 이웃 질의를 수행하는 단계; 및
상기 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체를 제외한 제1데이터 세그먼트의 내부에 포함된 나머지 제1데이터 객체들에 대해 K최근접 이웃 서치를 진행하는 단계; 를 포함하는 k-최근접 조인 질의 처리 방법.
According to claim 1,
When the number of first data objects included in the first data segment is 3 or more,
Performing K nearest neighbor queries on two first data objects located at both ends of the first data segment; And
Performing K nearest neighbor search for the remaining first data objects included in the first data segment except for the first data objects located at both ends of the first data segment; K-nearest join query processing method comprising a.
제4항에 있어서,
상기 K최근접 이웃 서치를 진행하는 단계는,
상기 제1데이터 세그먼트의 내부에 포함된 제2데이터 객체들을 추출하는 단계;
상기 제1데이터 세그먼트의 양 끝단에 위치하는 2개의 제1데이터 객체들에 대한 K-최근접 조인 질의 처리로 도출된 K번째로 가까운 제2데이터 객체들을 추출하는 단계;
상기 추출된 제2데이터 객체들의 집합을 정의하는 단계;
상기 내부에 포함된 나머지 제1데이터 객체들에 대해, 상기 정의된 제2데이터 객체들의 집합에 포함된 제2데이터 객체와의 거리를 측정하여 상기 내부에 포함된 나머지 제1데이터 객체들과 가장 가까운 k개의 객체를 추출하는 단계; 를 포함하는 k-최근접 조인 질의 처리 방법.
According to claim 4,
The step of conducting the K nearest neighbor search,
Extracting second data objects included in the first data segment;
Extracting K-th closest second data objects derived by K-nearest join query processing for two first data objects located at both ends of the first data segment;
Defining a set of the extracted second data objects;
For the remaining first data objects included in the inside, a distance from the second data object included in the defined set of second data objects is measured to be closest to the remaining first data objects included in the inside. extracting k objects; K-nearest join query processing method comprising a.
제1항에 있어서,
상기 도로 네트워크 상의 임의의 한 노드에 근접한 제1데이터 세그먼트들을 추출하는 단계;
상기 노드에 근접한 제1데이터 세그먼트의 개수가 2개 이상일 경우 상기 노드를 기준으로 k최근접 이웃 조인 질의를 수행하는 단계;를 포함하는 k-최근접 조인 질의 처리 방법.
According to claim 1,
Extracting first data segments proximate to any one node on the road network;
And performing a k-nearest neighbor join query based on the node when the number of the first data segments adjacent to the node is two or more.
제6항에 있어서,
상기 노드에 근접한 제1데이터 세그먼트의 개수가 2개 이상일 경우 상기 노드를 기준으로 k최근접 이웃 조인 질의를 수행하는 단계;는,
상기 노드에 근접한 제1데이터 세그먼트에 포함되는 제1데이터 객체의 개수가 2개 이상인 것을 특징으로 하는 k-최근접 조인 질의 처리 방법.
The method of claim 6,
If the number of the first data segments adjacent to the node is two or more, performing k nearest neighbor join query based on the node;
A k-nearest join query processing method, characterized in that the number of first data objects included in the first data segment adjacent to the node is two or more.
제7항에 있어서,
상기 임의의 한 노드는 상기 노드를 기준으로 교차하는 도로 세그먼트의 개수가 3개 이상인 노드인 것을 특징으로 하는 k-최근접 조인 질의 처리 방법.
The method of claim 7,
The random one node is a k-nearest join query processing method, characterized in that the number of road segments intersecting based on the node is 3 or more.
제1항, 제3항 내지 제8항 중 어느 한 항에 있어서,
상기 k-최근접 조인 질의 처리 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
The method of any one of claims 1, 3 to 8,
And a program for executing the k-nearest join query processing method.
클라이언트 단말로부터 적어도 하나 이상의 객체에 대한 k-최근접 질의 요청을 수신하는 수신부;
상기 요청에 응답하여, 상기 단말의 위치를 기준으로 하는 k-최근접 질의 결과를 연산하는 질의 결과 연산부; 및
상기 요청에 응답하여, 상기 단말의 위치를 기준으로 하는 k-최근접 질의 결과를 상기 단말로 전송하는 전송부; 를 포함하고,
상기 질의 결과 연산부는 제1데이터 집합 R에 포함된 제1데이터 객체들을 제1데이터 세그먼트로 정의하고, 상기 제1데이터 세그먼트 내에 포함된 2개의 제1데이터 객체에 대해 k-최근접 이웃 조인 질의를 수행하고, 상기 제1데이터 세그먼트 내에 포함된 나머지 제1데이터 객체에 대해 k-최근접 이웃 서치를 수행하고,
상기 질의 결과 연산부는,
도로 네트워크 상의 노드를 기준으로 교차하는 도로 세그먼트의 개수를 판별하는 노드 결정 모듈;
상기 노드 결정 모듈에서 결정된 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개 혹은 3개 이상인 노드끼리 이어진 도로 세그먼트 상에 위치하는 제1데이터 객체 및 제2데이터 객체를 검색하는 데이터 객체 검색 모듈;
상기 노드 결정 모듈에서 결정된 노드를 기준으로 교차하는 도로 세그먼트의 개수가 1개 혹은 3개 이상인 노드끼리 이어진 도로 세그먼트 상에 위치하는 제1데이터 객체들을 제1데이터 세그먼트로 정의하는 그룹화 모듈;
상기 그룹화 모듈에서 생성된 상기 제1데이터 세그먼트에 대한 최근접 조인 질의를 수행하는 질의 결과 처리 모듈; 을 포함하는 도로 네트워크 상에서 k-최근접 조인 질의를 처리하는 장치.
A receiver configured to receive a k-nearest query request for at least one object from a client terminal;
A query result calculating unit for calculating a k-nearest query result based on the location of the terminal in response to the request; And
In response to the request, a transmission unit for transmitting the k-nearest query results based on the location of the terminal to the terminal; Including,
The query result calculation unit defines first data objects included in the first data set R as a first data segment, and performs a k-nearest neighbor join query for two first data objects included in the first data segment. Performing, and performing k-nearest neighbor search on the remaining first data objects included in the first data segment,
The query result calculation unit,
A node determination module for determining the number of road segments intersecting based on the nodes on the road network;
A data object retrieval module for retrieving the first data object and the second data object located on a road segment in which nodes having 1 or 3 or more road segments intersecting each other are determined based on the node determined by the node determination module;
A grouping module defining first data objects located on road segments in which the number of road segments intersecting one or more nodes is greater than or equal to the first data segment based on the node determined by the node determination module;
A query result processing module that performs a closest join query on the first data segment generated by the grouping module; Device for processing a k-nearest join query on a road network comprising a.
삭제delete 제10항에 있어서,
상기 질의 결과 처리 모듈은,
상기 제1데이터 세그먼트 상에 포함된 제1데이터 객체의 개수를 기준으로 제1데이터 세그먼트를 분류하는 제1데이터 세그먼트 분류 모듈;
상기 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체에 대한 연산을 진행하는 제1 K-최근접 조인 질의 처리 모듈;
상기 제1 k-최근접 조인 질의 처리 모듈의 처리 결과에 따른 가장 가까운 k개의 제2데이터 객체들을 저장하는 제1 저장 모듈; 및
상기 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체를 제외한 내부에 포함된 제1데이터 객체에 대해 K-최근접 이웃 서치를 진행하는 k-최근접 서치 모듈; 을 포함하는 도로 네트워크 상에서 k-최근접 조인 질의를 처리하는 장치.
The method of claim 10,
The query result processing module,
A first data segment classification module that classifies a first data segment based on the number of first data objects included on the first data segment;
A first K-nearest join query processing module that performs an operation on a first data object located at both ends of the first data segment;
A first storage module for storing the nearest k second data objects according to the processing result of the first k-nearest join query processing module; And
A k-nearest search module that performs K-nearest neighbor search on the first data object included therein, except for the first data object located at both ends of the first data segment; Device for processing a k-nearest join query on a road network comprising a.
제12항에 있어서,
제1데이터 세그먼트에 포함된 제2데이터 객체들을 저장하는 제2 저장 모듈;을 더 포함하는 도로 네트워크 상에서 k-최근접 조인 질의를 처리하는 장치.
The method of claim 12,
An apparatus for processing a k-nearest join query on a road network further comprising a second storage module for storing second data objects included in the first data segment.
제13항에 있어서,
상기 k-최근접 서치 모듈; 은
상기 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체를 제외한 내부에 포함된 제1데이터 객체에 대해 상기 제1 저장 모듈 및 제2 저장 모듈에 저장된 제2데이터 객체들과의 거리를 계산하는 거리 계산 모듈; 을 더 포함하는 도로 네트워크 상에서 k-최근접 조인 질의를 처리하는 장치.
The method of claim 13,
The k-nearest search module; silver
Calculating a distance between the first storage module and the second data objects stored in the second storage module for the first data object included therein except for the first data object located at both ends of the first data segment Distance calculation module; Device for processing a k-nearest join query on a road network further comprising a.
제10항에 있어서,
상기 질의 결과 처리 모듈은,
상기 제1데이터 세그먼트에 포함되는 제1데이터 객체의 개수가 2개 이상일 경우, 상기 제1데이터 세그먼트의 양 끝단에 위치하는 제1데이터 객체와 근접한 노드를 추출하고, 상기 추출된 노드를 기준으로 인접한 도로 세그먼트에 포함된 제1데이터 세그먼트의 개수를 추출하여, 상기 노드를 기준으로 인접한 도로 세그먼트에 포함된 상기 제1데이터 세그먼트의 개수가 2개 이상일 경우 상기 노드에 대해 K최근접 이웃 조인 질의를 수행하는 제2 k-최근접 조인 질의 처리 모듈; 을 포함하는 도로 네트워크 상에서 k-최근접 조인 질의를 처리하는 장치.

The method of claim 10,
The query result processing module,
When the number of first data objects included in the first data segment is two or more, nodes adjacent to the first data object located at both ends of the first data segment are extracted, and adjacent nodes are extracted based on the extracted nodes. Extracts the number of first data segments included in the road segment, and performs the K nearest neighbor join query for the node when the number of the first data segments included in the adjacent road segment is two or more based on the node A second k-nearest join query processing module; Device for processing a k-nearest join query on a road network comprising a.

KR1020180091763A 2018-08-07 2018-08-07 Processing method of k-nearest neighbor join queries in road networks and device that processes k-nearest neighbor join queries in road networks KR102127769B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180091763A KR102127769B1 (en) 2018-08-07 2018-08-07 Processing method of k-nearest neighbor join queries in road networks and device that processes k-nearest neighbor join queries in road networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180091763A KR102127769B1 (en) 2018-08-07 2018-08-07 Processing method of k-nearest neighbor join queries in road networks and device that processes k-nearest neighbor join queries in road networks

Publications (2)

Publication Number Publication Date
KR20200016544A KR20200016544A (en) 2020-02-17
KR102127769B1 true KR102127769B1 (en) 2020-07-09

Family

ID=69670784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180091763A KR102127769B1 (en) 2018-08-07 2018-08-07 Processing method of k-nearest neighbor join queries in road networks and device that processes k-nearest neighbor join queries in road networks

Country Status (1)

Country Link
KR (1) KR102127769B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416960B1 (en) * 2020-10-30 2022-07-05 경북대학교 산학협력단 Group processing method of multiple k-farthest neighbor queries in road networks and device that group processes multiple k-farthest neighbor queries in road networks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101499842B1 (en) * 2013-12-06 2015-03-10 아주대학교산학협력단 Method and Apparatus for searching for data object

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101423031B1 (en) * 2012-08-22 2014-08-14 아주대학교산학협력단 A method for computing safe exit points of moving k-nearest neighbor queries in road networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101499842B1 (en) * 2013-12-06 2015-03-10 아주대학교산학협력단 Method and Apparatus for searching for data object

Also Published As

Publication number Publication date
KR20200016544A (en) 2020-02-17

Similar Documents

Publication Publication Date Title
Han et al. Neat: Road network aware trajectory clustering
Chen et al. Discovering popular routes from trajectories
US9436702B2 (en) Navigation system data base system
EP3521756A1 (en) Navigation system with preference analysis mechanism and method of operation thereof
Han et al. Road-network aware trajectory clustering: Integrating locality, flow, and density
US10028245B2 (en) Maintaining point of interest data using wireless access points
Tork Spatio-temporal clustering methods classification
JP6613475B2 (en) Route inquiry method, apparatus, device, and non-volatile computer storage medium
CN110516702B (en) Discrete path planning method based on streaming data
Li et al. Optimal multi-meeting-point route search
CN109271467B (en) Direction-aware road network moving object k neighbor query method
CN108091134B (en) Universal data set generation method based on mobile phone signaling position track data
CN104992044A (en) Optimal multi-meeting-point route searching method and apparatus applied to real-time ridesharing
Feng et al. Indoor top-k keyword-aware routing query
US9752888B2 (en) Method and apparatus of computing location of safe exit for moving range query in road network
Tasnim et al. Semantic-aware clustering-based approach of trajectory data stream mining
Yawalkar et al. Route recommendations on road networks for arbitrary user preference functions
Lee et al. Crowd-sourced carpool recommendation based on simple and efficient trajectory grouping
KR101025360B1 (en) Method and apparatus for finding shortest path for k-nearest neighbor searching in road network databases
KR102127769B1 (en) Processing method of k-nearest neighbor join queries in road networks and device that processes k-nearest neighbor join queries in road networks
KR102185334B1 (en) PROCESSING METHOD OF ε-DISTANCE JOIN QUERIES IN ROAD NETWORKS AND DEVICE THAT PROCESSES ε-DISTANCE JOIN QUERIES IN ROAD NETWORKS
CN107766881B (en) Way finding method and device based on basic classifier and storage device
Abam et al. Kinetic spanners in Rd
Lv et al. Route pattern mining from personal trajectory data
KR102416960B1 (en) Group processing method of multiple k-farthest neighbor queries in road networks and device that group processes multiple k-farthest neighbor queries in road networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant