KR102505050B1 - 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법 - Google Patents

최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법 Download PDF

Info

Publication number
KR102505050B1
KR102505050B1 KR1020200126756A KR20200126756A KR102505050B1 KR 102505050 B1 KR102505050 B1 KR 102505050B1 KR 1020200126756 A KR1020200126756 A KR 1020200126756A KR 20200126756 A KR20200126756 A KR 20200126756A KR 102505050 B1 KR102505050 B1 KR 102505050B1
Authority
KR
South Korea
Prior art keywords
attributes
skyline
data
value
current
Prior art date
Application number
KR1020200126756A
Other languages
English (en)
Other versions
KR20220043396A (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 KR1020200126756A priority Critical patent/KR102505050B1/ko
Publication of KR20220043396A publication Critical patent/KR20220043396A/ko
Application granted granted Critical
Publication of KR102505050B1 publication Critical patent/KR102505050B1/ko

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/2291User-Defined Types; Storage management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 명세서에 개시된 기술은 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법에 관한 것으로서, 하나 이상의 속성을 갖는 하나 이상의 데이터 세트를 입력받는 제 1 단계; 상기 하나 이상의 속성 모두에 대하여, 각각의 초기 최솟값을 지정하고, N-1 개의 열을 갖는 N 개의 배열들의 집합인 딕셔너리를 생성하는 제 2 단계- 상기 N은 상기 하나 이상의 속성의 수임 -; 상기 하나 이상의 속성 중 현재 속성에 대하여, 나머지 속성들의 최솟값을 탐색하는 제 3 단계를 포함하고, 상기 제 3 단계는 상기 하나 이상의 속성 모두에 대하여 반복되고, 상기 제 2 내지 제 3 단계는 상기 하나 이상의 데이터 세트 내 모든 데이터 객체에 대하여 반복되며, 스카이라인 후보군을 반환하는 제 4 단계를 더 포함할 수 있다.

Description

최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법{Pre-processing method for Skyline Query based on Nearest Neighbor Query}
본 명세서에 개시된 기술은 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법에 관한 것으로서, 더욱 상세하게는 스카이라인 질의 중 실시간으로 선호 객체를 탐색하는 최근접 이웃 탐색 기반에서 반복 노출되는 스카이라인 후보군을 줄여 불필요한 탐색 시간을 줄이기 위한 전처리 방법에 관한 것이다.
스마트 기기의 발전에 따라 대규모 멀티미디어 콘텐츠가 빠르게 생산되고 있으며, 각종 센서와 SNS로 인하여 다양한 데이터의 수집이 용이해지고 있다. 빅데이터가 발전하면서 데이터의 의미를 분석하는 데이터 마이닝이 주요 분석 기법으로 대두되었다. 특히, 데이터 객체의 속성이 다양한 경우에는 사용자의 선호도에 부합하는 데이터를 탐색할 수 있는 분석 기법이 필요하다.
스카이라인 질의(Skyline Query)는 다차원 속성을 비교하여 사용자의 선호도에 맞는 객체를 추천하는 대표적인 기법으로, 다른 속성에 의해 지배되지 않는 객체들을 탐색하는 것이 주 내용이다. 여기서 '지배된다'는 용어의 의미는 하나의 객체가 다른 객체에 대해 모든 속성에서 사용자의 선호도를 기준으로 더 나쁜 값을 갖는 상태를 말한다.
최근접 이웃 질의(Nearest Neighbor Query, NN)는 Skyline Query의 정의에 부합하며 동시에 빠른 결과를 제공하는 기법이다. 먼저, D&C(Divide and Conquer) 알고리즘을 사용하여 데이터를 여러 부분의 파티션으로 나누고, 각 부분에 대한 최근접 이웃을 구한다. NN 알고리즘의 성능은 탐색 영역에 포함된 데이터의 수에 따라 달라지는데, 만약 탐색 영역에 데이터의 분포가 밀집되어 있다면 방문한 영역을 재탐색하게 되므로 전체 탐색 시간이 중복된 재탐색 시간만큼 늘어나 전체적인 성능 저하가 발생한다.
본 발명은 전술한 문제 및 이와 연관된 다른 문제를 해결하는 것을 목적으로 한다.
본 명세서의 일 예시적 목적은, 불필요한 탐색 시간을 줄일 수 있는 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법을 제공하는 것이다.
본 명세서에 개시된 기술의 기술적 사상에 따른 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법이 이루고자 하는 기술적 과제는 이상에서 언급한 문제점을 해결하기 위한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제는 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 명세서에 개시된 기술의 일 실시예에 따른 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법은, 하나 이상의 속성을 갖는 하나 이상의 데이터 세트를 입력받는 제 1 단계; 상기 하나 이상의 속성 모두에 대하여, 각각의 초기 최솟값을 지정하고, N-1 개의 열을 갖는 N 개의 배열들의 집합인 딕셔너리를 생성하는 제 2 단계- 상기 N은 상기 하나 이상의 속성의 수임 -; 상기 하나 이상의 속성 중 현재 속성에 대하여, 나머지 속성들의 최솟값을 탐색하는 제 3 단계를 포함하고, 상기 제 3 단계는 상기 하나 이상의 속성 모두에 대하여 반복되고, 상기 제 2 내지 제 3 단계는 상기 하나 이상의 데이터 세트 내 모든 데이터 객체에 대하여 반복되며, 스카이라인 후보군을 반환하는 제 4 단계를 더 포함할 수 있다.
상기 방법에 있어서, 상기 제 3 단계는: 상기 딕셔너리 내 상기 N 개의 배열들 각각에 대하여, 상기 하나 이상의 속성들의 각각에 인덱싱하여 저장소 배열로 정의하고, 상기 하나 이상의 속성에 따라 불러오는 값의 범위를 달리하는 순회 배열을 정의하고, 현재 속성을 제 1 변수로, 상기 순회 배열의 현재 위치를 제 2 변수로 설정하는 단계; 상기 제 1 및 제 2 변수를 갖는 현재 객체의 값이 상기 제 1 및 제 2 변수를 갖는 저장소 배열의 값보다 작거나 같은 경우, 카운트 값을 하나 증가시키고, 모든 상기 저장소 배열에 대하여 새로운 최솟값 정보인 현재 객체를 추가하는 단계; 상기 제 2 변수의 값이 N-2와 같아질 때까지 상기 현재 객체를 추가하는 단계를 반복하는 단계; 상기 카운트 값이 0 보다 큰 경우, 플래그를 참으로 변경하는 단계; 상기 카운트 값이 상기 저장소 배열의 속성 개수와 일치하는 경우, 상기 스카이라인 후보군의 모든 객체들에 대해 현재 속성인 제 1 변수를 갖는 객체를 제거하고, 상기 카운트 값을 0으로 초기화하는 단계; 및 상기 플래그 값이 참인 경우, 상기 스카이라인 후보군에 상기 현재 객체를 추가하고, 상기 플래그를 거짓으로 변경하는 단계를 포함할 수 있다.
본 명세서에 개시된 기술의 일 실시예에 따른 매체에 저장된 컴퓨터 프로그램은, 상기 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법의 각 단계들을 수행하도록 구성된 컴퓨터 판독가능 명령어를 포함할 수 있다.
본 명세서에 개시된 기술의 일 실시예에 따른 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법은 아래와 같은 효과를 가진다.
실시간 대화형 어플리케이션에 적합한 최근접 이웃 스카이라인 질의 방식을 사용함에 있어서, NN 알고리즘을 수행하기 전에 각 속성을 나타내는 축에서 탐색 범위를 제한함으로써 처리 성능 및 속도를 향상시킬 수 있다.
다만, 본 명세서에 개시된 기술의 일 실시예에 따른 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 명세서에 개시된 기술의 일 실시예에 따른 스카이라인 질의를 위한 전처리 방법의 순서도를 나타낸 것이다.
도 2는 본 명세서에 개시된 스카이라인 질의를 위한 전처리 방법의 각 단계를 세부적으로 나타낸 것이다.
도 3은 본 명세서에 개시된 스카이라인 질의를 위한 전처리 방법의 각 단계를 세부적으로 나타낸 것이다.
도 4는 본 명세서에 개시된 NN 알고리즘을 설명하기 위한 예시를 나타낸 것이다.
도 5는 본 명세서에 개시된 스카이라인 질의를 위한 전처리 방법을 설명하기 위한 예시를 나타낸 것이다.
도 6은 본 명세서에 개시된 스카이라인 질의를 위한 전처리 방법의 수행 결과를 실험하기 위한 데이터 세트의 분포를 각각 나타낸 것이다.
도 7은 본 명세서에 개시된 스카이라인 질의를 위한 전처리 방법의 수행 결과를 각 축의 범위를 200 X 200으로 지정하여 실행 시간으로 나타낸 것이다.
도 8은 본 명세서에 개시된 스카이라인 질의를 위한 전처리 방법의 수행 결과를 각 축의 범위를 300 X 300으로 지정하여 실행 시간으로 나타낸 것이다.
본 명세서에 개시된 기술은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 명세서에 개시된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 명세서에 개시된 기술은 본 명세서에 개시된 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 명세서에 개시된 기술을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "결합된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결 또는 결합될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결 또는 결합될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부'로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
다양한 실시예에서 사용된 "제 1", "제 2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 해당 구성요소들을 한정하지 않는다. 예를 들면, 본 명세서에 개시된 기술의 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 바꾸어 명명될 수 있다.
이하, 바람직한 실시예에 따른 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법을 상세히 설명하도록 한다.
먼저, 도 4에 따른 최근접 탐색 기반의 스카이라인 질의가 상세히 설명된다.
최근접 이웃 스카이라인 질의(Nearest Neighbor Algorithm, NN 알고리즘)는 Divide and Conquer(D&C) 방식을 토대로 최근접 객체를 찾는 기법이다. NN 알고리즘은 기존의 블록 중첩 루프 알고리즘과 D&C 알고리즘과 같은 일괄처리 방식이 즉각적인 데이터 반환을 할 수 없다는 단점을 해결하였다.
NN 알고리즘은 D&C 알고리즘과 같이 영역을 분할하면서 해당 영역에서 스카이라인을 구하는 즉시 반환하기 때문에, 대화형 애플리케이션에 더 적합하다. NN 알고리즘을 사용하기 위해서는 전체 데이터 중 영점인 (0, 0)과 가까운 NN 객체를 찾고, 해당 객체를 기준으로 2, 4 사분면을 대상으로 재연산한다. 이 때, NN에 의해 지배되는 1 사분면의 객체들은 제거된다.
예를 들어, 도 4에서, 첫번째 NN 점은 전체 영역을 대상으로 연산되므로, 유클리드 거리가 3√2 인 P(3, 3) 객체가 된다. P를 대상으로 2, 4 사분면으로 영역을 나누고, 2 사분면을 대상으로 NN 객체를 탐색한다. 다음은 (0, 3)에서 (3, 8)까지의 영역에서 NN 객체를 탐색하게 되므로, 유클리드 거리가 √29 인 Q(2, 5)가 NN 객체가 된다. 마지막으로, Q에 의해 2, 4 사분면으로 영역을 나누고 2 사분면을 살펴보면, 유클리드 거리가 √37 인 R(1, 6)이 NN 객체에 해당하게 된다.
여기서, 영역 A의 객체들은 P, Q, R을 탐색하는 과정에서 반복적으로 재탐색되어 3 번의 연산 과정에 참여하게 된다. A 영역의 객체 수가 많을수록 불필요한 연산에 재노출되는 객체가 존재하게 되며, 이는 성능 저하를 야기시킨다. 위와 같은 NN 알고리즘의 단점은 객체들에 대한 지배 관계 비교를 통한 탐색 대상 축소 방법으로 개선할 수 있으며, 해당 전처리 기법이 아래 계속하여 설명될 것이다.
도 5에서 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법의 예시가 설명된다.
스카이라인은 다량의 데이터 객체에서 사용자의 요구를 만족하는 속성을 중심으로 객체를 추천하기 위하여 사용된다. 기존의 스카이라인 질의에서 NN 알고리즘은 대화형 어플리케이션을 위해 실시간을 스카이라인 객체를 출력하였으나, 반복적인 객체 비교에 의하여 탐색 성능이 저하되는 단점이 있었다. 이에, 본 명세서에서 제안되는 스카이라인 질의 전처리 기법인 Pre-NN 알고리즘은 NN 알고리즘을 수행하기 전에 각 속성을 나타내는 축에서 탐색 범위를 제한함으로써 처리 성능을 향상시키는 방법에 관하여 설명한다.
본 발명의 일 실시예에서 속성의 범위를 제한하는 방법은 다음과 같다. 도 5의 (a)에서 x 축을 기준으로 x = 3 이라는 가상의 수직선을 긋는다면, (3, 1), (3, 2), (3, 3)의 객체가 각각 존재한다. 해당 객체들은 모두 x 축의 값이 3으로 고정되어 있으며, y 값만 상이하다. 즉, 3으로 값이 고정되어 있는 x 축 외에, y 축에 대해서만 여러 값을 갖게 된다. 해당 수직선에서 최솟값을 갖는 객체는 (3, 1)이 되므로, 해당 객체만이 스카이라인 후보군으로 저장된다. 도 5의 (b)는 (a) 이후의 상황으로 y = 1 이라는 가상의 선을 설정할 경우, 최솟값은 (1, 1)이 된다. 기존의 스카이라인 후보군에 포함된 (3, 1)의 객체보다 (1, 1)의 객체가 x 속성에 대하여 더 작은 값을 갖게 되므로, 객체 (3, 1)을 후보군에서 제거하고 (1, 1)을 후보군에 포함시킨다.
제안된 전처리 기법에서 각 축의 수직선으로 구별되는 최소 영역은 다음과 같이 정의된다.
정의: 수직선의 최소 범위 (Minimum Range of Vertical Line)
ds 를 탐색 영역의 데이터 세트라 할 때, x, y는 데이터 객체의 속성이다. 두 속성은 2 차원 공간에서 각각 x 축 및 y 축으로 표현된다. 이 때, 각 축에서 데이터의 탐색 범위를 축소하기 위한 객체의 최소 범위 (x, y)는 다음과 같다.
Figure 112020103837727-pat00001
Figure 112020103837727-pat00002
상기 정의는 x, y 축에 대한 범위 제한을 나타내고 있으며, 수학식 (1)은 x 축의 탐색 범위를 제한하는 것으로, x를 전체 데이터 세트(ds)로 놓고, y는 각 x의 수직선 상에 있는 좌표 중 최솟값을 의미한다. 이는 도 5의 (a)에 적용된다. 수학식 (2)는 y 축의 수직선을 기준으로 y를 전체 데이터 세트(ds)로 놓고, x는 최솟값으로 하여 탐색 범위를 제한한다.
도 1은 본 발명의 일 실시예에 따른 스카이라인 질의를 위한 전처리 방법의 순서도를 나타낸 것이다.
도 1을 참고하면, Pre-NN 알고리즘은 먼저 하나 이상의 다차원 속성을 갖는 데이터 세트를 입력받는 것으로 시작된다(S101). 이후, 상기 하나 이상의 다차원 속성 모두에 대하여, 각각의 초기 최솟값이 지정된 값으로 설정되고, j는 속성을 식별하는 변수이며, n은 속성의 개수를 나타낸다. 또한, 데이터들의 각 속성의 값을 인덱스(index)로 가지는 n개의 딕셔너리를 생성하며, 이 딕셔너리는 속성의 개수가 n일 때, n-1개의 열을 가지는 n개의 배열을 나타낸다. 예를 들어, 데이터 세트들의 속성 개수가 3개일 경우, 딕셔너리에는 2개의 열을 가지는 3개의 배열이 생성된다(S102). 이는 즉, 하나 이상의 다차원 속성 중 특정 하나의 속성을 기준으로, 나머지 속성 값들의 최솟값을 탐색하기 위해서 사용된다.
단계 S103에서, 현재 속성(j)을 기준으로 나머지 속성들의 최솟값을 탐색하는 방법이 개시된다. 해당 최솟값 탐색 단계는 j를 하나씩 증가시켜가며 모든 속성에 대하여 수행되며, 이는 모든 데이터 세트들에 대해서도 마찬가지로 반복적으로 수행된다.
상기의 최솟값 탐색 단계들이 모든 속성 및 모든 데이터 세트들에 대하여 수행된 경우, 단계 S104에서 스카이라인 후보군(s.c)를 반환하고, 본 알고리즘은 종료된다.
도 1의 알고리즘을 보다 더 상세히 설명하기 위하여, 도 2 및 도 3의 각 단계가 함께 도시된다.
도 2 및 도 3에서, 단계 S103이 보다 더 상세히 설명되며, 이러한 현재 속성(j)에 대하여 나머지 속성들의 최솟값을 탐색하는 단계(S103)는, 상기의 딕셔너리 및 최솟값 저장소를 이용하여 수행된다.
먼저, j는 현재 속성을 식별하는 변수로, 0부터 n-1까지의 값을 가진다. 최솟값 저장소는, 현재 속성을 기준으로 탐색된 나머지 속성 값들의 최솟값 배열이 속성 n개 만큼 저장된 것을 나타낸다. 순회 기능은, 현재 기준이 되는 속성이 무엇인지에 따라 불러와야 할 나머지 속성 값의 범위가 달라지므로, 이를 설정하기 위하여 사용된다. 예를 들면, 총 4개의 속성 중 현재 기준이 되는 속성이 첫번째 속성이라면, 나머지 2, 3, 4번째 속성 값들(새롭게 불러들인 속성 값)과 현재 최솟값 저장소에 저장된 2, 3, 4번째 속성 값들을 비교하기 위하여 해당 순회 범위가 결정된다(S301).
단계 S301에서 변수의 초기 선언 및 설정이 완료되었으면, 이후 단계 S201에서 조건문이 수행된다.
S201은, 현재 탐색 중인 속성을 기준으로, 현재 최솟값 저장소에 저장된 값들이 새로 탐색 대상이 되는 데이터 객체의 값보다 크거나 같은지 여부를 열을 하나씩 증가시켜가며 확인하는 단계를 나타낸다. 해당 단계에서, 크거나 같은 조건을 만족하는 경우, 현재 저장소에 저장된 값보다 새롭게 읽어들인 객체의 값이 더 작은 것이므로, 이를 최솟값 저장소에 추가할 필요가 있다. 따라서 해당 조건을 만족할 경우, 다음 단계 S302에서, 카운트인 cnt를 1만큼 증가시켜주고, 저장소[현재객체[j]][k]의 값을 현재객체[순회[j]][k]로 변경하여, 현재 속성을 기준으로 가장 최솟값이 되는 값을 최솟값 저장소에 저장한다. 다음으로 단계 S303에서, 현재 속성을 제외한 나머지 속성의 최솟값 저장소들에 대해서도, 상기의 최솟값으로 배열의 값을 변경한다.
상기의 S201, S302, S303 단계는 데이터 객체의 모든 열에 대한 값들에 수행되기 위하여, k를 1씩 증가시키면서 반복적으로 모두 수행된다.
상기의 단계가 모두 수행되면, 현재 속성을 기준으로 나머지 열들의 최솟값 정보가 업데이트 되었을 것이므로, 해당 조건을 만족하는 경우 다음 조건문으로 이동한다.
다음 조건문에서, 현재 속성을 기준으로 데이터 객체의 값들 중 현재 최솟값 저장소에 저장된 값보다 더 작은 값이 있는 경우 증가시키는 cnt 값을 살펴보았을 때, 0보다 큰 경우, 이는 S201의 조건문을 하나 이상에서 만족한 것이며, 또한 이는 현재 최솟값 저장소에 저장된 값보다 현재 데이터 객체의 값들 중 작은 값이 하나 이상 존재함을 의미한다.
상기의 조건이 만족되는 경우 ('cnt > 0'인 경우), 플래그를 참으로 변경하며, 해당 플래그는 스카이라인 후보군에 추가되는지 여부를 나타내는 것이다. 상기 플래그가 참인 경우, 아래 서술되는 바와 같이 단계 S307에서 스카이라인 후보군에 현재 데이터 객체를 추가한다.
다음 조건문으로서, cnt 변수의 값이 저장소의 나머지 속성 개수(N-1)과 동일한 경우, 이는 현재 속성을 기준으로 나머지 속성들에 대한 값들이 모두 작은 값임을 의미하므로, 스카이라인 후보로서의 정의를 만족하지 않아 삭제되어야 한다. 따라서, 단계 S305에서, 스카이라인 후보군의 모든 객체들에 대해 현재객체[j] == sc[j]을 통하여, 기존의 스카이라인 후보는 제거된다.
이후 단계 S306에서, 카운트 값 cnt은 다시 0으로 설정되고, 플래그 값이 참인 조건을 만족하는 경우, 단계 S307에서 스카이라인 후보군인 sc에 현재 데이터 객체를 추가하는 동작이 수행된다. 이후, 단계 S308에서 다음 속성들에 대한 상기의 S103 단계를 다시 수행하기 위하여, flag는 거짓으로 재설정되고, 해당 S103 단계는 종료된다.
이러한 Pre-NN 알고리즘은, 같은 수직선 상에 위치한 데이터들의 지배 관계를 비교하여 연산에 불필요한 객체들을 미리 제거해주는 알고리즘으로서, 본 알고리즘의 효과는 데이터의 개수가 전체 영역의 최대 포함 가능 개수에 가까워 질수록 밀집된 데이터가 많아지므로, 불필요한 객체가 제거되어 전체 탐색 성능이 향상된다는 점에 있다.
도 6은 본 명세서에 개시된 스카이라인 질의를 위한 전처리 방법의 수행 결과를 실험하기 위한 데이터 세트의 분포를 각각 나타낸 것이다.
도 6의 (a)는 이산 균등 분포 데이터 세트이며, (b)는 이산 편향 분포 데이터 세트를 나타낸다. NN 알고리즘과의 실험 환경을 같게 하기 위하여 데이터의 중복은 없는 것으로 가정한다. 실험 환경은 다음의 표 1과 같다.
구분 내용
시스템 Intel Xeon Silver 4114 CPU 2.20GHz * 2개, RAM 128GB
언어 Python
데이터 범위 200개, 300개
데이터 수 1,000 ~ 20,000개
속성 수 2개
실험 횟수 5,000회
x 축과 y 축의 범위는 편의를 위해 200개로 지정하고, 중복이 없다는 가정하에 전체 영역에 속하는 데이터 세트의 수는 x Х y로 40,000개가 된다. 균등 분포의 경우 데이터 세트는 범위 사이의 값들을 랜덤하게 받아들이므로 데이터들은 (a)와 같이 영역의 전반에 고르게 분포하게 된다. 실험은 극단적인 상황을 제외하기 위해 데이터의 개수를 최소 100개, 최대 30,000개로 지정하여 수행된다. 편향 분포의 경우 (b)와 같이 사각형의 특정 부분으로 치우친 데이터 세트가 형성되기 때문에 전체 영역에 속하는 데이터 개수의 1/4 크기에 해당하는 개수(사각형의 네 모서리 중 한 부분)만 실험한다. 즉, 균등 분포의 경우 100개, 1,000개, 5,000개, 10,000개, 20,000개, 30,000개의 데이터로 실험을 진행하였고, 편향 분포의 경우 최대 데이터 개수의 1/4까지인 100개, 1,000개, 3,000개, 5,000개, 10,000개일때의 Pre-NN 과 NN 알고리즘의 실행 시간을 비교하였다.
도 6의 실험 환경을 바탕으로, 도 7은 그에 따른 수행 결과를 각 축의 범위를 200 X 200 평면으로 지정하여 실행 시간으로 나타낸 것이다. 더불어, 도 8은 각 축의 범위를 300 X 300 평면으로 지정하여 실행 시간으로 마찬가지로 나타낸다.
도 8의 경우, 데이터 공간을 x, y 축을 기준으로 확장하여도 동일한 성능 그래프를 나타내는지 확인하기 위하여 수행된 실험 결과를 나타낸다. 전체 영역에 속하는 데이터 세트의 수는 x Х y로 90,000개가 된다. 균등 분포 데이터는 1,000개, 2,250개, 20,000개, 40,000개, 60,000개, 80,000개의 데이터로 진행한다. 편향 분포의 경우 최대 데이터 개수의 1/4까지인 100개, 1,000개, 10,000개, 15,000개, 22,500개 일 때의 pre-NN과 기존 NN의 실행 시간을 비교하였다.
이산 균등 분포에서 Pre-NN을 적용한 NN 알고리즘은 기존 NN 알고리즘에 비해 데이터의 밀집도가 커질 때마다 각각 약 1배, 2배, 4배, 6배의 순서로 빨라진다. 편향 분포에서 Pre-NN을 적용한 NN 알고리즘은 기존 NN 알고리즘에 비해 약 1배, 1.5배, 3배, 4.5배의 순서로 빨라진다.
실험 결과, 균등 분포의 경우 전체 영역으로 들어올 수 있는 최대 데이터 개수의 2.5%에 해당하는 개수 이상의 데이터가 분포되어 있으면 - 도 7에서는 데이터의 개수 1,000에, 도 8에서는 데이터의 개수 2,250에 해당함 - Pre-NN을 적용하였을 때의 NN 알고리즘의 성능이 좋아진다. 편향 분포의 경우 1,000개를 기점으로 Pre-NN을 사용했을 때 성능 향상을 보였다.
상기와 같이, Pre-NN 알고리즘은 스카이라인 질의를 수행할 때 객체들의 지배 관계를 미리 비교함으로써, NN 알고리즘에서 처리할 데이터 객체의 수를 축소할 수 있었다. 이는 NN 알고리즘에서 이웃하는 객체들에 대하여 비교해야 할 연산 횟수를 줄여줌으로써, 전체 성능을 향상시키는 효과를 가져올 수 있다.
본 발명은 상기 설명한 방법들을 효과적으로 제어하기 위하여, 상기 방법의 실행에 관한 명령어를 포함하는 컴퓨터 프로그램을 더 포함할 수 있다. 상기 컴퓨터 프로그램은 데이터 저장 매체에 저장되고, 상기 설명된 방법들을 수행하는 명령어들은 사용자가 입력하는 값 또는 설정된 환경에 따라 컴퓨터의 프로세서를 통해 판독된다.
이상에서 설명된 장치 및 이에 대한 제어는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소, 물리적 장치, 가상 장치, 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (3)

  1. 모바일 앱에 대한 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법을 수행하도록 구성된 시스템로서, 상기 방법은:
    하나 이상의 속성을 갖는 하나 이상의 데이터 세트를 입력받는 제 1 단계;
    상기 하나 이상의 속성 모두에 대하여, 각각의 초기 최솟값을 지정하고, N-1 개의 열을 갖는 N 개의 배열들의 집합인 딕셔너리를 생성하는 제 2 단계- 상기 N은 상기 하나 이상의 속성의 수임 -;
    상기 하나 이상의 속성 중 현재 속성에 대하여, 나머지 속성들의 최솟값을 탐색하는 제 3 단계를 포함하고,
    상기 제 3 단계는 상기 하나 이상의 속성 모두에 대하여 반복되고,
    상기 제 2 내지 제 3 단계는 상기 하나 이상의 데이터 세트 내 모든 데이터 객체에 대하여 반복되며,
    모바일 환경의 스카이라인 후보군을 반환하는 제 4 단계를 더 포함하는,
    모바일 앱에 대한 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법을 수행하도록 구성된 시스템.
  2. 제 1 항에 있어서,
    상기 제 3 단계는:
    상기 딕셔너리 내 상기 N 개의 배열들 각각에 대하여, 상기 하나 이상의 속성들의 각각에 인덱싱하여 저장소 배열로 정의하고, 상기 하나 이상의 속성에 따라 불러오는 값의 범위를 달리하는 순회 배열을 정의하고, 현재 속성을 제 1 변수로, 상기 순회 배열의 현재 위치를 제 2 변수로 설정하는 단계;
    상기 제 1 및 제 2 변수를 갖는 현재 객체의 값이 상기 제 1 및 제 2 변수를 갖는 저장소 배열의 값보다 작거나 같은 경우, 카운트 값을 하나 증가시키고, 모든 상기 저장소 배열에 대하여 새로운 최솟값 정보인 현재 객체를 추가하는 단계;
    상기 제 2 변수의 값이 N-2와 같아질 때까지 상기 현재 객체를 추가하는 단계를 반복하는 단계;
    상기 카운트 값이 0 보다 큰 경우, 플래그를 참으로 변경하는 단계;
    상기 카운트 값이 상기 저장소 배열의 속성 개수와 일치하는 경우, 상기 스카이라인 후보군의 모든 객체들에 대해 현재 속성인 제 1 변수를 갖는 객체를 제거하고, 상기 카운트 값을 0으로 초기화하는 단계; 및
    상기 플래그가 참인 경우, 상기 스카이라인 후보군에 상기 현재 객체를 추가하고, 상기 플래그를 거짓으로 변경하는 단계를 포함하는,
    모바일 앱에 대한 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법을 수행하도록 구성된 시스템.
  3. 제 1 항 및 제 2 항 중 어느 한 항의 단계들을 수행하도록 구성된 컴퓨터 판독가능 명령어를 포함하는 기록매체에 저장된 컴퓨터 프로그램.
KR1020200126756A 2020-09-29 2020-09-29 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법 KR102505050B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200126756A KR102505050B1 (ko) 2020-09-29 2020-09-29 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200126756A KR102505050B1 (ko) 2020-09-29 2020-09-29 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법

Publications (2)

Publication Number Publication Date
KR20220043396A KR20220043396A (ko) 2022-04-05
KR102505050B1 true KR102505050B1 (ko) 2023-03-06

Family

ID=81181950

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200126756A KR102505050B1 (ko) 2020-09-29 2020-09-29 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법

Country Status (1)

Country Link
KR (1) KR102505050B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107633024A (zh) 2017-08-30 2018-01-26 清华大学 多维属性最优点组的快速搜索方法
CN108052514A (zh) 2017-10-12 2018-05-18 南京航空航天大学 一种处理地理文本Skyline查询的混合空间索引机制

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100681119B1 (ko) * 1999-12-14 2007-02-08 주식회사 케이티 링크중심의 최적경로 산출방법
KR101052220B1 (ko) * 2009-01-16 2011-07-27 고려대학교 산학협력단 검색어를 포함하는 스카이라인 질의 수행장치 및 방법
KR101516631B1 (ko) * 2013-05-27 2015-05-04 건국대학교 산학협력단 모바일 환경의 공간 스카이라인을 위한 가시권 이웃 질의 방법
KR101554569B1 (ko) * 2014-01-28 2015-09-22 서울대학교산학협력단 스카이라인 질의 시스템 및 방법
KR102073208B1 (ko) * 2018-03-02 2020-02-04 주식회사 세중아이에스 경기장 방문객 대상 빅데이터 분석 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107633024A (zh) 2017-08-30 2018-01-26 清华大学 多维属性最优点组的快速搜索方法
CN108052514A (zh) 2017-10-12 2018-05-18 南京航空航天大学 一种处理地理文本Skyline查询的混合空间索引机制

Also Published As

Publication number Publication date
KR20220043396A (ko) 2022-04-05

Similar Documents

Publication Publication Date Title
He et al. Enhanced boundary learning for glass-like object segmentation
Hua et al. Faster parallel core maintenance algorithms in dynamic graphs
US8380643B2 (en) Searching multi-dimensional data using a parallelization framework comprising data partitioning and short-cutting via early out
KR102316230B1 (ko) 이미지 처리 방법 및 장치
Jo et al. Panene: A progressive algorithm for indexing and querying approximate k-nearest neighbors
KR102378887B1 (ko) 객체 탐지에서의 둘레기반 IoU 손실함수를 통한 효율적인 바운딩 박스 회귀 학습 방법 및 장치
CN107729935A (zh) 相似图片的识别方法和装置、服务器、存储介质
WO2013128333A1 (en) Finding a best matching string among a set of stings
CN108389152B (zh) 一种图结构感知的图处理方法及装置
CN114090155A (zh) 机器人流程自动化界面元素定位方法、装置和存储介质
CN108875914B (zh) 对神经网络数据进行预处理和后处理的方法和装置
Zacharatou et al. The case for distance-bounded spatial approximations
KR101833996B1 (ko) 데이터 검색 시스템 및 방법
Mai et al. Anytime parallel density-based clustering
KR102505050B1 (ko) 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법
KR101772333B1 (ko) 이종 NoSQL 데이터베이스들간의 지능적 조인 전략 제공 방법 및 시스템
Melo et al. Hierarchical density-based clustering based on GPU accelerated data indexing strategy
Yan et al. A comprehensive survey and analysis on path planning algorithms and heuristic functions
KR20200034016A (ko) 데이터간 상대적 거리 비율 및 클러스터의 중심 데이터 간의 거리를 고려한 데이터 클러스터링 방법 및 시스템
Yang et al. A dynamic balanced quadtree for real-time streaming data
JP2009104533A (ja) 情報管理装置、情報管理方法、及びプログラム
CN110321435B (zh) 一种数据源划分方法、装置、设备和存储介质
Fernández-Moral et al. Hybrid metric-topological mapping for large scale monocular SLAM
CN110059328B (zh) 结构分析模拟方法、信息处理设备和计算机可读存储介质
US10157485B2 (en) Method and system for merging of polygons in adjacent tiles

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right