[go: up one dir, main page]

KR20220083489A - Method for location selection using user location with differential privacy applied - Google Patents

Method for location selection using user location with differential privacy applied Download PDF

Info

Publication number
KR20220083489A
KR20220083489A KR1020200173784A KR20200173784A KR20220083489A KR 20220083489 A KR20220083489 A KR 20220083489A KR 1020200173784 A KR1020200173784 A KR 1020200173784A KR 20200173784 A KR20200173784 A KR 20200173784A KR 20220083489 A KR20220083489 A KR 20220083489A
Authority
KR
South Korea
Prior art keywords
location
voronoi
area
candidate
region
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
KR1020200173784A
Other languages
Korean (ko)
Inventor
박석
박세화
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Priority to KR1020200173784A priority Critical patent/KR20220083489A/en
Publication of KR20220083489A publication Critical patent/KR20220083489A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • G01C21/3476Special cost functions, i.e. other than distance or default speed limit of road segments using point of interest [POI] information, e.g. a route passing visible POIs
    • 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/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • 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
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3438Rendezvous; Ride sharing
    • 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
    • G01C21/34Route searching; Route guidance
    • G01C21/3446Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags or using precalculated routes

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

적어도 하나의 프로세서에 의해 동작하는 위치 선택 시스템이 사용자의 위치를 이용하여 질의에 대한 위치를 선택하는 방법으로서, 질의에 의해 선택될 수 있는 복수의 후보 위치들, 복수의 기존 시설들에 대한 기존 시설 위치들, 그리고 적어도 한 명의 사용자가 대상 영역에 위치하며, 질의를 수신하면 각 후보 위치에 대한 영향 지역을 확인한다. 기존 시설들 각각의 위치를 기초로 대상 영역을 복수의 보로노이 영역들로 구성하고, 임의의 보로노이 영역과 임의의 보로노이 영역 주변의 기존 시설물들을 기초로, 임의의 보로노이 영역에 대한 상한 영역을 구성한 후, 상한 영역에 위치한 사용자 수에 노이즈를 반영하여 수신한 질의에 대한 최적 장소를 선택한다.A method for a location selection system operated by at least one processor to select a location for a query using a location of a user, comprising: a plurality of candidate locations selectable by the query, an existing facility for a plurality of existing facilities Locations, and at least one user is located in the target area, and upon receipt of a query, check the area of influence for each candidate location. The target area is composed of a plurality of Voronoi areas based on the location of each of the existing facilities, and based on the arbitrary Voronoi area and existing facilities around the arbitrary Voronoi area, the upper limit area for the arbitrary Voronoi area After configuring , the optimal location for the received query is selected by reflecting noise in the number of users located in the upper limit region.

Figure P1020200173784
Figure P1020200173784

Description

차분 프라이버시가 적용된 사용자 위치를 이용한 위치 선택 방법{Method for location selection using user location with differential privacy applied}{Method for location selection using user location with differential privacy applied}

본 발명은 차분 프라이버시가 적용된 사용자 위치를 이용한 위치 선택 방법에 관한 것이다.The present invention relates to a location selection method using a user location to which differential privacy is applied.

최근 모바일 디바이스의 사용과 위치정보 서비스가 보편화된 이후, 관심지점(POI: Point Of Interest) 정보와 사용자들의 위치 정보를 이용한 다양한 서비스가 제공되고 있다. 특히, 지리정보시스템(GIS: Geographic Information System)의 발전으로 인해 지도 검색 서비스가 많이 이용되고 있다. Since the use of mobile devices and location information services have become common in recent years, various services using point of interest (POI) information and users' location information have been provided. In particular, due to the development of a geographic information system (GIS), a map search service is widely used.

이와 더불어 오픈 플랫폼 서비스(예를 들어, 오픈스트리트 맵 등)는 전 세계 GIS에 대한 오픈 API 를 제공함으로써, 이를 이용한 다양한 위치기반 서비스 개발이 가능해졌다. 이처럼 다양한 플랫폼을 통해 사용자 위치 정보가 쌓여가는 가운데, 사용자 위치 정보를 이용해 사용자의 편의를 향상시키고 새로운 서비스를 효율적으로 처리하기 위한 많은 연구가 진행되고 있다. In addition, open platform services (eg, OpenStreet Map) provide open APIs for global GIS, making it possible to develop various location-based services using them. While user location information is being accumulated through various platforms like this, many studies are being conducted to improve user convenience and efficiently process new services using user location information.

그 중 하나인 최적장소 선택 질의(optimal location selection query)는 상권 분 석이나 공공기관의 설립 계획 등에 사용되는 질의 처리 기법이다. 최적장소 선택 질의란 기존 시설들의 위치와 그 시설들을 사용하는 사용자들의 위치를 고려했을 때, 새로운 시설이 입점하기 위한 최적의 위치를 찾아주는 질의를 말한다. One of them, the optimal location selection query, is a query processing technique used in commercial area analysis or establishment planning of public institutions. The optimal location selection query refers to a query that finds the optimal location for a new facility to enter, considering the locations of existing facilities and the locations of users who use them.

최적장소 선택 질의는 사용자 집합 C와 기존 시설들의 집합 F가 주어졌을 때, 사용자가 선택할 수 있는 후보위치들의 집합 P 중에서 사용자에게 가장 많은 영향을 끼칠 수 있는 위치를 선택해 반환한다. 이 때, 모든 객체 및 사용자는 위치정보를 지니고 있고, 사용자들은 자신의 위치로부터 가장 가까운 시설을 이용한다는 가정을 지닌다. When the optimal location selection query is given a user set C and a set of existing facilities F, the location that has the most influence on the user is selected and returned from among the set P of candidate locations that the user can select. In this case, it is assumed that all objects and users have location information, and that users use the facility closest to their location.

이러한 최적장소 선택 질의는 실용적인 서비스에 적용할 수 있다는 장점을 지닌 반면, 개인 위치 정보의 노출로 인해 많은 문제들이 발생하는 단점이 있다.While this optimal location selection query has the advantage of being applicable to practical services, it has a disadvantage in that many problems arise due to the exposure of personal location information.

따라서, 본 발명은 차분 프라이버시가 적용된 사용자 위치를 이용하여 최대 영향력 위치를 선택하는 위치 선택 방법을 제공한다.Accordingly, the present invention provides a location selection method for selecting a location of maximum influence using a location of a user to which differential privacy is applied.

상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 적어도 하나의 프로세서에 의해 동작하는 위치 선택 시스템이 사용자의 위치를 이용하여 질의에 대한 위치를 선택하는 방법으로서,As a method of selecting a location for a query by using a location of a user, a location selection system operated by at least one processor, which is a feature of the present invention for achieving the technical problem of the present invention,

질의에 의해 선택될 수 있는 복수의 후보 위치들, 복수의 기존 시설들에 대한 기존 시설 위치들, 그리고 적어도 한 명의 사용자가 대상 영역에 위치하며, 질의를 수신하면 각 후보 위치에 대한 영향 지역을 확인하는 단계, 상기 기존 시설들 각각의 위치를 기초로 상기 대상 영역을 복수의 보로노이 영역들로 구성하는 단계, 임의의 보로노이 영역과 상기 임의의 보로노이 영역 주변의 기존 시설물들을 기초로, 상기 임의의 보로노이 영역에 대한 상한 영역을 구성하는 단계, 상기 상한 영역에 위치한 사용자 수에 노이즈를 반영하는 단계, 그리고 적어도 하나의 상한 영역으로 구성된 각 후보 위치별로 노이즈가 반영된 사용자 수를 확인하고, 상기 수신한 질의에 대한 최적 장소를 선택하는 단계를 포함한다.A plurality of candidate locations that can be selected by a query, existing facility locations for a plurality of existing facilities, and at least one user are located in a target area, and upon receiving a query, identify an impact area for each candidate location configuring the target area into a plurality of Voronoi areas based on the locations of each of the existing facilities, based on an arbitrary Voronoi area and existing facilities around the arbitrary Voronoi area, the arbitrary constructing an upper limit region for the Voronoi region of and selecting an optimal place for a query.

상기 상한 영역을 구성하는 단계는, 상기 임의의 보로노이 영역에 위치한 제1 기존 시설과 상기 제1 기존 시설 주변의 다른 제2 기존 시설들로 들로네 삼각형을 구성하는 단계, 상기 들로네 삼각형의 제1 외접원을 확인하는 단계, 상기 임의의 보로노이 영역과 중첩되는 제2 외접원을 구하는 단계, 그리고 상기 제1 외접원 및 제2 외접원에 포함된 기존 시설들 각각의 보로노이 셀들을 결합하여 상기 상한 영역으로 구성하는 단계를 포함할 수 있다.The step of constructing the upper limit region includes the steps of constructing a Delaunay triangle with a first existing facility located in the arbitrary Voronoi area and other second existing facilities around the first existing facility, a first circumscribed circle of the Delaunay triangle confirming, obtaining a second circumscribed circle overlapping with the arbitrary Voronoi region, and combining Voronoi cells of each of the existing facilities included in the first and second circumscribed circles to form the upper limit region may include steps.

상기 보로노이 영역들로 구성하는 단계는, 상기 후보 위치들에 대한 제1 트리, 상기 기존 시설들에 대한 제2 트리, 그리고 프라이버시 예산을 수신하는 단계를 포함할 수 있다.The configuring of the Voronoi regions may include receiving a first tree for the candidate locations, a second tree for the existing facilities, and a privacy budget.

상기 제2 트리는 상기 기존 시설들에 대한 보로노이 영역에 대한 aR-트리로 구성될할 수 있다.The second tree may be configured as an aR-tree for the Voronoi region for the existing facilities.

상기 프라이버시 예산을 수신하는 단계는, 상기 입력된 프라이버시 예산을 제1 프라이버시 예산과 제2 프라이버시 예산으로 나눌 수 있다.The receiving of the privacy budget may include dividing the input privacy budget into a first privacy budget and a second privacy budget.

상기 제1 프라이버시 예산은 상기 제2 트리를 찾아내기 위해 사용되고, 상기 제2 프라이버시 예산은 보로노이 영역을 분할할 때 사용될 수 있다.The first privacy budget may be used to find the second tree, and the second privacy budget may be used when partitioning the Voronoi region.

상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 적어도 하나의 프로세서에 의해 동작하는 위치 선택 시스템이 사용자의 위치를 이용하여 질의에 대한 위치를 선택하는 방법으로서,As another feature of the present invention for achieving the technical problem of the present invention, a location selection system operated by at least one processor selects a location for a query by using the user's location,

질의에 의해 선택될 수 있는 복수의 후보 위치들, 복수의 기존 시설들에 대한 기존 시설 위치들, 그리고 적어도 한 명의 사용자가 대상 영역에 위치하며, 질의를 수신하면 각 후보 위치에 대한 영향 지역을 확인하는 단계, 상기 기존 시설들의 위치를 기초로 각 후보 위치마다 보로노이 영역을 구성하고, 각 보로노이 영역간 교차 영역을 확인하는 단계, 임의의 후보 위치에 대해 복수의 보로노이 영역으로 구성된 영향 지역에서, 또 다른 후보 위치에 의한 영향 지역이 중첩되는 중첩 지역과 비 중첩 지역을 분할하는 단계, 상기 중첩 지역에 포함된 적어도 하나의 보로노이 영역에 위치한 사용자 수를 카운트하고, 상기 적어도 하나의 보로노이 영역별로 사용자 수에 노이즈를 반영하여 노이즈 값을 계산하는 단계, 그리고 각 후보 위치별로 노이즈가 반영된 사용자 수를 확인하고, 상기 수신한 질의에 대한 최적 장소를 선택하는 단계를 포함한다.A plurality of candidate locations that can be selected by a query, existing facility locations for a plurality of existing facilities, and at least one user are located in a target area, and upon receiving a query, identify an impact area for each candidate location constructing a Voronoi area for each candidate location based on the location of the existing facilities, and checking an intersection area between each Voronoi area, in the affected area consisting of a plurality of Voronoi areas for any candidate location, dividing an overlapping area and a non-overlapping area where the area affected by another candidate location overlaps, counting the number of users located in at least one Voronoi area included in the overlapping area, and each of the at least one Voronoi area calculating a noise value by reflecting the noise to the number of users, checking the number of users to which the noise is reflected for each candidate location, and selecting an optimal place for the received query.

상기 각 보로노이 영역간 교차 영역을 확인하는 단계는, 각 후보 위치별로 상기 기존 시설들과 가장 가까운 점의 집합을 보로노이 영역 분할 기법으로 분할하여 복수의 보로노이 영역들로 생성할 수 있다.In the checking of the intersection area between each Voronoi area, a set of points closest to the existing facilities for each candidate location may be divided using a Voronoi area division technique to generate a plurality of Voronoi areas.

상기 중첩 지역과 비중첩 지역을 분할하는 단계는, 상기 각 후보 위치의 보로노이 영역 집합, 후보 위치들의 집합, 상기 사용자의 위치, 그리고 프라이버시 예산을 입력으로 수신하는 단계를 포함할 수 있다.The dividing of the overlapping area and the non-overlapping area may include receiving as inputs a Voronoi area set of each candidate location, a set of candidate locations, the user's location, and a privacy budget.

상기 노이즈 값을 계산하는 단계는, 상기 보로노이 영역에 위치한 사용자 수 별로 라플라스 노이즈를 추가할 수 있다.In the calculating of the noise value, Laplace noise may be added for each number of users located in the Voronoi region.

상기 노이즈 값을 계산하는 단계는, 상기 각 후보 위치별로, 복수의 보로노이 영역 별로 계산된 노이즈 값을 더하여 각 후보 위치별 노이즈가 반영된 사용자 수로 계산할 수 있다.The calculating of the noise value may include calculating the number of users to which the noise of each candidate position is reflected by adding noise values calculated for each candidate position and a plurality of Voronoi regions.

본 발명에 따르면, 사용자 위치에 차분 프라이버시를 적용함으로써, 사용자 위치 즉, 개인 정보를 보호할 수 있다.According to the present invention, by applying differential privacy to the user's location, it is possible to protect the user's location, that is, personal information.

또한, 최적 장소 선택 질의 처리 시 차분 프라이버시를 적용할 때 영향지역 중첩 문제로 인한 정확도 하락 문제를 해결할 수 있다.In addition, it is possible to solve the problem of decreasing accuracy due to the overlapping problem of the affected area when applying differential privacy when processing the optimal place selection query.

도 1은 종래의 최적 장소 선택 질의의 예시도이다.
도 2는 본 발명의 실시예에 따른 위치 선택 시스템의 구조도이다.
도 3은 본 발명의 제1 실시예에 따른 위치 선택 방법에 대한 흐름도이다.
도 4는 본 발명의 제1 실시예에 따른 보로노이 영역 분할 방법에 대한 예시도이다.
도 5는 본 발명의 제2 실시예에 따른 위치 선택 방법에 대한 흐름도이다.
도 6은 본 발명의 실시예에 따라 보로노이 영역의 상한 영역을 구성하는 과정에 대한 예시도이다.
1 is an exemplary diagram of a conventional optimal place selection query.
2 is a structural diagram of a location selection system according to an embodiment of the present invention.
3 is a flowchart of a location selection method according to the first embodiment of the present invention.
4 is an exemplary diagram of a Voronoi region division method according to the first embodiment of the present invention.
5 is a flowchart of a location selection method according to a second embodiment of the present invention.
6 is an exemplary diagram illustrating a process of configuring an upper limit region of a Voronoi region according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, the embodiments of the present invention will be described in detail so that those of ordinary skill in the art to which the present invention pertains can easily implement them. However, the present invention may be embodied in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification, when a part "includes" a certain element, it means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

이하, 도면을 참조로 하여 본 발명의 실시예에 따른 사용자 위치를 이용한 위치 선택 시스템 및 방법에 대해 상세히 설명한다. 본 발명의 실시예에 대해 설명하기 앞서, 종래에 다양한 방법으로 최적 장소를 선택하는 예에 대해 도 1을 참조로 먼저 설명한다.Hereinafter, a system and method for selecting a location using a user's location according to an embodiment of the present invention will be described in detail with reference to the drawings. Prior to describing an embodiment of the present invention, an example of selecting an optimal place by various methods in the prior art will be first described with reference to FIG. 1 .

도 1은 종래의 최적 장소 선택 질의의 예시도이다.1 is an exemplary diagram of a conventional optimal place selection query.

최적장소 선택 질의란 기존 시설들의 위치와 그 시설들을 사용하는 사용자들의 위치를 고려했을 때, 새로운 시설이 입점하기 위한 최적의 위치를 찾아주는 질의를 의미한다. 최적장소 선택 질의는 사용자 집합 C, 기존 시설들의 집합 F가 주어지면, 사용자가 선택할 수 있는 후보 위치들의 집합 P 중에서 사용자에게 가장 많은 영향을 끼칠 수 있는 후보 위치를 선택해 반환한다. The optimal location selection query refers to a query that finds the optimal location for a new facility to enter, considering the locations of existing facilities and the locations of users who use them. Given a user set C and a set of existing facilities F, the optimal location selection query selects and returns the candidate location that has the most influence on the user from among the set P of candidate locations that the user can select.

이 때, 모든 객체 및 사용자는 위치정보를 지니고 있고, 사용자들은 자신의 위치로부터 가장 가까운 시설을 이용한다는 가정을 지닌다. 최적장소 선택 질의는 응용 서비스에 따라 각기 다른 목적함수를 가질 수 있는데, 주로 사용자들의 선택 목적에 따라 다음과 같이 세 가지 방법으로 나뉜다. In this case, it is assumed that all objects and users have location information, and that users use the facility closest to their location. The optimal location selection query can have different objective functions depending on the application service. It is mainly divided into the following three methods according to the user's selection purpose.

첫 번째 방법은 상권 분석과 같이 고객 유치를 위해 영향을 받는 사용자를 최대화하는 최적장소 선택 질의 방법(Max-inf)이다. 또 다른 방법으로, 새로운 프랜차이즈 레스토랑의 입점과 같이 모든 고객과의 거리를 줄이기 위해 사용되는 방법(Min-sum)이 있으며, 마지막으로 소방서나 경찰서와 같이 공공기관 설치를 위해 가장 멀리 있는 사용자의 거리를 최소화하기 위해 사용되는 방법(Min-max)이 있다. The first method is the optimal location selection query method (Max-inf), which maximizes the users affected to attract customers, such as the analysis of the commercial area. As another method, there is a method used to reduce the distance from all customers (min-sum), such as when a new franchise restaurant is opened, and finally, for the installation of public institutions such as fire stations or police stations, the distance of the furthest user is calculated. There is a method used to minimize (Min-max).

도 1의 (a)에 도시된 바와 같이 첫 번째 방법(Max-inf)은, 질의 요청자가 경쟁적인 상권에 위치한 경우, 후보위치들 중에서 최대한 많은 사용자들에게 영향을 끼칠 수 있는 위치를 찾아내길 원한다. 이 때, 모든 장소 객체 및 사용자들이 유클리드 평면상에 위치한 점으로 가정하고, 목적 함수로 두 객체 사이의 거리는 유클리드 거리를 사용하여 수학식 1을 이용하여 주어진 후보 집합 중에서 사용자에게 영향력이 가장 높은 위치를 찾아낸다. As shown in Fig. 1(a), the first method (Max-inf) wants to find a location that can influence as many users as possible among candidate locations when the query requester is located in a competitive commercial area. . At this time, it is assumed that all place objects and users are points located on the Euclidean plane, and the distance between the two objects as an objective function uses the Euclidean distance to determine the position with the highest influence on the user among the given candidate sets using Equation 1 find out

Figure pat00001
Figure pat00001

여기서, w(c)는 사용자들의 영향력을 의미하는데, 응용 서비스마다 다르게 적용될 수 있다. 하지만, 근본적으로 이 값이 질의처리 방법에 영향을 끼치지 않기 때문에 1로 가정하여 설명한다.Here, w(c) denotes the influence of users, and may be applied differently for each application service. However, since this value does not fundamentally affect the query processing method, it is assumed to be 1 for explanation.

그리고, IS(p)는 사용자들이 최근 최근접 시설을 이용한다는 가정하에 후보위치에 영향을 받는 사용자 집합을 의미한다. 후보 위치에 영향을 받는 사용자 집합은 다음 수학식 2와 같이 정의할 수 있다. And, IS(p) means a set of users affected by candidate locations on the assumption that users use the most recent facility. The user set affected by the candidate location can be defined as in Equation 2 below.

Figure pat00002
Figure pat00002

도 1의 (a)에서 P1의 영향을 받는 사용자는 {c2}이고, P2의 영향을 받는 사용자들은 {c3, c4}이며, P3의 영향을 받는 사용자들은 {c3, c4, c5}이다. 수학식 1에 따라 Max-inf 방법에서는 P3가 가장 많은 사용자에게 영향을 끼칠 수 있기 때문에 최적 장소로 반환된다.In (a) of FIG. 1 , users affected by P 1 are {c 2 }, users affected by P 2 are {c 3 , c 4 }, and users affected by P 3 are {c 3 , c 4 , c 5 }. According to Equation 1, in the Max-inf method, since P 3 can affect the most users, it is returned to the optimal place.

한편, 도 1의 (b)에 도시된 바와 같이, 두 번째 방법인 Min-sum 방법은 브랜드 경영자의 입장에서 사용자에게 서비스의 편의를 제공하기 위한 새로운 지점을 선택해 반환한다. 기존 시설들이 모두 상호 보완적인 역할을 한다고 가정하기 때문에, 사용자까지의 거리의 합이 가장 작은 후보위치를 찾는 것을 목적으로 한다. Meanwhile, as shown in (b) of FIG. 1 , the second method, the min-sum method, selects and returns a new point for providing service convenience to the user from the point of view of the brand manager. Since it is assumed that all existing facilities play complementary roles, the goal is to find a candidate location with the smallest sum of distances to users.

Min-sum은 Max-inf와 마찬가지로 사용자들은 모두 최근접 시설을 이용한다고 가정하고, Min-sum의 목적 함수는 다음 수학식 3과 같이 정의된다.Min-sum, like Max-inf, assumes that all users use the nearest facility, and the objective function of Min-sum is defined as in Equation 3 below.

Figure pat00003
Figure pat00003

Max-inf와 같은 예제에 대해 목적 함수가 Min-sum으로 변경된 경우의 결과는 도 1의 (b)와 같다. The result when the objective function is changed to Min-sum for an example such as Max-inf is as shown in (b) of FIG. 1 .

그리고, 수학식 3을 이용해 각각의 후보 위치 중 p1에 대한 비용 함수 값을 구하면 d(f1,c1)+d(f1,c3)+d(f2,c4)+d(f2,c5)+d(p1,c2)=8+16+13+9+5=51이다. 반면, p2는 48, p3는 51이므로 Min-sum의 경우 p2가 최적 장소가 된다.And, when the cost function value for p 1 among each candidate position is obtained using Equation 3, d(f 1 ,c 1 )+d(f 1 ,c 3 )+d(f 2 ,c 4 )+d( f 2 ,c 5 )+d(p 1 ,c 2 )=8+16+13+9+5=51. On the other hand, p 2 is 48 and p 3 is 51, so in case of min-sum, p 2 is the optimal place.

또 다른 방법인 Min-max에서는 사용자들에게 공공 서비스를 제공하는 것을 목적으로 한다. 따라서 각 시설로부터 사용자까지의 거리 중 가장 큰 거리 값이 작아지는 방향으로 후보 시설을 선택한다. Min-sum과 마찬가지로 각각의 시설들은 상호 보완적인 역할을 하며, 사용자들은 최근접 시설을 이용한다고 가정한다. Min-max 방법의 목적 함수는 다음 수학식 4와 같이 정의된다.Another method, Min-max, aims to provide public services to users. Therefore, the candidate facility is selected in a direction in which the largest distance value among the distances from each facility to the user becomes smaller. Like min-sum, each facility plays a complementary role, and it is assumed that users use the nearest facility. The objective function of the Min-max method is defined as in Equation 4 below.

Figure pat00004
Figure pat00004

도 1의 (c)에 도시된 바와 같이 Max-max로 최적 장소를 선택할 경우, p1과 p3은 모두 거리가 가장 큰 에 영향을 주지 못하기 때문에 비용 함수가 d(c2,f1)=25로 유지된다. 반면, p1은 c2의 최근접 시설이 되기 때문에, 비용함수 값을 d(c2,f1)=25에서 d(c3,f1)=16로 낮추게 된다. 따라서, Min-max의 경우 p1이 최적 장소가 된다.As shown in Fig. 1(c), when the optimal place is selected with Max-max, the cost function is d(c 2 ,f 1 ) because both p 1 and p 3 do not have an effect on d(c 2 ,f 1 ) with the largest distance. =25 is maintained. On the other hand, since p 1 is the nearest facility to c 2 , the cost function value is lowered from d(c 2 ,f 1 )=25 to d(c 3 ,f 1 )=16. Therefore, in case of Min-max, p 1 is the optimal place.

이상에서 설명한 바와 같이 종래의 방법으로 최적장소 선택을 질의할 경우, 후보 위치들이 근접해 있는 경우 사용자 정보가 중복으로 사용되기 때문에, 사용자 위치가 노출되는 문제가 발생한다. As described above, when querying for optimal location selection using the conventional method, when candidate locations are close to each other, user information is duplicated, and thus the user location is exposed.

따라서, 본 발명의 실시예에서는 최적 장소 선택 질의 처리 시, 차분 프라이버시를 적용하여 개인 위치 정보를 보호하면서도 정확도가 높은 장소를 선택할 수 있는 시스템 및 방법을 제시한다. 본 발명의 실시예에서는 설명의 편의를 위하여 질의 기법으로 Max-inf를 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.Accordingly, an embodiment of the present invention provides a system and method for selecting a place with high accuracy while protecting personal location information by applying differential privacy when processing an optimal place selection query. In the embodiment of the present invention, for convenience of description, Max-inf is used as an example as a query technique, but the present invention is not limited thereto.

본 발명의 실시예에서는 위치 선택 시스템(100)이 최적 장소 선택 질의에 대해 위치를 선택하기 위해 두 가지 실시예를 예로 하여 설명한다. 본 발명의 실시예에 대해 설명하기 앞서, 본 발명의 실시예에서 언급되는 용어들, 즉, 차분 프라이버시, 민감도, 순차구성, 영향지역에 대해 먼저 다음과 같이 정의한다.In the embodiment of the present invention, two embodiments will be described as an example for the location selection system 100 to select a location for an optimal location selection query. Before describing the embodiment of the present invention, terms mentioned in the embodiment of the present invention, that is, differential privacy, sensitivity, sequential configuration, and affected area are first defined as follows.

차분 프라이버시는 개인 정보보호 기법으로, 임의의 메커니즘 M과 이벤트 집합 S⊆Range(M)가 주어졌을 때, ∥D1-D21≤1를 만족하는 두 이웃 데이터베이스 D1, D2에 대해 아래 수학식 5를 만족하면 메커니즘 M은 차분 프라이버시를 만족한다. Differential privacy is a privacy protection technique. Given an arbitrary mechanism M and an event set S⊆Range (M), for two neighboring databases D 1 and D 2 that satisfy When Equation 5 below is satisfied, the mechanism M satisfies differential privacy.

Figure pat00005
Figure pat00005

수학식 5에서 ε은 프라이버시 보호 예산을 의미하며, 시스템 파라미터로 보호하고자 하는 데이터의 보호 정도를 의미한다. 또한 ∥, ∥1은 L1 노름(norm)을 의미하며, 이웃 데이터베이스란 임의의 한 튜플의 존재 유무만이 차이를 지닌 데이터베이스 쌍을 말한다. In Equation 5, ε means a privacy protection budget, and means a degree of protection of data to be protected as a system parameter. Also, ?, ? 1 means the L 1 norm, and the neighbor database refers to a database pair that differs only in the existence or nonexistence of any one tuple.

차분 프라이버시의 개념에서 또 하나의 중요한 파라미터로 질의의 정확도에 영향을 끼치는 민감도(sensitivity)는 메커니즘 M에 따라 결정되는 값이다. 즉, 이웃 데이터베이스 D1, D2가 주어졌을 때, 메커니즘 M의 민감도 란, 한 튜플의 존재유무에 따라 최악의 경우 M의 결과에 얼마나 많은 영향을 끼치는가를 나타내는 척도를 의미하며, 다음 수학식 6과 같이 표현된다.As another important parameter in the concept of differential privacy, the sensitivity that affects the query accuracy is a value determined according to the mechanism M. That is, given the neighboring databases D 1 and D 2 , the sensitivity of the mechanism M is a measure indicating how much influence on the result of M in the worst case depending on the existence of one tuple, Equation 6 is expressed as

Figure pat00006
Figure pat00006

수학식 6에서 민감도는 적용하는 메커니즘에 따라 L1 노름과 L2 노름 등으로 다르게 정의될 수 있다. 그러나 본 발명의 실시예와 관련된 계산 질의(counting query) 질의의 경우, L1 노름으로 정의되므로 추후 기술되는 모든 민감도는 특별한 언급이 없는 한 L1 노름으로 정의된 민감도를 의미한다. In Equation 6, the sensitivity may be defined differently as the L 1 norm and the L 2 norm, depending on the applied mechanism. However, in the case of a counting query query related to an embodiment of the present invention, since it is defined as the L 1 norm, all sensitivities to be described later refer to sensitivities defined as the L 1 norm unless otherwise specified.

차분 프라이버시는 그 정의의 특성상 같은 데이터베이스에 대한 질의가 반복되는 경우 개인 정보가 유출될 가능성이 커지게 된다. 이런 문제를 순차구성이라 하며, 어떤 메커니즘을 사용한다고 하더라도 아래와 같은 성질을 지니게 된다.Due to the nature of the definition of differential privacy, if a query to the same database is repeated, the possibility of personal information being leaked increases. This problem is called sequential configuration, and no matter what mechanism is used, it has the following properties.

임의의 두 메커니즘 M1, M2와 각각의 메커니즘 별로 프라이버시 예산 ε1, ε2가 주어졌을 때, 두 메커니즘의 조합 M1,2는 (ε12)-차분 프라이버시를 만족하게 된다. 따라서, 연속되는 메커니즘의 조합은 프라이버시 예산이 선형적으로 증가하게 되고, 전체 메커니즘의 결과가 총 만큼의 프라이버시 예산을 사용하고자 하는 경우에는 각각의 메커니즘에 더 많은 노이즈를 추가해야 한다.Given two arbitrary mechanisms M 1 and M 2 and privacy budgets ε 1 and ε 2 for each mechanism, the combination M 1,2 of the two mechanisms satisfies (ε 12 )-differential privacy. Therefore, the combination of successive mechanisms will increase the privacy budget linearly, and if the result of the entire mechanism is to use the total amount of privacy budget, more noise should be added to each mechanism.

차분 프라이버시 기반 최적 장소 선택 질의를 처리하기 위해서는 최적 장소 선택할 때 각각의 목적함수에 맞는 차분 프라이버시를 만족하는 메커니즘을 적용해 질의를 처리해야 한다. 그러나 후보위치들이 근접해 있는 경우에는 사용자 정보가 중복되어 노출되는 문제가 공통적으로 발생하는데 편의를 위해 Max-inf 방법을 통해 이를 설명한다. In order to process the optimal place selection query based on differential privacy, the query must be processed by applying a mechanism that satisfies the differential privacy for each objective function when selecting the optimal place. However, when candidate locations are close to each other, a problem in which user information is duplicated and exposed commonly occurs. For convenience, the Max-inf method is described.

Max-inf 방법에 차분 프라이버시를 적용하기 위한 직관적인 방법은 질의 처리시 라플라스 메커니즘을 적용하는 것이다. 라플라스 메커니즘은 질의 결과에 라플라스 분포로부터 노이즈를 생성해 추가하는 기법으로, 차분 프라이버시를 만족한다. An intuitive way to apply differential privacy to the Max-inf method is to apply the Laplace mechanism in query processing. The Laplace mechanism satisfies differential privacy by generating and adding noise from the Laplace distribution to the query result.

Max-inf 방법에 라플라스 메커니즘을 적용하기 위해서는 우선 후보위치가 영향을 끼치는 영역을 구성해야 한다. 이를 후보 위치의 영향 지역(influence region)이라 한다. In order to apply the Laplace mechanism to the Max-inf method, it is necessary to first configure the area where the candidate position affects. This is called an influence region of the candidate location.

영향 지역 내에 위치한 사용자들은 모두 후보 지역 p를 최근접 시설로 하게 되고, 이는 곧 이런 사용자들의 집합이 상술한 수학식 2의 IS(p)임을 의미한다. 따라서 모든 후보 지역마다 영향 지역을 구성한다면, 최적 장소 선택 질의를 수행할 수 있다. All users located in the affected area use the candidate area p as the nearest facility, which means that the set of these users is IS(p) in Equation 2 above. Therefore, if an influence region is configured for every candidate region, an optimal place selection query can be performed.

도 2는 본 발명의 실시예에 따른 위치 선택 시스템의 구조도이다.2 is a structural diagram of a location selection system according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 적어도 하나의 프로세서에 의해 동작하는 위치 선택 시스템(100)에서, 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행한다. 프로그램은 컴퓨터 판독 가능한 저장매체에 저장될 수 있고, 유통될 수 있다. As shown in FIG. 2 , in the location selection system 100 operated by at least one processor, a program including instructions described to perform the operation of the present invention is executed. The program may be stored in a computer-readable storage medium and may be distributed.

위치 선택 시스템(100)의 하드웨어는 적어도 하나의 프로세서(110), 메모리(120), 스토리지(130), 통신 인터페이스(140)를 포함할 수 있고, 버스를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 위치 선택 시스템(100)은 프로그램을 구동할 수 있는 운영 체제를 비롯한 각종 소프트웨어가 탑재될 수 있다.Hardware of the location selection system 100 may include at least one processor 110 , a memory 120 , a storage 130 , and a communication interface 140 , and may be connected through a bus. In addition, hardware such as an input device and an output device may be included. The location selection system 100 may be loaded with various software including an operating system capable of driving a program.

프로세서(110)는 위치 선택 시스템(100)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. The processor 110 is a device for controlling the operation of the location selection system 100 and may be various types of processors that process instructions included in a program, for example, a central processing unit (CPU), a micro processor (MPU) unit), microcontroller unit (MCU), graphic processing unit (GPU), or the like.

프로세서(110)는 차분 프라이버시 기반 최적 장소 선택 질의를 처리하기 위해, 유클리드 공간 상의 임의의 점에 대해 후보 위치와 영향 지역을 구성한다. 임의의 점에 대해 후보 위치와 영향 지역을 구성하는 방법에 대해서는 이후 상세히 설명한다.The processor 110 constructs a candidate location and an influence region for any point on the Euclidean space in order to process the differential privacy-based best place selection query. A method of constructing a candidate location and an area of influence for an arbitrary point will be described in detail later.

그리고 프로세서(110)는 영향 지역을 보로노이 영역 분할(voronoi region partition) 기법을 이용하여 복수의 보로노이 영역으로 분할한다. 또한, 프로세서(110)는 개인 위치 정보를 보호하기 위해 적어도 하나의 중복 후보 위치를 확인하고, 확인한 중복 후보 위치에 차분 프라이버시를 적용한다.In addition, the processor 110 divides the affected region into a plurality of Voronoi regions using a voronoi region partitioning technique. In addition, the processor 110 identifies at least one overlapping candidate location in order to protect personal location information, and applies differential privacy to the checked overlapping candidate location.

또한, 프로세서(110)는 R-트리 구조 기반의 확장 보로노이 영역 가지치기 기법을 이용하여, 후보 위치의 영향 지역에 대한 상한 영역을 계산한다. 프로세서(110)가 상한 영역을 계산할 때, 들로네 삼각화(Delaunay triangulation)를 이용하며, 이에 대해서는 이수 상세히 설명한다.In addition, the processor 110 calculates an upper bound region for the influence region of the candidate location by using the extended Voronoi region pruning technique based on the R-tree structure. When the processor 110 calculates the upper bound region, Delaunay triangulation is used, which will be described in detail.

메모리(120)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(110)에 의해 처리되도록 해당 프로그램을 로드한다. 메모리(120)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 스토리지(130)는 본 발명의 동작을 실행하는데 요구되는 각종 데이터, 프로그램 등을 저장한다. 통신 인터페이스(140)는 유/무선 통신 모듈일 수 있다.The memory 120 loads the corresponding program so that the instructions described to execute the operation of the present invention are processed by the processor 110 . The memory 120 may be, for example, read only memory (ROM), random access memory (RAM), or the like. The storage 130 stores various data and programs required to execute the operation of the present invention. The communication interface 140 may be a wired/wireless communication module.

이상에서 설명한 위치 선택 시스템(100)이 최적 장소 선택 질의를 처리하여 최적 장소를 선택하는 방법에 대해 도 3 내지 도 6을 참조로 설명한다. 도 3에서는 보로노이 영역 분할 기법을 이용하여 최적 장소 선택 질의를 처리하는 제1 실시예에 따른 방법을 설명하며, 도 5에서는 R-트리 구조 기반 확장 보로노이 영역 가지치기 기법을 이용하여 최적 장소 선택 질의를 처리하는 제2 실시예에 따른 방법을 설명한다.A method for the location selection system 100 described above to select an optimal location by processing an optimal location selection query will be described with reference to FIGS. 3 to 6 . In FIG. 3, a method according to the first embodiment of processing an optimal place selection query using the Voronoi region partitioning technique is described. In FIG. 5, the optimal place selection using the extended Voronoi region pruning technique based on the R-tree structure is described. A method according to the second embodiment of processing a query will be described.

도 3은 본 발명의 제1 실시예에 따른 위치 선택 방법에 대한 흐름도이다.3 is a flowchart of a location selection method according to the first embodiment of the present invention.

종래의 기술을 통해 순차 구성을 적용해 최적 장소 선택 질의를 수행할 경우, 정확도가 지수적(exponentially)으로 감소하는 문제가 발생한다. 이를 해결하기 위해 본 발명의 실시예에서는 보로노이 영역을 분할해 병렬 구성(parallel composition)을 적용하는 보로노이 영역 분할 방법(VPM: Voronoi region Partition Method)을 제안한다. 여기서, 보로노이 영역은 복수의 기존 시설들이 위치한 2차원 평면 상의 임의의 점으로부터 기존 시설까지의 거리가 가장 가까운 점의 집합으로 2차원 평면을 분할했을 때의 영역을 의미한다. When an optimal place selection query is performed by applying a sequential configuration through the prior art, there is a problem in that the accuracy is exponentially reduced. To solve this problem, an embodiment of the present invention proposes a Voronoi region partitioning method (VPM) in which a parallel composition is applied by dividing a Voronoi region. Here, the Voronoi region refers to an area obtained by dividing a two-dimensional plane into a set of points having the closest distance from an arbitrary point on a two-dimensional plane in which a plurality of existing facilities are located to the existing facility.

도 3에 도시된 바와 같이 질의에 대한 최적 위치를 반환하는 과정에서 보로노이 영역 분할 방법을 적용하기 위해, 위치 선택 시스템(100)은 먼저 질의에 대한 최적 장소를 선택해야 할 유클리드 공간 즉, 2차원의 좌표 평면으로 구성된 전체 영역(이하, 설명의 편의를 위하여 '대상 영역'이라 지칭함)에서 후보 위치를 확인한다(S100). 여기서 후보 위치는 대상 영역에 임의의 위치에 기 설정되어 있다.As shown in Fig. 3, in order to apply the Voronoi region segmentation method in the process of returning the optimal position for the query, the position selection system 100 first selects the optimal position for the query in the Euclidean space, that is, two-dimensional. A candidate location is identified in the entire area (hereinafter, referred to as a 'target area' for convenience of description) composed of the coordinate plane of ( S100 ). Here, the candidate position is preset at an arbitrary position in the target area.

위치 선택 시스템(100)은 각 후보 위치를 기초로 영향 지역들을 생성한다(S110). 여기서, 영향 지역은 각 후보 위치 별로, 어느 하나의 후보 위치와 기존 시설들을 결합하여 만든 보로노이 영역을 해당 후보 위치의 영향 지역이라 한다. 즉, 2차원 평면 상의 임의의 점들 중에서 후보 위치까지의 거리가 가장 가까운 점들의 집합을 영향 지역이라 할 수 있다. 위치 선택 시스템(100)이 후보 위치를 기초로 영향 지역을 생성하는 방법은 다양한 방법으로 생성할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.The location selection system 100 generates influence regions based on each candidate location ( S110 ). Here, the affected area is a Voronoi area created by combining any one candidate location and existing facilities for each candidate location is referred to as an impact area of the corresponding candidate location. That is, a set of points having the closest distance to a candidate location among arbitrary points on a two-dimensional plane may be referred to as an influence region. Since the method for the location selection system 100 to generate the affected area based on the candidate location can be generated in various ways, the embodiment of the present invention is not limited to any one method.

위치 선택 시스템(100)은 각 후보 위치마다 기존 시설들과 보로노이 영역을 구성하고, 보로노이 영역 간 교차 영역을 확인한다(S120). 그리고, 위치 선택 시스템(100)은 각 후보 위치들의 보로노이 영역 집합, 후보 위치들의 집합, 사용자 위치, 프라이버시 예산을 입력으로 수신한다(S130).The location selection system 100 configures the Voronoi area with the existing facilities for each candidate location, and checks the intersection area between the Voronoi areas (S120). Then, the location selection system 100 receives as inputs a Voronoi area set of each candidate location, a set of candidate locations, a user location, and a privacy budget ( S130 ).

위치 선택 시스템(100)은 S130 단계에서 수신한 각 후보 위치의 영향 지역들 중, 다른 후보 위치에 의해 확인된 영향 지역과 중첩되는 중첩 지역과 비 중첩 지역을 분할한다(S140). 그리고 위치 선택 시스템(100)은 확인한 중첩 지역의 보로노이 영역에 위치한 사용자 수를 카운트한다(S150). The location selection system 100 divides an overlapping area and a non-overlapping area that overlaps the impact area identified by another candidate location among the affected areas of each candidate location received in step S130 (S140). And the location selection system 100 counts the number of users located in the Voronoi area of the confirmed overlapping area (S150).

위치 선택 시스템(100)은 중첩 지역의 보로노이 영역에 사용자 수를 카운트한 후, 각 보로노이 영역별로 사용자 수에 노이즈를 반영하여 보로노이 영역별 노이즈 값을 계산한다(S160). 본 발명의 실시예에서는 라플라스 메커니즘을 적용하여 중첩 지역의 보로노이 영역별로 위치한 사용자 수에 노이즈를 반영하는 것을 예로 하여 설명하며, 라플라스 메커니즘은 이미 알려진 것으로 본 발명의 실시예에서는 상세한 설명을 생략한다.After counting the number of users in the Voronoi region of the overlapping region, the location selection system 100 calculates a noise value for each Voronoi region by reflecting the noise to the number of users for each Voronoi region (S160). In the embodiment of the present invention, the Laplace mechanism is applied to reflect noise to the number of users located in each Voronoi region of the overlapping region as an example, and the Laplace mechanism is already known, and detailed description is omitted in the embodiment of the present invention.

위치 선택 시스템(100)은 중첩 지역의 보로노이 영역별 노이즈 값을 더하여 해당 후보 위치에 대한 노이즈 값을 계산하고, 각 후보 위치에 대해 계산된 노이즈 값을 기초로 복수의 후보 영역 중 최적 장소를 선택하여 제공한다(S170). The position selection system 100 calculates a noise value for a corresponding candidate position by adding noise values for each Voronoi region of the overlapping region, and selects an optimal place among a plurality of candidate regions based on the calculated noise value for each candidate position to provide (S170).

도 4는 본 발명의 제1 실시예에 따른 보로노이 영역 분할 방법에 대한 예시도이다.4 is an exemplary diagram of a Voronoi region division method according to the first embodiment of the present invention.

도 4에 도시된 바와 같이, 위치 선택 시스템(100)은 모든 후보 위치에 대해 영향 지역을 계산한다. 위치 선택 시스템(100)은 후보 위치들의 보로노이 영역 집합과 후보 위치들의 집합, 사용자 위치와 프라이버시 예산을 입력으로 받아, 다음 표 1의 알고리즘을 수행한다. As shown in Figure 4, the location selection system 100 calculates an area of influence for every candidate location. The location selection system 100 receives as inputs a Voronoi region set of candidate locations, a set of candidate locations, a user location, and a privacy budget, and performs the algorithm shown in Table 1 below.

표 1의 알고리즘은 보로노이 영역마다 노이즈 카운트를 생성하는 과정을 나타낸 알고리즘이고, 표 2의 알고리즘은 분할 영역을 계산하는 과정에 대한 알고리즘이다. The algorithm of Table 1 is an algorithm showing the process of generating a noise count for each Voronoi region, and the algorithm of Table 2 is an algorithm for the process of calculating the divided region.

Figure pat00007
Figure pat00007

Figure pat00008
Figure pat00008

위치 선택 시스템(100)은 표 1의 알고리즘을 이용하여 먼저 후보 위치 별로 교차 영역이 발생하는 중복 후보 위치 집합을 구한 후, 표 2의 알고리즘을 호출하여 분할 영역을 계산한다. The location selection system 100 uses the algorithm of Table 1 to first obtain a set of duplicate candidate locations in which an intersection area occurs for each candidate location, and then calls the algorithm of Table 2 to calculate the partitioned area.

분할 영역을 구하면 위치 선택 시스템(100)은 분할된 영역마다 노이즈 카운트를 생성한 후, 가장 큰 노이즈 카운트를 지닌 후보 위치를 반환한다. 표 1의 알고리즘의 5~7줄은 중복 후보 위치 집합을 구하는 부분이고, 8번째 줄은 분할 영역을 계산하기 위해 표 2의 알고리즘을 호출하는 부분이다. When the segmented area is obtained, the location selection system 100 generates a noise count for each segmented area, and then returns a candidate location having the largest noise count. Lines 5 to 7 of the algorithm in Table 1 are the part to obtain a set of duplicate candidate positions, and the 8th line is the part to call the algorithm in Table 2 to calculate the partition area.

마지막으로 분할 영역을 반환 받아 10~12번째 줄까지 노이즈 카운트를 생성한다. 표 2의 알고리즘은 분할-정복 방식으로 분할 영역을 계산하는 코드로 재귀적으로 호출된다. 여기서, pv는 현재까지 분할된 영역, j는 중복 후보 위치 집합에서 몇 번째 후보 위치까지 중복 영역을 계산했는지에 대한 인덱스를 의미한다. Finally, it returns the segmented region and generates noise counts from the 10th to 12th lines. The algorithm in Table 2 is called recursively with a code that calculates a partition region in a divide-and-conquer manner. Here, pv denotes an area divided up to now, and j denotes an index of the number of candidate positions from the set of overlapping candidate positions to which the overlapping region is calculated.

위치 선택 시스템(100)은 중복 후보 위치 집합 내의 모든 후보 위치들의 중복 영역을 계산할 때까지 표 2의 알고리즘을 반복한다. 그리고, 표 2의 알고리즘에서 8번째 줄에서 교차 영역을 계산하고, 9번재 줄에서 교차 영역과 그렇지 않은 영역으로 나눈다. 그리고 나서, 위치 선택 시스템(100)은 10~11번째 줄에서 각각의 경우에 대해 다른 후보 위치들과의 중복 영역을 계산하기 위해 알고리즘을 재귀적으로 호출한다. 마지막으로 분할된 영역들을 결합해서 반환한다.The location selection system 100 repeats the algorithm of Table 2 until it calculates the overlapping area of all candidate locations in the set of redundant candidate locations. Then, in the algorithm of Table 2, the intersection area is calculated in the 8th line, and the intersection area and the non-intersecting area are divided in the 9th line. Then, the location selection system 100 recursively calls the algorithm to calculate the overlapping area with other candidate locations for each case in lines 10-11. Finally, the partitioned regions are combined and returned.

상술한 도 1의 (a)에서 p1의 경우를 예로 하여 설명하면, 위치 선택 시스템(100)은 도 4의 (a)에 도시된 바와 같이 p1 에 대한 보로노이 영역(A~C)을 구성한다. 그리고, A, B, C 영역에 포함된 사용자를 구하면 도 4의 (b)와 같이 A:{c2}, B:{ }, C:{ }이 된다. 그리고 p1의 노이즈 값은 (2+nA)+(0+nB)+(0+nC)=(2+nA+nB+nC)가 된다. 여기서 nX는 각각 영역 X에 추가된 노이즈를 의미한다.Referring to the case of p 1 in (a) of FIG. 1 described above as an example, the location selection system 100 selects the Voronoi regions A to C for p 1 as shown in FIG. 4 (a). make up And, when users included in areas A, B, and C are found, A:{c 2 }, B:{ }, and C:{ } are obtained as shown in FIG. 4(b). And the noise value of p 1 becomes (2+n A )+(0+n B )+(0+n C )=(2+n A +n B +n C ). Here, n X means noise added to the area X, respectively.

이렇게 보로노이 영역을 분할해 각각의 보로노이 영역마다 노이즈 카운트를 생성할 경우, 후보 위치의 영향 지역끼리 교차되지 않기 때문에 영향 지역 중복 문제를 해결할 수 있다. In this way, when the Voronoi region is divided and a noise count is generated for each Voronoi region, the affected region overlapping problem can be solved because the affected regions of the candidate locations do not intersect.

또한, 분할된 보로노이 영역에 노이즈를 추가할 경우, 차분 프라이버시의 병렬 구성을 적용할 수 있다. 보로노이 영역 분할 방법에서 분할된 영역의 수를 N이라 하면, 병렬 구성의 특성에 따라 추가된 전체 노이즈는

Figure pat00009
에 비례하여 증가하기 때문에 정확도 면에서 순차구성보다 더 효과적이다. In addition, when noise is added to the divided Voronoi region, a parallel configuration of differential privacy can be applied. If the number of divided regions in the Voronoi region division method is N, the total noise added according to the characteristics of the parallel configuration is
Figure pat00009
Since it increases in proportion to , it is more effective than sequential configuration in terms of accuracy.

다음은 사용자들에 영향력이 적은 후보 위치를 사전에 걸러내어 불필요한 계산 비용을 줄이기 위하여, 프라이버시 예산을 나눠 사용함으로써 정확도 높고 효율적인 질의 처리 방법을 제2 실시예로 하여 설명한다. 즉, 보로노이 영역 분할 기법이 아닌 R-트리 구조 기반 확장 보로노이 영역 가지치기 기법을 이용하여 최적 위치를 선택하는 방법에 대해 도 5를 참조로 설명한다.Next, a method for high-accuracy and efficient query processing by dividing a privacy budget in order to reduce unnecessary computation costs by filtering out candidate locations having little influence on users in advance will be described as a second embodiment. That is, a method of selecting an optimal position using the R-tree structure-based extended Voronoi region pruning technique rather than the Voronoi region division technique will be described with reference to FIG. 5 .

도 5는 본 발명의 제2 실시예에 따른 위치 선택 방법에 대한 흐름도이다.5 is a flowchart of a location selection method according to a second embodiment of the present invention.

도 5에 도시된 바와 같이, 위치 선택 시스템(100)은 먼저 대상 영역에서 기존 시설들에 대한 위치를 각각 확인한 후(S200), 대상 영역에 위치한 후보 위치를 기초로 영향 지역들을 확인한다(S210). As shown in FIG. 5 , the location selection system 100 first checks the locations of the existing facilities in the target area (S200), and then checks the affected areas based on the candidate locations located in the target area (S210) .

그리고 각 기존 시설들을 기초로 보로노이 영역들로 분할한다(S220). 이때, 위치 선택 시스템(100)이 기존 시설들을 기초로 보로노이 영역들을 분할하는 방법은 다양하게 수행될 수 있으므로 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다. 그리고 후보 위치는 복수의 보로노이 영역 중 어느 하나의 영역에 포함된다.And it is divided into Voronoi areas based on each existing facility (S220). At this time, the method for the location selection system 100 to divide the Voronoi areas based on existing facilities may be performed in various ways, so the embodiment of the present invention is not limited to any one method. And the candidate position is included in any one of the plurality of Voronoi regions.

위치 선택 시스템(100)은 후보 위치들에 대한 제1 트리(Rp), 각 기존 시설들에 대한 제2 트리(Rf), 그리고 프라이버시 예산을 입력으로 수신한다(S230). 여기서 제1 트리와 제2 트리의 형태를 어느 하나의 형태로 한정하지 않는다.The location selection system 100 receives a first tree (R p ) for candidate locations, a second tree (R f ) for each existing facility, and a privacy budget as inputs ( S230 ). Here, the shapes of the first tree and the second tree are not limited to any one shape.

그리고 위치 선택 시스템(100)은 수신한 프라이버시 예산을 제1 프라이버시 예산(ε1)과 제2 프라이버시 예산(ε2)으로 나눈다(S240). ε1은 영향력이 적은 후보 위치 즉, 제2 트리인 Rf를 찾아내기 위해 사용하고, ε2는 질의 처리 과정에서 보로노이 영역 분할 기법을 적용할 때 사용한다. 본 발명의 실시예에서는, 위치 선택 시스템(100)이 프라이버시 예산을 제1 프라이버시 예산과 제2 프라이버시 예산으로 나누는 방법, 그리고 나누는 비율을 어느 하나로 한정하여 설명하지 않는다.And the location selection system 100 divides the received privacy budget into a first privacy budget (ε 1 ) and a second privacy budget (ε 2 ) ( S240 ). ε 1 is used to find a candidate location with low influence, that is, R f , which is the second tree, and ε 2 is used when applying the Voronoi domain partitioning technique in the query processing process. In the embodiment of the present invention, the method for the location selection system 100 to divide the privacy budget into the first privacy budget and the second privacy budget, and the dividing ratio are not described as limiting to either one.

위치 선택 시스템(100)은 복수의 보로노이 영역들 중 상한 영역을 구성하고자 하는 임의의 보로노이 영역을 선택한다(S250). 위치 선택 시스템(100)이 임의의 보로노이 영역을 선택하는 방법은 다양하며, 모든 보로노이 영역들에 대해 상한 영역이 구성되기 때문에 선택되는 보로노이 영역을 어느 하나로 특정하여 설명하지 않는다. The location selection system 100 selects an arbitrary Voronoi region to configure the upper limit region from among the plurality of Voronoi regions ( S250 ). There are various methods for the location selection system 100 to select an arbitrary Voronoi region, and since an upper limit region is configured for all Voronoi regions, a selected Voronoi region is not specifically described.

위치 선택 시스템(100)은 선택한 보로노이 영역 주변의 보로노이 영역에 위치한 다른 기존 시설들과 들로네 삼각형을 구성한다(S260). 즉, 위치 선택 시스템(100)은 선택한 보로노이 영역과 중첩되는 들로네 삼각형의 외접원을 구한다. The location selection system 100 configures a Delaunay triangle with other existing facilities located in the Voronoi area around the selected Voronoi area (S260). That is, the position selection system 100 obtains the circumscribed circle of the Delaunay triangle overlapping the selected Voronoi region.

여기서 들로네 삼각형은 보로노이 다이어그램이 구성된 이산 포인트 집합이 있을 때, 보로노이 영역의 정점을 기준으로 이웃한 세 포인트를 연결해 삼각형을 만들고, 그 삼각형 외접원 내부에는 다른 포인트가 들어오지 않도록 평면을 분할하는 방법이다. 이 때, 이 외접원의 중심이 보로노이 영역의 정점이 된다. 만약 새로운 점이 입력된다면, 입력된 점이 외접원 내에 위치하게 되는 모든 들로네 삼각형들이 영향을 받게 되고, 이 삼각형과 관련된 포인트들이 새로 입력된 점의 보로노이 이웃이 된다.Here, the Delaunay triangle is a method of creating a triangle by connecting three neighboring points based on the vertices of the Voronoi region when there is a set of discrete points comprising the Voronoi diagram, and dividing the plane so that no other points enter the circumcircle of the triangle. . At this time, the center of the circumscribed circle becomes the vertex of the Voronoi region. If a new point is input, all Delaunay triangles in which the input point is located within the circumcircle are affected, and the points related to this triangle become Voronoi neighbors of the newly input point.

위치 선택 시스템(100)은 선택한 보로노이 영역의 상한 영역을 구성한다(S270). 즉, S260 단계에서 구한 외접원들과 관계된 기존 시설들의 보로노이 셀들을 결합하여 선택한 보로노이 영역의 상한 영역을 구성한다. 이때, 구성한 상한 영역은 선택한 보로노이 영역에 위치한 후보의 영향 지역보다 크게 구성된다. 그리고 후보 지역이 기존 시설들의 보로노이 셀 내에 다른 곳에 위치하더라도, 영향 지역이 상한 영역보다 작다.The position selection system 100 configures an upper limit region of the selected Voronoi region (S270). That is, the Voronoi cells of the existing facilities related to the circumscribed circles obtained in step S260 are combined to form an upper limit region of the selected Voronoi region. In this case, the configured upper limit region is larger than the influence region of the candidate located in the selected Voronoi region. And even if the candidate area is located elsewhere within the Voronoi cell of the existing facilities, the affected area is smaller than the upper limit area.

위치 선택 시스템(100)은 S270 단계에서 구성한 상한 영역에 위치한 사용자 수에 노이즈를 반영한다(S280). 이를 위해, 위치 선택 시스템(100)은 R-트리를 두 개 이용하는데, 후보 위치에 대한 R-트리(Rp)와 기존 시설 위치에 대한 R-트리(Rf)로 구분할 수 있다. The location selection system 100 reflects the noise to the number of users located in the upper limit region configured in step S270 (S280). To this end, the location selection system 100 uses two R-trees, and can be divided into an R-tree (R p ) for a candidate location and an R-tree (R f ) for an existing facility location.

여기서, 기존 시설 위치에 대한 R-트리인 Rf는 기존 시설들의 보로노이 영역에 대한 aR-트리로 구성된다. aR-트리는 R-트리의 변형된 형태로, 노드들마다 어그리게이션(aggregation) 값들을 지니고 있다. 본 발명의 실시예에서는 노이즈 카운트의 상한 값을 지니고 있는 것으로 예를 들어 설명한다.. Here, R f , which is an R-tree for the location of an existing facility, is composed of an aR-tree for the Voronoi region of the existing facilities. The aR-tree is a modified form of the R-tree, and each node has aggregation values. In the embodiment of the present invention, it will be described as an example having an upper limit value of the noise count.

위치 선택 시스템(100)은 S280 단계에서 각 후보 위치의 상한 영역별로 노이즈가 반영된 사용자 수를 기초로 최적 장소를 선택하여 반환한다(S290). The location selection system 100 selects and returns an optimal location based on the number of users to which noise is reflected for each upper limit region of each candidate location in step S280 (S290).

다음은 보로노이 영역의 상한 영역을 구성하는 과정에 대해 도 6을 참조로 설명한다.Next, a process of configuring the upper limit region of the Voronoi region will be described with reference to FIG. 6 .

도 6은 본 발명의 실시예에 따라 보로노이 영역의 상한 영역을 구성하는 과정에 대한 예시도이다.6 is an exemplary diagram illustrating a process of configuring an upper limit region of a Voronoi region according to an embodiment of the present invention.

도 6의 (a)에 도시된 바와 같이 위치 선택 시스템(100)이 기존 시설들로 보로노이 다이어그램을 구성한다. 이는 임의의 후보 위치 p1로 상한 영역을 구성하게 되면 해당 후보 위치의 영향 지역이 기존 시설 f2의 영향 지역보다 넓다는 것을 보여주기 위해 도시한 것이다. 본 발명의 실시예에서는 복수의 후보 위치 중 p1을 예로 하여 설명하며, 복수의 기존 시설 중 f2의 상한 영역을 구성하는 것을 예로 하여 설명한다.As shown in (a) of Figure 6, the location selection system 100 constitutes a Voronoi diagram with existing facilities. This is shown to show that when the upper limit area is configured with a random candidate location p 1 , the affected area of the candidate location is wider than the impact area of the existing facility f 2 . In the embodiment of the present invention, p 1 among a plurality of candidate locations will be described as an example, and configuration of an upper limit region of f 2 among a plurality of existing facilities will be described as an example.

도 6의 (b)에 도시된 바와 같이, 음영으로 표시된 보로노이 영역은 상한 영역을 구성하려는 대상이 되는 기존 시설의 보로노이 영역을 표시한 것이다. As shown in (b) of FIG. 6 , the shaded Voronoi area indicates the Voronoi area of the existing facility, which is a target for configuring the upper limit area.

위치 선택 시스템(100)은 선택한 기존 시설 f2의 상한 영역을 구성하기 위해 다음의 단계를 거친다. 먼저, 주변의 다른 기존 시설들과 들로네 삼각형을 구성한다. The location selection system 100 goes through the following steps to configure the upper limit area of the selected existing facility f 2 . First, it composes the Delaunay triangle with other existing facilities in the vicinity.

이를 위해 위치 선택 시스템(100)은 들로네 삼각형의 외접원을 구성하는데, 도 6의 (c)에 도시된 바와 같이 f2의 보로노이 영역과 중첩되는 외접원을 구한다. 그리고, 위치 선택 시스템(100)은 각 들로네 삼각형들의 외접원을 구하고, 도 6의 (c)에 도시된 음영으로 표시된 영역과 중첩되는 외접원들을 찾는다.To this end, the location selection system 100 constructs the circumscribed circle of the Delaunay triangle, and as shown in FIG. 6(c) , obtains a circumscribed circle overlapping the Voronoi region of f 2 . Then, the location selection system 100 finds the circumscribed circle of each Delaunay triangle, and finds the circumscribed circles overlapping the shaded area shown in FIG. 6( c ).

그리고, 위치 선택 시스템(100)은 도 6의 (d)에 도시된 바와 같이, f2의 상한 영역을 구성한다. 이때, 도 6의 (c)에서 구한 외접원들과 관계된 기존 시설들의 보로노이 셀들을 결합하여 상한 영역으로 구성한다. 위치 선택 시스템(100)이 구성한 상한 영역은 도 6의 (e)에 도시된 바와 같이, 후보 위치의 영향 지역(빗금 영역, ①)보다 큰 것을 알 수 있다. And, as shown in (d) of FIG. 6, the location selection system 100 constitutes an upper limit region of f 2 . At this time, the Voronoi cells of the existing facilities related to the circumscribed circles obtained in (c) of FIG. 6 are combined to form an upper limit region. It can be seen that the upper limit area configured by the location selection system 100 is larger than the area affected by the candidate location (hatched area, ①), as shown in FIG. 6E .

이때, 새로운 후보 위치가 점으로 입력되면, 입력된 점이 외접원 내에 위치하게 되는 모든 들로네 삼각형들이 영향을 받게 된다. 이 삼각형과 관련된 포인트들이 새로 입력된 점의 보로노이 이웃이 된다. 위치 선택 시스템(100)은 후보 보로노이 이웃을 다음 수학식 7과 같이 정의한다. At this time, when a new candidate position is input as a point, all Delaunay triangles in which the input point is located within the circumcircle are affected. Points related to this triangle become Voronoi neighbors of the newly input point. The location selection system 100 defines a candidate Voronoi neighbor as in Equation 7 below.

Figure pat00010
Figure pat00010

여기서, DT는 기존 시설들의 집합으로 구성된 들로네 삼각형 집합, Disk()를 들로네 삼각형의 외접원이라고 하면, 후보 보로노이 이웃은 기존 시설들의 부분집합으로 정의된다.Here, if DT is the Delaunay triangle set composed of the set of existing facilities, and Disk() is the circumscribed circle of the Delaunay triangle, the candidate Voronoi neighborhood is defined as a subset of the existing facilities.

후보 보로노이 이웃은 임의의 후보 위치 p가 V(f)에 위치한 경우 영향을 받게 되는 기존 시설들의 상한 집합이다. 따라서, 후보 위치 p의 영향 지역은 후보 보로노이 이웃에 포함된 기존 시설들의 보로노이 영역보다 커질 수 없다. 따라서, CVN(p)에 포함된 기존 시설들의 보로노이 영역 집합을 확장 보로노이 영역이라 하고, ε1을 사용해 노이즈 카운트를 생성한다. 위치 선택 시스템(100)이 노이즈 카운트를 생성할 때, 다음 수학식 8 및 수학식 9를 이용한다.A candidate Voronoi neighborhood is an upper bound set of existing facilities that will be affected if any candidate location p is located in V(f). Therefore, the affected area of the candidate location p cannot be larger than the Voronoi area of existing facilities included in the candidate Voronoi neighborhood. Therefore, a set of Voronoi regions of existing facilities included in CVN(p) is called an extended Voronoi region, and a noise count is generated using ε 1 . When the position selection system 100 generates the noise count, the following equations (8) and (9) are used.

Figure pat00011
Figure pat00011

Figure pat00012
Figure pat00012

수학식 9는 라플라스 노이즈 부분에 중복 후보 위치 집합의 크기 대신 1이 들어갔다는 것을 제외하고는 상술한 수학식 6과 같은 형태를 지닌다. Equation 9 has the same form as Equation 6 described above, except that 1 is entered in the Laplace noise part instead of the size of the set of overlapping candidate positions.

이렇게 모든 기존 시설의 보로노이 영역에 대한 후보 보로노이 이웃을 찾고 노이즈 카운트를 생성한 후에는, 불필요한 후보 위치들을 질의 처리 과정 중에 가지치기를 수행할 수 있다. 확장 보로노이 영역 방법에서는 aR-tree를 이용해 기존 시설들의 인덱스 Rf를 구성하고, 최적 우선 탐색 방식(best first search)으로 Rf를 탐색하며 질의 처리를 수행한다. After finding candidate Voronoi neighbors for Voronoi regions of all existing facilities and generating noise counts, unnecessary candidate positions may be pruned during query processing. In the extended Voronoi domain method, the index R f of existing facilities is constructed using aR-tree, and query processing is performed by searching for R f using the best first search method.

Rf의 말단 노드에는 기존 시설들의 보로노이 영역과 노이즈 카운트의 상한 갑들 중 가장 큰 값을 저장한다. 그리고 루트 노드 및 중간 노드에는 자신의 자식 노드들에 대한 상한 값을 저장한다. 각 노드 별 노이즈 카운트 상한 값은 노드가 루트 노드를 포함한 중간 노드인 경우에는 수학식 10과 같이 계산되고, 그 외의 경우에는 수학식 11과 같이 계산된다. In the terminal node of R f , the largest value among the Voronoi region of existing facilities and the upper limit of the noise count is stored. In addition, upper limit values for own child nodes are stored in the root node and the intermediate node. The upper limit of the noise count for each node is calculated as in Equation 10 when the node is an intermediate node including the root node, and is calculated as Equation 11 in other cases.

Figure pat00013
Figure pat00013

Figure pat00014
Figure pat00014

보로노이 영역 기반의 질의 처리 방법은 후보 위치들의 R-트리 Rp와 사용자 위치에 대한 R-트리 Rc, 마지막으로 기존 시설들에 대한 aR-트리 Rf의 세 개의 R-tree 구조를 사용한다. VEM(Voronoi envelope based filtering method)은 기본적으로 Rf를 탐색하면서 관련된 Rp의 중간 노드들을 찾아나가고, 그와 동시에 노이즈 카운트 상한 값이 현재까지 계산한 최적 카운트 보다 낮은 경우에는 가지치기 한다. The Voronoi region-based query processing method uses three R-tree structures: an R-tree R p for candidate locations, an R-tree R c for user locations, and an aR-tree R f for existing facilities. . The Voronoi envelope based filtering method (VEM) basically searches for R f while searching for intermediate nodes of R p , and at the same time prunes when the upper limit of the noise count is lower than the optimal count calculated so far.

만약 말단 노드에 도달한 경우에는 관련된 후보 위치들에 대해 보로노이 기반으로 영역을 분할한다. Ep(Ef)를 Rp(Rf)의 노드 또는 객체들이라고 할 때, 전체적인 질의 처리 과정을 노드들의 타입에 따라 아래의 4가지 경우로 나눌 수 있다. If the terminal node is reached, the region is divided based on Voronoi for the relevant candidate positions. When E p (E f ) is a node or objects of R p (R f ), the overall query processing process can be divided into the following four cases according to the types of nodes.

ⅰ) Ep, Ef가 모두 R-트리의 노드일 때,i) When E p , E f are both nodes of the R-tree,

ⅱ) Ep는 후보 위치 객체이고, Ef는 R-트리의 노드일 때,ii) When E p is a candidate location object, and E f is a node of the R-tree,

ⅲ) Ep는 R-트리 노드이고, Ef는 기존 시설의 보로노이 영역일 때,iii) When E p is an R-tree node, and E f is the Voronoi region of an existing facility,

ⅳ) Ep는 후보 위치 객체이고, Ef는 기존 시설의 보로노이 영역일 때,iv) When E p is a candidate location object, and E f is the Voronoi area of an existing facility,

위치 선택 시스템(100)은 우선순위 큐를 이용해 위의 네 가지 경우에 후보위치들과 관련된 후보 보로노이 이웃을 찾아나가며, 동시에 노이즈 카운트 상한 값을 최적 카운트 값과 비교해 큐에 삽입할지 말지를 결정한다. The position selection system 100 uses the priority queue to find the candidate Voronoi neighbors related to the candidate positions in the above four cases, and at the same time compares the noise count upper limit value with the optimal count value to determine whether or not to insert it into the queue .

ⅰ)의 경우에는 Ep, Ef의 자식 노드들을 탐색하고, 그들의 MBR들이 교차되는 자식 노드 쌍들을 찾아 노이즈 카운트 상한이 최적 카운트 값 보다 큰 경우에만 큐에 삽입한다. In case i), the child nodes of E p and E f are searched, and the child node pairs where their MBRs intersect are found and inserted into the queue only when the noise count upper limit is greater than the optimal count value.

ⅱ)의 경우에는 Ef의 자식 노드들을 탐색하고 Ep를 포함하고 있는 자식 노드를 찾아 노이즈 카운트 상한이 최적 카운트 값 보다 큰 경우에만 큐에 삽입한다. In case ii), the child nodes of E f are searched, the child nodes containing E p are found, and the noise count upper limit is greater than the optimal count value and inserted into the queue.

ⅲ)의 경우에는 Ep의 자식 노드들을 탐색하고 Ef의 노이즈 카운트 상한이 최적 카운트 값 보다 큰 경우에만 큐에 삽입한다. In case iii), the child nodes of E p are searched, and only when the upper limit of the noise count of E f is greater than the optimal count value, it is inserted into the queue.

마지막으로 ⅳ)의 경우에는 보로노이 기반 영역 분할을 수행하고, 필요한 경우 최적 카운트 값을 갱신한다.Finally, in case iv), Voronoi-based region division is performed and, if necessary, the optimal count value is updated.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements by those skilled in the art using the basic concept of the present invention as defined in the following claims are also provided. is within the scope of the right.

Claims (11)

적어도 하나의 프로세서에 의해 동작하는 위치 선택 시스템이 사용자의 위치를 이용하여 질의에 대한 위치를 선택하는 방법으로서,
질의에 의해 선택될 수 있는 복수의 후보 위치들, 복수의 기존 시설들에 대한 기존 시설 위치들, 그리고 적어도 한 명의 사용자가 대상 영역에 위치하며,
질의를 수신하면 각 후보 위치에 대한 영향 지역을 확인하는 단계,
상기 기존 시설들 각각의 위치를 기초로 상기 대상 영역을 복수의 보로노이 영역들로 구성하는 단계,
임의의 보로노이 영역과 상기 임의의 보로노이 영역 주변의 기존 시설물들을 기초로, 상기 임의의 보로노이 영역에 대한 상한 영역을 구성하는 단계,
상기 상한 영역에 위치한 사용자 수에 노이즈를 반영하는 단계, 그리고
적어도 하나의 상한 영역으로 구성된 각 후보 위치별로 노이즈가 반영된 사용자 수를 확인하고, 상기 수신한 질의에 대한 최적 장소를 선택하는 단계
를 포함하는, 위치 선택 방법.
A method for a location selection system operated by at least one processor to use a location of a user to select a location for a query, the method comprising:
A plurality of candidate locations that can be selected by a query, existing facility locations for a plurality of existing facilities, and at least one user are located in the target area;
upon receiving a query, identifying an area of influence for each candidate location;
Composing the target area into a plurality of Voronoi areas based on the location of each of the existing facilities;
Constructing an upper limit area for the arbitrary Voronoi area based on the arbitrary Voronoi area and existing facilities around the arbitrary Voronoi area;
reflecting noise to the number of users located in the upper limit region; and
Checking the number of users to which noise is reflected for each candidate location composed of at least one upper limit region, and selecting an optimal location for the received query
A method of selecting a location, including.
제1항에 있어서,
상기 상한 영역을 구성하는 단계는,
상기 임의의 보로노이 영역에 위치한 제1 기존 시설과 상기 제1 기존 시설 주변의 다른 제2 기존 시설들로 들로네 삼각형을 구성하는 단계,
상기 들로네 삼각형의 제1 외접원을 확인하는 단계,
상기 임의의 보로노이 영역과 중첩되는 제2 외접원을 구하는 단계, 그리고
상기 제1 외접원 및 제2 외접원에 포함된 기존 시설들 각각의 보로노이 셀들을 결합하여 상기 상한 영역으로 구성하는 단계
를 포함하는, 위치 선택 방법.
According to claim 1,
The step of configuring the upper limit region comprises:
constructing a Delaunay triangle with a first existing facility located in the arbitrary Voronoi area and other second existing facilities around the first existing facility;
identifying a first circumscribed circle of the Delaunay triangle;
obtaining a second circumscribed circle overlapping the arbitrary Voronoi region, and
Combining Voronoi cells of each of the existing facilities included in the first circumscribed circle and the second circumscribed circle to form the upper limit region
A method for selecting a location, including.
제2항에 있어서,
상기 보로노이 영역들로 구성하는 단계는,
상기 후보 위치들에 대한 제1 트리, 상기 기존 시설들에 대한 제2 트리, 그리고 프라이버시 예산을 수신하는 단계
를 포함하는, 위치 선택 방법.
3. The method of claim 2,
The step of configuring the Voronoi regions comprises:
receiving a first tree for the candidate locations, a second tree for the existing facilities, and a privacy budget;
A method of selecting a location, including.
제3항에 있어서,
상기 제2 트리는 상기 기존 시설들에 대한 보로노이 영역에 대한 aR-트리로 구성되는, 위치 선택 방법.
4. The method of claim 3,
The second tree is composed of an aR-tree for the Voronoi region for the existing facilities.
제4항에 있어서,
상기 프라이버시 예산을 수신하는 단계는,
상기 입력된 프라이버시 예산을 제1 프라이버시 예산과 제2 프라이버시 예산으로 나누는, 위치 선택 방법.
5. The method of claim 4,
Receiving the privacy budget comprises:
and dividing the input privacy budget into a first privacy budget and a second privacy budget.
제5항에 있어서,
상기 제1 프라이버시 예산은 상기 제2 트리를 찾아내기 위해 사용되고, 상기 제2 프라이버시 예산은 보로노이 영역을 분할할 때 사용되는, 위치 선택 방법.
6. The method of claim 5,
wherein the first privacy budget is used to find the second tree, and the second privacy budget is used when partitioning the Voronoi region.
적어도 하나의 프로세서에 의해 동작하는 위치 선택 시스템이 사용자의 위치를 이용하여 질의에 대한 위치를 선택하는 방법으로서,
질의에 의해 선택될 수 있는 복수의 후보 위치들, 복수의 기존 시설들에 대한 기존 시설 위치들, 그리고 적어도 한 명의 사용자가 대상 영역에 위치하며,
질의를 수신하면 각 후보 위치에 대한 영향 지역을 확인하는 단계,
상기 기존 시설들의 위치를 기초로 각 후보 위치마다 보로노이 영역을 구성하고, 각 보로노이 영역간 교차 영역을 확인하는 단계,
임의의 후보 위치에 대해 복수의 보로노이 영역으로 구성된 영향 지역에서, 또 다른 후보 위치에 의한 영향 지역이 중첩되는 중첩 지역과 비 중첩 지역을 분할하는 단계,
상기 중첩 지역에 포함된 적어도 하나의 보로노이 영역에 위치한 사용자 수를 카운트하고, 상기 적어도 하나의 보로노이 영역별로 사용자 수에 노이즈를 반영하여 노이즈 값을 계산하는 단계, 그리고
각 후보 위치별로 노이즈가 반영된 사용자 수를 확인하고, 상기 수신한 질의에 대한 최적 장소를 선택하는 단계
를 포함하는, 위치 선택 방법.
A method for a location selection system operated by at least one processor to use a location of a user to select a location for a query, the method comprising:
A plurality of candidate locations that can be selected by a query, existing facility locations for a plurality of existing facilities, and at least one user are located in the target area;
upon receiving a query, identifying an area of influence for each candidate location;
constructing a Voronoi area for each candidate location based on the locations of the existing facilities, and checking an intersection area between each Voronoi area;
dividing an overlapping area and a non-overlapping area in which an area of influence by another candidate location overlaps in an area of influence composed of a plurality of Voronoi areas for any candidate position;
counting the number of users located in at least one Voronoi region included in the overlapping region, and calculating a noise value by reflecting noise in the number of users for each Voronoi region; And
Checking the number of users with noise reflected for each candidate location, and selecting an optimal location for the received query
A method for selecting a location, including.
제7항에 있어서,
상기 각 보로노이 영역간 교차 영역을 확인하는 단계는,
각 후보 위치별로 상기 기존 시설들과 가장 가까운 점의 집합을 보로노이 영역 분할 기법으로 분할하여 복수의 보로노이 영역들로 생성하는, 위치 선택 방법.
8. The method of claim 7,
The step of confirming the intersection area between each Voronoi area is,
A location selection method for generating a plurality of Voronoi areas by dividing a set of points closest to the existing facilities for each candidate location using a Voronoi area segmentation technique.
제8항에 있어서,
상기 중첩 지역과 비중첩 지역을 분할하는 단계는,
상기 각 후보 위치의 보로노이 영역 집합, 후보 위치들의 집합, 상기 사용자의 위치, 그리고 프라이버시 예산을 입력으로 수신하는 단계
를 포함하는, 위치 선택 방법.
9. The method of claim 8,
The step of dividing the overlapping region and the non-overlapping region includes:
receiving as inputs a Voronoi area set of each candidate location, a set of candidate locations, a location of the user, and a privacy budget;
A method of selecting a location, including.
제9항에 있어서,
상기 노이즈 값을 계산하는 단계는,
상기 보로노이 영역에 위치한 사용자 수 별로 라플라스 노이즈를 추가하는, 위치 선택 방법.
10. The method of claim 9,
Calculating the noise value comprises:
A location selection method of adding Laplace noise according to the number of users located in the Voronoi region.
제10항에 있어서,
상기 노이즈 값을 계산하는 단계는,
상기 각 후보 위치별로, 복수의 보로노이 영역 별로 계산된 노이즈 값을 더하여 각 후보 위치별 노이즈가 반영된 사용자 수로 계산하는, 위치 선택 방법.
11. The method of claim 10,
Calculating the noise value comprises:
For each candidate location, the number of users to which the noise for each candidate location is reflected by adding the calculated noise values for a plurality of Voronoi regions is calculated as a location selection method.
KR1020200173784A 2020-12-11 2020-12-11 Method for location selection using user location with differential privacy applied Withdrawn KR20220083489A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200173784A KR20220083489A (en) 2020-12-11 2020-12-11 Method for location selection using user location with differential privacy applied

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200173784A KR20220083489A (en) 2020-12-11 2020-12-11 Method for location selection using user location with differential privacy applied

Publications (1)

Publication Number Publication Date
KR20220083489A true KR20220083489A (en) 2022-06-20

Family

ID=82250089

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200173784A Withdrawn KR20220083489A (en) 2020-12-11 2020-12-11 Method for location selection using user location with differential privacy applied

Country Status (1)

Country Link
KR (1) KR20220083489A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170797A (en) * 2023-02-17 2023-05-26 安徽师范大学 Location Privacy Preserving Method for Crowd Sensing Task Assignment
KR102557800B1 (en) 2022-12-15 2023-07-19 고려대학교 산학협력단 Device and method for constructing differentially private decision trees

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102557800B1 (en) 2022-12-15 2023-07-19 고려대학교 산학협력단 Device and method for constructing differentially private decision trees
CN116170797A (en) * 2023-02-17 2023-05-26 安徽师范大学 Location Privacy Preserving Method for Crowd Sensing Task Assignment

Similar Documents

Publication Publication Date Title
US9501577B2 (en) Recommending points of interests in a region
US8812488B2 (en) Constructing multidimensional histograms for complex spatial geometry objects
Procopiuc et al. Star-tree: An efficient self-adjusting index for moving objects
US20080140311A1 (en) Reverse geocoding system using combined street segment and point datasets
CN111460234B (en) Graph query method, device, electronic equipment and computer readable storage medium
US20050137994A1 (en) High-performance location management platform
JP2020523650A (en) Method and apparatus for determining a geofence index grid
US20160203173A1 (en) Indexing methods and systems for spatial data objects
CN109271467B (en) A direction-aware method for querying k-nearest neighbors of moving objects in road networks
CN112033413A (en) Improved A-algorithm combined with environmental information
US6353832B1 (en) Selectivity estimation in spatial databases
CN112887910B (en) Method and device for determining abnormal coverage area and computer readable storage medium
KR20220083489A (en) Method for location selection using user location with differential privacy applied
CN110298687B (en) Regional attraction assessment method and device
CN103714098A (en) Method and system used for sectioning data base
US9910878B2 (en) Methods for processing within-distance queries
US7836047B2 (en) Method for assignment of point level address geocodes to street networks
Akitaya et al. Subtrajectory clustering: Finding set covers for set systems of subcurves
CN107368512B (en) Method, device and equipment for querying information object and determining sequence of information object and readable medium
US20070073897A1 (en) Optimal sequenced route query operation and device
CN115048412B (en) Stop point division method, device, computer equipment and storage medium
CN113312436B (en) Spatial index processing method and device
KR102367753B1 (en) A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query
KR20220052195A (en) Apparatus and method for single group collective trip planning query processing using G-tree index structures on road networks
CN116320973B (en) Positioning method, device, equipment and storage medium

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

PC1203 Withdrawal of no request for examination

St.27 status event code: N-1-6-B10-B12-nap-PC1203

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000