首页 / 专利库 / 电脑编程 / K最近邻算法 / 비공간검색조건이 포함된 케이-최근접 질의를 위한알에스트리구조 및 점증적 최근접 방법

비공간검색조건이 포함된 케이-최근접 질의를 위한알에스트리구조 및 점증적 최근접 방법

阅读:409发布:2022-01-15

专利汇可以提供비공간검색조건이 포함된 케이-최근접 질의를 위한알에스트리구조 및 점증적 최근접 방법专利检索,专利查询,专利分析的服务。并且본 발명에 의하여 잘타손과 사멧이 제안한 점증적 최근접 인덱스 방법(알고리즘)의 성능을 향상시킬 수 있는 방법과 여기에 적용되어서 질의를 효과적으로 수행할 수 있는 RS트리구조가 개시된다.
본 발명에 의하면, 종래 데이터베이스에서 질의에 사용되며, 잘타손(Hjaltason)과 사멧(Samet)이 제안한 R트리에 기반한 점증적 최근접 방법의 문제점인 불필요한 투플발생빈도수를 현저하게 감소시킴으로서 멀티미티어 데이터베이스 또는 지리정보시스템등에서 요구하는 다차원 공간객체집합에 대한 효과적인 인덱싱이 가능하다.,下面是비공간검색조건이 포함된 케이-최근접 질의를 위한알에스트리구조 및 점증적 최근접 방법专利的具体信息内容。

  • 비공간검색조건이 포함된 데이터베이스의 케이-최근접 질의를 위한 트리구조에 있어서,
    상기 트리구조가 R 트리와 S 트리의 조합으로 구성되는 트리구조로서,
    상기 R트리는 공간속성에 대한 인덱스로 사용되고,
    상기 S트리는 비공간속성에 대한 인덱스로 사용되며, 상기 R트리와 동일한 계층적 구조의 노드집합으로 구성되고, 각 노드는 다수의 엔트리로 구성되며, S트리의 각 노드와 그 노드를 구성하는 엔트리가 각각 R 트리의 노드와 엔트리에 일대일 대응하고, 인덱스노드레벨만을 갖는 것을 특징으로 하는 비공간검색조건이 포함된 데이터베이스의 케이-최근접 질의를 위한 RS트리구조.
  • 제1항에 있어서,
    상기 R 트리의 생성과 동시에 S 트리가 생성되며,
    상기 S 트리는 계층적 시그니쳐 파일을 기반으로 하며, 상기 S 트리 노드의 엔트리가 가지는 시그니쳐의 생성이 레벨 ℓ이 (ℓ= 1)과 ℓ>1로 구분되는 것을 특징으로 하는 비공간검색조건이 포함된 케이-최근접 질의를 위한 RS트리구조.
  • 제2항에 있어서,
    상기 시그니쳐가, 레벨 ℓ=1 에서는 1) 엔트리 자신과 대응되는 R-트리 노드의 엔트리의 서브트리가 가질 수 있는 모든 비공간 속성값의 집합을 구한 다음, 2) 그 집합에 속하는 각 비공간 속성값을 해쉬(hash) 함수를 써서 고정길이의 비트 스트림인 시그니쳐로 변환하고, 3) 생성된 시그니쳐 집합의 모든 원소에 대해 비트 단위로 합연산(OR)하여 생성되며, 나머지 레벨 ℓ> 1 에서는 S-트리 노드의 엔트리가 가리키는 자식 노드의 모든 시그니쳐를 합연산하여 생성되는 것을 특징으로 하는 비공간검색조건이 포함된 케이-최근접 질의를 위한 RS트리구조.
  • 제1항 내지 제3항에 있어서,
    상기 레벨 ℓ상에 존재하는 임의의 S-트리 노드가 갖는 각각의 시그니쳐 S i (1≤i≤C)에 대하여, 상기 S i 가, S i , j (1≤j≤C)를 만족하는 f(ℓ)개의 시그니쳐로 분할되는 것을 특징으로 하는 비공간검색조건이 포함된 케이-최근접 질의를 위한 RS트리구조.
  • 제4항에 있어서,
    큐의 최전방에 존재하는 다음 탐색 노드를 , 그 노드의 자식 노드를 라하고, 각각의 로부터 질의 객체까지의 거리를 계산하기 전에 와 대응되는 S-트리 노드 의 시그니쳐 와, 의 서브트리가 비공간 질의값의 질의 시그니쳐(query signature)를 라고 할 때, 를 만족하는지 검사하는 것을 특징으로 하는 비공간검색조건이 포함된 케이-최근접 질의를위한 RS트리구조.
  • 데이터베이스를 검색하기 위한 질의에 따라서 인덱싱을 하는 R 트리에 기반한 점증적 최근접 방법에 있어서,
    상기 방법이,
    큐에서 꺼낸 다음탐색노드가 갖는 자식노드중 어떤 노드가 제거되었는가를 확인하는 단계;
    큐에 자식노드를 삽입하기 전에 시그니쳐 검사를 수행하는 단계를 더 포함하는 것을 특징으로 하는 점증적 최근접 방법.
  • 제6항에 있어서,
    상기 시그니쳐검사가, 큐의 최전방에 존재하는 다음 탐색 노드를 , 그 노드의 자식 노드를 라하고, 각각의 로부터 질의 객체까지의 거리를 계산하기 전에 와 대응되는 S-트리 노드 의 시그니쳐 와, 의 서브트리가 비공간 질의값의 질의 시그니쳐(query signature)를 라고 할 때, 를 만족하는지 검사하는 것을 특징으로 하는 점증적 최근접 방법.
  • 说明书全文

    비공간검색조건이 포함된 케이-최근접 질의를 위한 알에스트리구조 및 점증적 최근접 방법{RS-tree for k-nearest neighbor queries with non spatial selection predicates and method for using it}

    본 발명은 멀티미디어 데이터베이스 또는 GIS에서 인덱스방법으로 사용되는 잘타손(Hjaltason)과 사멧(Samet)이 제안한 점증적 최근접 알고리즘의 문제점인 투플발생빈도수를 감소시킴으로써 멀티미티어 데이터베이스 또는 지리정보시스템등에서 요구하는 다차원 공간객체집합에 대한 효과적인 검색이 가능한 인덱스방법에 관한 것이다.

    최근 지리정보시스템(GIS) 또는 이미지 검색 시스템 등의 멀티미디어 자료검색장치들에서는 다차원 공간객체집합을 대상으로 효율적인 "k-최근접 질의(k-nearest neighbor query)"의 처리를 요구한다. 이러한 질의를 위하여 효율적인 최적화 기법들이 개발되어 왔다. 그 중에서 Hjaltason과 Samet이 제안한 점증적 최근접 기법(Incremental Nearest Neighbor Algorithm)은 대화방식(interactive fashion)으로 동작하므로 "거리 브라우징(distance browsing)"을 요구하는 k-최근접 질의 처리에 가장 적합하다고 알려져 있다. 하기에 기록된 것은 종래의 k-최근접 질의 처리의 일례를 나타낸 것이다.

    SELECT *

    FROM DISC

    WHERE artist = `Beatles'

    ORDER BY distance(color, `red')

    STOP AFTER k;

    상기에 기재된 질의(query)는 페이건(Fagin)의 멀티미디어 질의(query), "artist=`Beatles' ∧ color=`red'"를 확장 SQL문으로 표현한 것으로, 이것의 의미는 "Beatles의 음반(DISC) 중에서 음반의 색(color)이 red에 가장 가까운 k 개를 검색하라"는 것이다. 여기서 비공간 검색 조건(artist=`Beatles`)을 만족하는 k 개의 질의 결과를 얻기까지 질의 객체인 red로부터 거리 순서대로 공간 객체(color의 속성값)를 하나씩 검색해 낼 수 있는 거리 브라우징(distance browsing) 기능이 요구된다.

    Hjaltason과 Samet의 점증적 최근접 알고리즘은 R-트리와 같은 계층적 인덱스와 순위 큐(priority queue)를 이용하여, 주어진 질의 객체로부터 거리순서대로 다음 최근접 공간 객체를 포함하는 투플(tuple) 식별자(TID)를 하나씩 상위 연산자(예를들면, artist=`Beatles'를 처리하기 위한 select 연산자)에게 전달한다. 상위 연산자는 TID를 이용하여 해당 투플에 접근한 후 그 밖의 비공간 검색 조건을 처리하며, 요구된 k 개의 질의 결과가 추출될 때 까지 이러한 과정이 반복한다. 상기한 알고리즘의 가장 큰 장점은, 상위 연산자가 또다른 투플식별자(TID)를 요구할 때 질의를 처음부터 재시작(restart)하지 않고 이전의 작업 상태에서 다음 최근접 공간 객체를 포함하는 투플의 TID를 제공할 수 있다는 것이다.

    그러나, 상기 점증적 최근접 알고리즘은 k 개의 질의 결과를 얻기까지 많은 수의 불필요한 투플이 발생되는 문제점이 있다. 즉 비공간 검색 조건을 만족시키지 않는 투플들을 상위 연산자에게 전달하기 때문에 검색속도면에서 효율적이지 못하였다. 이것은 k 개의 질의 결과를 얻기까지 불필요한 투플이 많은 경우 그 만큼 사용자의 응답 시간이 길어지기 때문이다. 상기와 같이 불필요한 투플이 발생하는 이유는, 상기의 점증적 최근접 알고리즘이 질의에 사용된 비공간 검색 조건과는 무관하게 작동하기 때문이다.

    Hjaltason과 Samet이 제안한 점증적 최근접 알고리즘에 대해서 더욱 상세히 살펴보고, 비공간 검색 조건이 포함된 k-최근접 질의를 처리할 때 발생하는 문제점을 설명한다. Hjaltason과 Samet은 R-트리를 이용한 점증적 최근접 알고리즘을 제안하였으며 이것을 RtreeINN 알고리즘이라 부른다.

    상기 RtreeINN 알고리즘은, R-트리의 루트 노드부터 탐색하면서, 다음 탐색 노드는 큐의 최전방 레코드에서 얻으며, 그 노드를 탐색한 후 그 노드의 자식 노드 또는 공간 객체를 큐에 삽입한다. 이때 질의 객체로부터 자식 노드 또는 공간 객체와의 거리를 함께 삽입한다. 큐는 항상 거리 순서대로 유지된다. 만약 큐의 맨 앞에서 꺼낸 데이터가 공간 객체일 때, 이것을 포함하는 튜플 식별자(TID)를 비공간 검색 조건 처리를 위한 질의 처리 연산자에게 리턴한다. k 개의 질의 결과를 얻거나 또는 큐에 레코드가 없을 때까지 이 과정을 계속 반복한다. 상술한 바와 같이, RtreeINN 알고리즘은 k'(> k) 투플이 필요할 때 질의를 처음부터 재실행하지 않고 다음 TID를 상위 연산자에게 전달할 수 있다.

    Berchtold 등은 R-트리와 같은 계층적 인덱스를 이용하는 k-최근접 알고리즘의 "최적성(optimality)"을 정의하고, RtreeINN 알고리즘이 최적성을 보장함을 증명하였다. 최적성의 정의는 다음과 같다.

    정의 1 k-최적성(k-Optimality)

    최근접 질의를 처리할 때 접근된 전체 페이지 수와 SP(Q, r)와 겹치는(intersect) 페이지 수가 같을 때, 그 k-최근접 알고리즘은 최적성을 갖는다. 여기서 Q와 r은 각각 질의 객체와, Q로부터 k-번째 거리에 위치하는 공간 객체(O k )와의 거리를 뜻한다(r=||Q - O k ||). 그리고, SP(Q, r)는 중심이 Q이고 반지름이 r인 구면체(sphere)를 나타낸다.

    정의 1에 의해 RtreeINN 알고리즘은 최적성을 갖는다. 따라서, k 개의 질의 결과를 얻기까지 RtreeINN 알고리즘의 비용은 SP(Q, r)과 겹치는 R-트리의 페이지 수와 같다. 여기서의 비용은 비공간 검색 조건이 전혀 포함되지 않은 k-최근접 질의의 비용을 의미한다.

    상기와 같이 RtreeNN 알고리즘을 이용하여 이러한 질의를 처리할 때 전체 비용 C all = C rtree + C tuple 과 같다. 여기서 C rtree 는 R-트리 비용, C tuple 은 비공간 검색 조건을 처리하기 위한 투플 접근 비용을 의미한다. 그 외 전체 비용에는 순위 큐 연산 비용와 CPU 비용 등이 포함되지만 다른 비용에 비해 작기 때문에 본 발명에서는 무시한다.

    질의 객체를 Q, 비공간 검색 조건을 만족하는 k-번째 공간 객체를 O k' (k' ≥ k), 반지름 r = ||Q - O k' ||이라고 할 때, C rtree 는 RtreeNN 알고리즘의 최적성에 따라 SP(Q, r)와 겹치는 R-트리 노드의 수와 같다. 다음으로, C tuple 을 구하기 위해 k'을 유추한다. 상위 연산자에게 전달되는 TID 집합의 크기는 k'과 동일하며, 질의 결과의 수 k가 주어질 때 k'을 다음과 같이 유추할 수 있다. 공간 속성(color)과 비공간 속성(artist)간에 연관성(correlation)이 전혀 없고, 질의에 사용된속성값(`Beatles')의 선택율(selectivity)을 S라고 하자. 그러면, i번째 질의 결과를 만족하는 공간 객체를 O i 라고 할 때, (i+1) 번째 질의 결과를 얻기 위해서는 d i ≤ ||Q - O|| ≤ d i+1 (d i = ||Q - O i ||)를 만족하는 (1/s)개의 공간 객체 O를 더 접근해야 한다. 따라서,

    가 된다. 여기서 k'은 k에 대해 선형적으로 증가함을 알 수 있다. 이때, 평균 접근 페이지 수를 구하는 Yao의 방정식을 사용하면 과 같다. 여기서 N은 투플의 수, B는 페이지 크기, T는 투플 크기를 의미한다.

    비공간 검색 조건이 포함된 k-최근접 질의를 처리할 때 사용되는 RtreeINN 알고리즘의 문제점을 살펴보면 다음과 같다.

    상기에서 구한 k'의 근사값을 확인하기 위해 페이건의 RtreeINN 알고리즘을 구현하여 "artist=`Beatles' ∧ color=`red'" 형태의 질의를 여러 번 수행하여 도 1과 같은 결과를 얻었다. 도 1에 표시된 바와 같이 예측결과를 나타내는 그래프는 선형적으로 증가함을 알 수 있다. 그러나, 비공간 검색 조건을 만족하는 작은 수(k)의 질의 결과에 비해 접근해야 하는 투플의 수(k')가 너무 많음을 알 수 있다. 이러한 사실은 k' 개의 후보 투플 집합에는 너무 많은 불필요한 투플들을 포함하고 있다는 것을 나타낸다. 결국, k'가 커지면 C tuple 비용이 커지게 되고 사용자 응답 시간이 길어진다. 결론적 말하여, RtreeINN 알고리즘이 비공간 검색 조건이 포함된 k-최근접 질의를 처리를 하는 데는 적합하지만 많은 후보 투플들을 접근해야 하므로 비효율적임을 알 수 있다. 그 이유는 RtreeINN 알고리즘에서 사용하는 R-트리가 불필요한 투플들을 부분적으로 제거할 수 있는 기능이 없기 때문이다.

    예를 들어, 도 2에서와 같이, 질의 객체 Query로부터 각 R-트리 노드

    까지의 거리를 , 거리 순서 를 만족한다고 가정한다. RtreeINN 알고리즘에 따르면, , 다음으로 를 처리할 때, 노드의 각 자식 노드를 미리 계산한 거리와 함께 큐에 삽입할 것이다. 여기서, 과 의 하위 트리에 비공간 검색 조건을 만족시키는 투플이 하나도 없다고 가정한다. 가정에 따라 과 가 쓸모없는 노드임에도 불구하고, RtreeINN 알고리즘은 그 노드들로 인해 미래에 많은 불필요한 투플들이 생성된다는 것을 고려하지 않고 그 노드들을 큐에 삽입한다. 따라서 불필요한 투플이 증가하는 문제점이 있다.

    본 발명은 상기와 같은 문제점을 해결하여 안출된 것으로서, 본 발명의 목적은 투플의 제거에 효과적인 새로운 형식의 RS 트리를 제공하는데 있다.

    본 발명의 다른 목적은, R-트리가 아닌 RS-트리에 기반한 점증적 최근접 알고리즘을 이용한 인덱스방법을 제공하는데 있다.

    본 발명의 다른 목적은 불필요한 투플수를 감소시킴으로서 검색을 더욱 효율적으로 수행할 수 있는 비공간검색조건이 포함된 케이-최근접 질의를 위한 인덱스방법을 제공하는데 있다.

    도 1은 종래의 RtreeINN 알고리즘을 이용한 질의에 대한 수행결과의 그래프,

    도 2는 종래의 RtreeINN 알고리즘에 의한 탐색공간을 나타내는 그래프,

    도 3은 본 발명의 RS 트리의 생성 및 구조를 나타내는 개념도,

    도 4는 본 발명에 의한 시그니쳐분할 상태를 나타내는 개념도,

    도 5 내지 도 6은 본 발명의 RS 트리에 기초한 알고리즘을 나타내는 코드예,

    도 7은 본 발명에 의한 질의결과에 따른 실험결과를 나타내는 그래프,

    도 8은 시그니쳐 분할함수에 의하여 분할된 상태의 실험결과를 나타내는 그 래프,

    도 9는 데이타 크기에 따른 성능평가실험결과를 나타내는 그래프,

    도 10은 공간데이타의 차원(d)에 따른 성능평가실험결과를 나타내는 그래프,

    도 11은 실세계 데이터세트에서의 실험결과를 나타내는 그래프.

    상기 목적을 달성하기 위한 본 발명에 의하여, RS트리구조와, S-트리의 제거효과와 이를 높이기 위한 시그니쳐분할방법, 그리고 RS-트리를 이용한 점증적 최근접 알고리즘이 제공된다.

    본 발명의 RS 트리는, 비공간검색조건이 포함된 케이-최근접 질의를 위한 트리구조에 있어서, 상기 트리구조가 R 트리와 S 트리의 조합으로 구성되는 트리구조로서, 상기 R트리가 공간속성에 대한 인덱스로 사용되고, 상기 S트리가 비공간속성에 대한 인덱스로 사용되고, R트리와 동일한 계층적 구조의 노드집합으로 구성되며, 각 노드는 다수의 엔트리로 구성되고, S트리의 각 노드와 그 노드를 구성하는 엔트리가 각각 R 트리의 노드와 엔트리에 일대일 대응하며, 인덱스노드레벨만을 갖는 것을 특징으로 한다.

    본 발명에 의한 S-트리는 다음과 같은 속성을 가진다.

    ♥"시그니쳐 집합"으로서 각 시그니쳐는 비공간 속성값들의 집합을 표현하는 집합 값(set value)이다.

    ♥S-트리는 계층적 시그니쳐 화일에 기반하므로 R-트리와 똑같은 계층적 구조를 지원한다.

    ♥S-트리는 R-트리와 독립적인 자료 구조를 가지며, 또한 독립적인 저장 구조를 가진다.

    ♥S-트리도 R-트리의 MBR과 같이 레벨에 따른 포함관계(hierarchical inclusion relationship)를 잘 지원한다.

    ♥작은 크기의 시그니쳐를 사용하므로 S-트리의 저장 공간이 작다.

    ♥S-트리의 시그니쳐는 0 또는 1로 이루어진 비트 스트림(bit stream)이므로 AND 또는OR과 같은 연산 비용이 저렴하다.

    그러나 R 트리는 종래 사용되는 것과 본질적으로 동일한 구조를 갖는다.

    이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하면 다음과 같다.

    본 발명에 의한 RS-트리는, R-트리와 계층적 시그니쳐 화일 구조를 갖는 S-트리의 조합으로 구성된다. 상기 R-트리는 color와 같은 공간 속성에 대한 인덱스로 사용되며, S-트리는 artist와 같은 비공간 속성에 대한 인덱스로 사용된다. 일반적으로 하나의 투플은 여러 개의 비공간 속성으로 구성될 수 있으므로, RS-트리를 하나의 공간 속성과 m 개의 비공간 속성을 위한 인덱스, 즉 RS m -트리로 확장할 수 있다. 새로운 인덱스를

    인 RS-트리를 중심으로 설명한다.

    RS-트리를 구성하는 R-트리는 기존의 구조와 동일하므로 S-트리를 중심으로 전체 인덱스를 설명한다. S-트리는 R-트리와 같이 계층적 구조의 노드의 집합으로 구성되며, 각 노드는 여러 개의 엔트리들로 채워진다. S-트리의 각 노드와 그 노드를 구성하는 엔트리는 각각 R-트리의 노드와 엔트리에 일 대 일 대응된다. 그러나, S-트리는 R-트리와 달리 인덱스 노드 레벨만을 가진다. 그 이유는, R-트리는 인덱스 노드에 비해 데이타 노드의 저장 공간 비율이 매우 높으므로 R-트리 데이타 노드와 일대일 대응되는 S-트리의 데이타 노드를 두면 저장 공간의 오버헤드(overhead)가 너무 커지기 때문이다. 물론, S-트리에 데이타 노드를 두면 전체 성능을 높일 수 있지만 저장 공간의 오버헤드로 인해 비현실적이다.

    S-트리 노드의 j 번째 엔트리는, 해당 R-트리 노드의 j 번째 엔트리의 서브트리에 포함되는 모든 비공간 속성값(예를 들면, artist의 `Beatles')의 집합을 표현하는 집합 값(set value)을 가진다. S-트리 노드의 엔트리가 집합 형태의 값을 갖는 이유는 "비공간 검색 조건을 만족시키지 않는 R-트리 노드"를 쉽게 제거하기 위해서다.

    S-트리는 R-트리가 일괄적재(bulk-loading) 방식으로 생성되는 시점에서 동시에 생성된다고 가정한다. 이때 S-트리 노드의 엔트리가 가지는 시그니쳐(signature)의 생성은 크게 S-트리의 레벨

    (S-트리의 맨 하단층)과 로 구분된다. 레벨 에서 S-트리 노드의 엔트리가 갖는 시그니쳐는, 1) 엔트리 자신과 대응되는 R-트리 노드의 엔트리의 서브트리가 가질 수 있는 모든 비공간 속성값의 집합을 구한 다음, 2) 그 집합에 속하는 각 비공간 속성값을 해쉬(hash) 함수를 써서 고정길이의 비트 스트림 즉, 시그니쳐로 변환하고, 3) 생성된 시그니쳐 집합의 모든 원소에 대해 비트 단위로 합연산(OR)한 결과와 같다. 그 이외의 레벨에서는 S-트리 노드의 엔트리가 가리키는 자식 노드의 모든 시그니쳐를 합연산한 결과를 그 엔트리의 시그니쳐로 사용한다.

    도 3(a)에서 테이블 DISC는 공간 속성으로 color를, 비공간 속성으로 artist를 가지며, 각각 R-트리와 S-트리의 키로 사용된다. 그림 3(b)는 DISC 테이블의 각 artist 속성값에 대해 해쉬 함수를 이용하여 변환된 고정 길이의 시그니쳐 테이블을 의미한다. color 속성에 대한 d-차원 공간이 그림 3(c)와 같을 때, 해당 R-트리는 그림 3(d)의 왼쪽 부분의 트리와 같다. 각 R-트리 인덱스 노드에 일대일 대응되는 노드(예:

    ↔ )의 집합으로 구성된 트리가 S-트리이다. 레벨 에서 노드의 시그니쳐를 생성하는 과정은, 먼저 대응되는 R-트리 노드 의 엔트리 를 찾고, 가 가리키는 데이타 노드 에 포함된 TID=1, 2를 통해 테이블 DISC에서 artist의 속성값 {`Beatles', `Sting'}을 얻고, 해쉬 함수를 통해 시그니쳐 {01101010, 00111001}로 변환한 후, 두 개의 시그니쳐를 합연산한다(01101010 ∧ 00111001 = 01111011). 시그니쳐 와 도 와 같은 방식으로 만들어진다. 레벨 인 경우, 시그니쳐 은 자신의 하위 노드 가 가지는 모든 시그니쳐 , , 의 합연산 01111011 ∧ 01111010 ∧ 00111011 = 01111011과 같다. 이런 방식으로 최상위 S-트리 노드의 시그니쳐가 생성되고, 전체 S-트리가 만들어진다.

    하기에서 S-트리가 첨가된 RtreeINN 알고리즘의 관점에서 S-트리에 의해 불필요한 R-트리 노드와 객체(또는 TID)가 어떻게 제거되는지 설명한다.

    큐의 최전방에 존재하는 다음 탐색 노드(next target node)를

    , 그 노드의 자식 노드를 이라 하면, 본 발명에 의한 새로운 알고리즘은 각각의 로부터 질의 객체까지의 거리를 계산하기 전에 와 대응되는 S-트리 노드 의 시그니쳐 를 이용하여 의 서브트리가 비공간 질의값(예를 들면, `Beatles')을 포함하는지를 먼저 검사한다. 즉, 비공간 질의값의 시그니쳐(예를 들면, `Beatles'의 시그니쳐 01101010)를 질의 시그니쳐(query signature) 라고 하면, 를 만족하는지 검사한다. 여기서 연산자 ∧는 비트 단위의 곱연산(AND)을 의미하며, 이러한 검사를 시그니쳐 검사(Signature Checking)라고 부른다. 시그니쳐 검사를 통과한다는 것은, 해당 R-트리의 자식 노드가 가질 수 있는 모든 데이타 노드에 질의에 사용된 비공간 속성값(예: `Beatles')을 갖는 투플이 있을 수 있다는 것을 의미하며, 그렇지 않는 경우는 그 반대의 의미를 지닌다. 따라서, S-트리의 노드 에 포함되는 모든 시그니쳐 중 시그니쳐를 통과하는 에 대응되는 R-트리의 자식 노드를 큐에 삽입하면 된다. 물론, 시그니쳐 검사를 위해 S-트리 노드 I/O가 발생하지만 이 비용보다 S-트리의 노드 제거에 의한 이익이 실제로 더 큼을 알 수 있다.

    도 3을 다시 참고하면, 현재 큐에서 꺼낸 탐색 노드가 RIN2, 엔트리

    , , 이 각각 가리키는 자식 노드가 , , , 질의 객체로부터 각각의 자식 노드까지의 거리가 각각 , , , 거리 관계가 을 만족시킨다고 하자. 그리고 질의 시그니쳐를 `Beatles'의 시그니쳐, 즉 = 01101010이라고 가정한다. S-트리를 이용하는 알고리즘에서는 RIN2의 엔트리 가 가리키는 자식 노드 를 큐에 삽입하기 전에 먼저 S-트리를 이용한 시그니쳐 검사를 수행한다. 시그니쳐 검사에서 (= 01111010)은 를 만족시키지 않으므로 는 큐에 삽입되지 않는다. 반면, RtreeINN 알고리즘에서는 의 서브트리에 비공간 질의 값과 동일한 비공간 속성값이 존재하는지를전혀 고려하지 않기 때문에 를 그대로 큐에 삽입할 것이다. 이후 과 같은 노드들은 많은 불필요한 투플들을 생성하게 될 것이다.

    상위 레벨로 갈수록 S-트리의 시그니쳐는 모든 비트가 `1'로 채워질 "시그니쳐 포화(signature saturation)" 상태에 이를 수 있다. 그 이유는 상술한 바와 같이 S-트리의 생성에서 레벨이 증가하면 시그니쳐를 생성하기 위해 합연산되는 자식 시그니쳐의 수가 증가하기 때문이다. 이때 발생하는 문제가 "false drop"이 많이 발생한다는 것이다. 어떤 투플이 false drop이라는 것은 시그니쳐 검사를 통과했음에도 불구하고 결국에는 질의 조건을 만족시키지 않는다는 것을 의미한다. false drop의 문제는 다수의 시그니쳐가 합연산될 때 발생하는 "팬텀 효과(phantom effect)" 때문에 발생된다. 예를 들면, 그림 3(d)에서

    =01101010일 때 의 TID = 3, 4인 투플은 이 시그니쳐 검사를 통과하지만, 결국 artist=`Beatles'를 만족하지 않으므로 false drop이 된다. 여기서 시그니쳐 은 에 대해서 팬텀 효과를 발생시킨 것이다. 이후 이러한 투플은 결국 불필요한 투플로 판명날 것이다. 후에 시그니쳐 포화로 인해 발생하는 다량의 false drop의 수를 줄일 수 있는 "시그니쳐 분할 방식"에 대해서 설명한다.

    수식적으로 "시그니쳐 포화"를 확인할 수 있다. 자식 시그니쳐와 부모 시그니쳐 각각의 i번째 비트 값이 `1'일 확률이 각각

    , 이고, 그룹에 속하는 자식 시그니쳐의 수가 일 때, 과 같이 주어진다. 비교적 작은 에 대한 는 작은 에도 불구하고 거의 `1'에 가까와진다는 것을 추정할수 있다. 이로부터 S-트리의 레벨이 증가할수록 시그니쳐 포화에 급격하게 도달한다는 사실을 알 수 있다. 왜냐 하면, S-트리의 레벨이 증가하면 동시에 도 증가하기 때문이다. 따라서, 팬텀 효과로 인해 더 많은 false drop이 발생할 것이다. 우리는 또는 를 작게 만듬으로써 시그니쳐 포화 속도를 지연시킬 수 있다. 작은 를 선택하면 확실히 그 속도를 지연시킬 수 있지만, 작은 를 위해 매우 큰 크기의 시그니쳐가 필요함에도 불구하고 그 효과는 그리 크지 않다. 대신, 을 작게 만들 수 있는 "시그니쳐 분할(signature chopping)"이라는 방법을 제안한다.

    시그니쳐 분할의 목표는, S-트리 노드의 각 시그니쳐를 시그니쳐 분할 함수

    (예를 들면, )에 의해 여러 개의 시그니쳐로 분할함으로써, 을 가능하면 작게 만들고 더나아가 팬텀 효과를 줄이는 데 있다. 레벨 l 상에 존재하는 어떤 S-트리 노드가 갖는 각각의 시그니쳐 에 대해서, 는 개의 분할 시그니쳐(chopped-signature), 로 나누어진다(레벨 l이 높은 경우 가 발생할 수 있으므로 이런 경우의 가 된다). S-트리의 생성시에, 의 자식 노드가 갖는 C 개의 시그니쳐들은 개의 버킷(bucket)에 씩 배분된다. 그런 후, j-번째 버킷에 포함된 모든 시그니쳐를 합연산함으로써 가 생성된다. 여기서, 를 OR 연산자라고 할 때 을 만족시킨다. 따라서, 팬텀 효과는 시그니쳐 분할 전에 비해 약 배만큼 감소한다. 도 4에서 이고 이라고 가정할 때, 는 개의 , , , 로 분할된다( 의 경우는 이므로 개로 분할된다). 시그니쳐 분할 전의 는 자신의 자식 노드가 갖는 네 개의 , , , 을 합연산하여 생성되는 반면, 시그니쳐 분할 후의 는 네 개의 시그니쳐로 분할되며 각각은 의 자식 노드 중에서 단 하나의 시그니쳐를 자식 시그니쳐로 갖는다.

    시그니쳐 분할 방식에서, 시그니쳐 검사는

    개의 분할 시그니쳐 각각에 대하여 수행된다. 를 큐에서 꺼낸 다음 탐색 노드 를 와 대응되는 S-노드라고 정의하며, 는 의 j-번째 시그니쳐라고 가정하자. 의 개의 분할 시그니쳐에 대해서, 어떤 분할 시그니쳐도 시그니쳐 검사를 통과하지 못하면, 시그니쳐 분할을 적용하지 않은 방식과 같이 의 j-번째 엔트리의 자식 노드(= )는 제거된다. 즉, 큐에 삽입되지 않는다. 그렇지 않는 경우, 는 추가적인 힌트(hint), 예를 들면, 비트맵(bitmap)과 함께 큐에 삽입된다. 여기서 힌트는, 시그니쳐 검사를 통과하지 못한 각 분할 시그니쳐에게 배분된 노드의 개의 엔트리의 모든 서브트리들은 더이상 접근될 필요가 없으므로 제거된다는 의미를 갖는다. 여기서, 의 각 분할 시그니쳐는 노드의 개의 엔트리를 책임진다. 도 4에서 시그니쳐 검사를 통과한 시그니쳐를 진한 영역으로 표시하며, S-트리 노드 에 대응되는 R-트리 노드를 라고 하자. 의 분할 시그니쳐 는 어느 것도 시그니쳐 검사를 통과하지 않는다면, R-트리 노드 는 큐에 삽입되지 않는다. 반면, 의 분할 시그니쳐 중에서 과 는 시그니쳐 검사를 통과하므로 해당 R-트리 노드 을 큐에 삽입한다. 이때, 와 은 시그니쳐 검사를 통과하지 못하였기 때문에 의 엔트리 중에서 두 번째와 세 번째 엔트리에 대해서는 어떤 작업(예를 들면, 거리의 계산)도 수행할 필요가 없다는 것을 표시하는 비트맵을 큐에 삽입한다.

    RtreeINN 알고리즘을 보완한 RS-트리 기반 점증적 최근접 알고리즘(이하 RStreeINN 알고리즘)을 설명하면 다음과 같다. 도 5 및 도 6에 도시된 알고리즘 1과 2는 각각 RStreeINN 알고리즘과 시그니쳐 검사 루틴을 나타낸다. RStreeINN 알고리즘에서 추가적인 부분은 큐에서 꺼낸 다음 탐색 노드가 갖는 자식 노드 중 어떤 노드가 제거되었는지 확인하는 단계(Algorithm 1의 단계 9과 21)와, 큐에 그것들을 삽입하기 전에 시그니쳐 검사를 수행하는 단계(Algorithm 1의 단계 10)이다. 알고리즘 2에서, AllocSize(l)은 각각의 분할 시그니쳐에 배분된, 레벨 l 상의 R-트리 노드의 엔트리의 수를 의미한다. RStreeINN 알고리즘은 비교 연산자(> 또는 <)가 포함된 비공간 검색 조건문이 포함된 질의에 적합하지 않다. 그러나, 이러한질의의 처리는 RS-트리의 R-트리를 이용한 RtreeINN 알고리즘을 그대로 적용함으로써 가능하다. 왜냐 하면, RS-트리에서의 R-트리는 S-트리와 독립적인 저장 구조를 갖기 때문이다. 도 5 및 도 6에는 상세한 알고리즘의 소스코드가 표시되어 있다.

    상기와 같은 본 발명의 방법을 적용한 성능실험의 결과가 하기에 설명된다.실험을 위해 기본 테이블 DISC를 생성하였으며, 그 스키마는 DISC(artist, type, country, color)와 같다. color는 공간 속성으로서 d-차원의 점(point)으로 표현되며, 그 이외는 비공간 속성으로서 30 바이트 크기의 텍스트 형식의 값을 가진다. color 속성값은 균일(uniform) 분포를 따르는 인위 데이터와 실세계 데이타로 나누어 실험하였다. color 속성 이외의 속성들은 Zipfian 분포를 따르는 속성값을 가지며, 또한 각각의 속성은 전체 투플 수의 0.5%에 해당하는 이산(distinct) 값을 가진다. DISC 테이블을 저장할 때의 페이지의 크기는 4K 바이트이다.

    color 속성값을 저장하는 인덱스 구조로서 R * -트리[2]를 사용하였으며, R * -트리의 노드 크기는 4K 바이트이다. RStreeINN 알고리즘의 실험을 위한 S-트리는 R * -트리를 일괄적재 방식으로 생성할 때 동시에 생성하였으며, 이때 여러 시그니쳐 분할 함수 f(l)을 적용하였다(예를 들면,

    ). 만약, f(l)에 의해 분할된 시그니쳐의 수가 많거나 공간 객체의 차원이 낮아 노드의 유효 용량 C가 커지는 경우 S-트리의 오버플로우 페이지에 나머지 시그니쳐를 저장하였다. 비공간 속성값에 대한 시그니쳐 생성을 위한 해쉬 함수는 [8]을 따르며, 각 실험에서 시그니쳐 크기 F=64비트(=8바이트)를 사용하였다. 두 알고리즘에서 사용하는 순위 큐는모두 주 메모리에서 동작하도록 구현되었다.

    실험 측정값은 질의 수행시간, 페이지 접근 수, 투플 접근 수로 나누어지고, 모든 실험에서 실험 질의는 (d-차원의 점, 비공간 속성값)으로 구성되며, 각 실험 결과는 50 개의 실험 질의를 수행한 결과의 평균값이다. d-차원 점은 무작위 방식으로, 비공간 속성값은 Zipfian 분포에 따른 선택율이 가장 높은 상위 50개의 속성값을 선택하였다. 그 이유는, 선택율이 높으면 동일한 속성값을 갖는 투플의 수가 증가하며, 따라서 질의 최적화시 정렬(sort) 비용이 큰 순차 스캔(scan) 방식보다 공간 인덱스를 사용할 가능성이 커지기 때문이다. 질의 결과 k는 1, ..., 35 범위를 가지며, k가 비교적 작은 이유는, k가 상대적으로 큰 경우 순차 검색이 유리하고 실제적으로 작은 k가 사용되기 때문이다[11]. R * -트리의 캐쉬의 크기는 하나의 페이지이며, 테이블 접근 때 사용되는 캐쉬의 크기는 전체 테이블의 크기의 1%를 사용하였다. 매 질의 수행시 시스템의 OS 캐쉬의 영향을 최소화하기 위해 시스템의 메모리보다 큰 파일 스캔 작업을 먼저 수행하였다. 두 알고리즘의 구현 프로그램을 수행시키기 위해서 Pentium 133MHz 프로세서, 128MB의 메모리, 6GB 디스크 드라이브를 갖는 시스템과 운영 체제 PowerLinux 6.0을 사용하였다.

    상기 실험은 인위적인 데이타를 사용하였으며, 실험 결과는 R*-트리가 중저차원에서 효율적이므로

    인 공간 데이타를 중심으로 수행된 것이다. 질의 결과 k에 따른 성능 평가: 테이블 DISC의 color 속성값의 차원 , artist의 속성값의 Zipfian 변수 z=0.5, 전체 투플의 수 , 시그니쳐 분할 함수 ,시그니쳐의 비트 수 F=64일 때, 질의 수행시간, 페이지 접근 수, 투플 접근 수는 각각 도 7a, 7b, 7c과 같다.

    도 7a에서 투플 접근 수는 k개의 질의 결과를 얻기까지 전체 후보 투플의 수와 같다. 두 알고리즘 모두 k가 커질수록 접근해야 하는 투플 수가 선형적으로 증가하지만, 직선의 기울기에서 크게 차이가 난다. 그 이유는 RStreeINN 알고리즘이 상기에서 설명한 S-트리의 제거 효과를 가지기 때문이다. 도 7b에서 두 알고리즘의 페이지 접근 수는 도 7a의 투플 접근 수보다 약간 큰 것을 알 수 있다. 그 이유는 두 알고리즘이 R-트리 또는 S-트리의 페이지를 추가적으로 접근하기 때문이다. 두 알고리즘 모두 접근 페이지 수가 k가 커짐에 따라 선형적으로 증가하며, 도 7a의 그래프와 거의 닮은 꼴을 유지한다. 그 이유는, 실험 데이타가 상대적으로 작은 경우 접근된 페이지 수는 공간 인덱스보다 투플 접근 비용에 더 영향을 받기 때문이다. 도 7b의 페이지 접근 수에서의 차이는 도 7c의 질의 수행 시간에 그대로 반영된다. 그러나, 도 7c에서 도 7b의 페이지 접근 수의 차이에서 예상할 수 있는 두 알고리즘의 성능 차이의 폭이 줄어든 것을 알 수 있다. 그 이유는, RStreeINN 알고리즘에서는 R-트리와 S-트리를 교대로 접근해야 하므로 랜덤 디스크 I/O가 발생하여 추가적인 비용을 더 지불해야 하기 때문이다.

    시그니쳐 분할 함수

    에 따른 성능 평가에 대하여 설명하면 다음과 같다.

    RStreeINN 알고리즘에서 S-트리 노드의 각 엔트리가 가질 수 있는 시그니쳐의 수에 따라 전체 성능이 달라질 수 있다. 전체 성능은 시그니쳐의 수에 비례한다는 것을 예상할 수 있다. 오버플로우 페이지가 생기지 않는 범위내에서 시그니쳐분할 함수 f(l)에 따른 실험을 수행하였으며, 그 결과는 도 8에 표시되어 있다.

    도 8a에서 RStreeINN 기법의 경우 시그니쳐 분할 수가 증가함에 따라 페이지 접근 수가 상당히 감소함을 알 수 있으며, RtreeINN 기법과 비교할 때 큰 폭의 차이를 보인다. 이러한 차이는 도 8b의 질의 수행 시간에 그대로 반영된다. 그러나,

    인 경우 RStreeINN 알고리즘이 RtreeINN 알고리즘보다 성능이 나쁘다. 그 이유는, RStreeINN 알고리즘에서는 S-트리를 통해 얻는 이익보다 S-트리의 접근으로 발생하는 랜덤 디스크 I/O에 의한 손해가 더 크기 때문이다. 그림 8c는 k=10일 때 f(l)에 따른 큐의 크기를 나타내며, NoSign은 RtreeINN 알고리즘에, base>2인 경우는 RStreeINN 알고리즘에 해당한다. 그림에서 아래쪽과 윗쪽 박스의 숫자는 각각 큐에 삽입된 R-트리 노드의 수와 전체 큐 크기를 의미하며, 두 값의 차는 큐에 삽입된 객체(또는 TID)의 수를 의미한다. 도 8c에서 시그니쳐 분할 수가 커짐에 따라 큐에 삽입된 R-트리 노드와 객체의 수가 줄어듬을 알 수 있으며, S-트리에서 시그니쳐 포화와 팬텀 효과가 시그니쳐 분할에 의해 완화되었음을 의미한다. 그리고, 큐 크기의 차이는 성능의 차이로 나타남을 알 수 있다. 이것이 도 8a-8b에 표시되어 있다.

    데이타 크기에 따른 성능 평가결과는 다음과 같다.

    상기 실험에서 실험 변수값은

    비트를 사용하였다. 도 9를 참고하면, 데이타 크기가 커짐에 따라 RStreeINN 알고리즘이 RtreeINN 알고리즘보다 성능이 우수함을 알 수 있다. 그리고, RtreeINN 알고리즘에서는 데이타 크기가 커짐에 따라 질의 수행 시간도 비교적 큰 기울기로 증가하지만, 반면에 RStreeINN 알고리즘에서는 그래프의 기울기가 완만하다. 이 사실에서 RStreeINN 알고리즘은 데이타 크기에 상관없이 그 성능을 보장함을 알 수 있다.

    공간 데이타의 차원(d)에 따른 성능 평가실험에서, 실험 변수 값은

    비트를 사용하였으며, d=2인 경우 S-트리에서 각 노드마다 하나의 오버플로우 페이지가 발생하였다. 도 10에서, 각 차원에 대해 RStreeINN이 RtreeINN보다 우수한 것을 알 수 있다. 그러나, 차원이 증가할수록 성능의 차이는 감소한다. 그 이유는, 고차원 R-트리에서는 저차원과 달리 데이타 노드의 용량이 작아서 질의의 비공간 속성값이 전체 데이타 노드에 고르게 분포하여 "시그니쳐 검사"를 통과할 확률이 높게 되어 RStreeINN가 접근하는 R-트리 노드의 수가 증가하기 때문이다

    실세계 데이터세트(Real Dataset)에서의 실험결과를 설명하면 다음과 같다.

    상기 실험에서는 공간 데이타는 실세계 데이타로서 16 차원의, CAD 모델에 사용하는 고차원 푸리에(Fourier) 점을 사용하였으며, 비공간 데이타는 인위 데이타로서 Zipfian 변수 z=0.5를 갖는 분포를 따른다. 그 이외의 실험 변수 값은

    비트와 같다. 차원 d=16일 때 R

    * -트리의 성능은 효율적이지 못하지만, 두 알고리즘의 성능 비교에는 별 무리가 없으리라 생각한다. 고차원에서는 R-트리 노드의 용량이 작아지기 때문에 두 알고리즘이 중저차원에서와 같은 성능은 보이지 않지만, RStreeINN이 RtreeINN보다 우위에 있음을 알 수 있다. 이것이 도 11에 표시되어 있다.

    상기와 같이 본 발명에 의하면, 종래 데이터베이스에서 질의에 있어서 사용되며, 잘타손(Hjaltason)과 사멧(Samet)이 제안한 R트리에 기반한 점증적 최근접 방법의 문제점인 불필요한 투플발생빈도수를 현저하게 감소시킴으로서 멀티미티어 데이터베이스 또는 지리정보시스템등에서 요구하는 다차원 공간객체집합에 대한 효과적인 질의가 가능하다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈