KR102288282B1 - 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치 - Google Patents

이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치 Download PDF

Info

Publication number
KR102288282B1
KR102288282B1 KR1020190170219A KR20190170219A KR102288282B1 KR 102288282 B1 KR102288282 B1 KR 102288282B1 KR 1020190170219 A KR1020190170219 A KR 1020190170219A KR 20190170219 A KR20190170219 A KR 20190170219A KR 102288282 B1 KR102288282 B1 KR 102288282B1
Authority
KR
South Korea
Prior art keywords
pattern
rank
text
string
binary encoding
Prior art date
Application number
KR1020190170219A
Other languages
English (en)
Other versions
KR20210078332A (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 KR1020190170219A priority Critical patent/KR102288282B1/ko
Publication of KR20210078332A publication Critical patent/KR20210078332A/ko
Application granted granted Critical
Publication of KR102288282B1 publication Critical patent/KR102288282B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

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

Abstract

이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치가 제시된다. 본 발명에서 제안하는 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법은 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계 및 획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계를 포함한다.

Description

이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치{Method and Apparatus for An Order-Preserving Pattern Matching based on the Horspool Algorithm using Binary Encoding}
본 발명은 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치에 관한 것이다.
정수로 구성된 두 문자열 x, y에 대해 길이가 같고 문자들의 상대적 순위가 모든 위치에서 동일하면 xy는 순위동형(order-isomorphic)이라 한다. 예를 들어, x = (26, 4, 47, 13) 과 y = (37, 15, 68, 31)은 길이가 같고 각 문자의 순위가 (3, 1, 4, 2) 로 같으므로 서로 순위동형이다. 순위패턴매칭문제는 길이가 각각 n, m인 텍스트 T와 패턴 P가 주어질 때, P와 순위동형 인 T의 모든 부분문자열을 찾는 문제이다. 이는 주가지수, 악보의 멜로디와 같은 시계열 데이터 분석에 활용될 수 있다. 최근 순위패턴매칭문제에 대한 연구가 활발히 진행되고 있다. KMP 알고리즘을 기반으로, [2]에서는 패턴 P를 O(m)시간에 정렬할 수 있을 때 O(n + m)-시간 알고리즘을, [1]에서는 일반적인 알파벳
Figure 112019131239058-pat00001
에 대해 O(n + m logm)-시간 알고리즘을 제시하였다. [3]에서는 호스풀(Horspool) 알고리즘[7]을 기반으로 q개의 연속된 문자인 q-그램을 이용하여 O(nm + nqlogq + q!) 시간과 O(m + q!) 공간에 이 문제를 해결하는 알고리즘을 제시하였다. 또한 호스풀 알고리즘과 KMP 알고리즘을 결합하여 최악수행 시간을 O((m + n) qlogq + q!)으로 개선하였다. [4]에서는 [3]의 변형된 호스풀 알고리즘을 기반으로 순위동형 검증횟수를 줄이기 위해 2차 q-그램의 핑거프린트를 활용한 알고리즘을 제시 하였다. [5]에서는 이진인코딩을 이용하여 평균적으로 선형이하 시간에 수행되는 알고리즘을 제시하였다.
본 발명에서는 순위패턴매칭문제를 해결하기 위해 [5]의 이진 인코딩을 활용하여 [4]에서 제시된 알고리즘을 개선한다.
본 발명이 이루고자 하는 기술적 과제는 순위패턴매칭문제를 해결하기 위해 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치를 제공하는데 있다.
일 측면에 있어서, 본 발명에서 제안하는 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법은 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계 및 획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계를 포함한다.
이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계는 크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리로 초기화한 후 이동테이블(D)을 계산하고, 여기서 q는 연속된 문자의 수이다.
획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계는 순위동형 검증횟수를 줄이기 위해 2차 연속된 문자열의 핑거프린트를 이용하여 패턴과 순위동형인 텍스트의 부분문자열을 검색한다.
2차 연속된 문자열의 핑거프린트도 일치한다면, 위치테이블을 이용하여 패턴과 해당 텍스트가 순위동형인지 검증하고, 순위동형일 경우 상응하는 위치를 출력한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 장치는 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리부 및 획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 탐색부를 포함한다.
본 발명의 실시예들에 따른 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치를 통해 순위패턴매칭문제를 해결할 수 있고, 다우존스지수 데이터를 이용하여 실험한 결과, n = 34685, m = 20, q = 6 일 때, 제안하는 알고리즘은 기존의 알고리즘보다 최대 약 45% 빠르게 수행되었다.
도 1은 본 발명의 일 실시예에 따른 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 장치의 구성을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 다우존스지수 데이터에 대한 호스풀 알고리즘 기반 알고리즘들의 가장 빠른 수행시간을 비교한 그래프이다.
본 발명의 실시예에 따르면, 기존의 O(m + q!) 공간을 O(m + 2 q ) 공간으로 줄이고, O(nm + nqlogq + q!) 시간을 O(m + 2 q ) 시간으로 개선한 알고리즘을 제시한다. 다우존스지수 데이터를 이용하여 실험한 결과, n = 34685, m = 20, q = 6 일 때, 제안하는 알고리즘은 기존의 알고리즘보다 최대 약 45% 빠르게 수행되었다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
Figure 112019131239058-pat00002
는 정수문자로 이루어진 집합이다.
Figure 112019131239058-pat00003
로 구성된 길이가 m인 문자열들의 집합을
Figure 112019131239058-pat00004
으로 표기한다. 문자열 x가 주어졌을 때, x의 길이를
Figure 112019131239058-pat00005
로 나타낸다. x
Figure 112019131239058-pat00006
번째 문자는
Figure 112019131239058-pat00007
로 표기하고, xi번째부터
Figure 112019131239058-pat00008
번째까지의 부분문자열을
Figure 112019131239058-pat00009
로 표기한다.
두 문자열 x, y
Figure 112019131239058-pat00010
에 대해
Figure 112019131239058-pat00011
Figure 112019131239058-pat00012
이면 xy 는 순위동형이라 하고
Figure 112019131239058-pat00013
로 표기한다. 순위동형 판단을 위해 접두사표현을 이용한 접두사테이블과 최근접이웃표현을 이용한 위치테이블을 사용할 수 있다. 문자열 x에 대한 접두사테이블
Figure 112019131239058-pat00014
는 다음과 같이 정의된다.
Figure 112019131239058-pat00015
만약
Figure 112019131239058-pat00016
이면
Figure 112019131239058-pat00017
이다. 접두사테이블
Figure 112019131239058-pat00018
는 순위통계트리를 이용하여 O(m logm)시간에 계산할 수 있다. 문자열 x에 대한 위치테이블
Figure 112019131239058-pat00019
,
Figure 112019131239058-pat00020
는 다음과 같이 정의된다.
Figure 112019131239058-pat00021
즉, LMax x [i]는
Figure 112019131239058-pat00022
에서
Figure 112019131239058-pat00023
보다 작거나 같은 값 중 최댓값의 위치
Figure 112019131239058-pat00024
이고,
Figure 112019131239058-pat00025
Figure 112019131239058-pat00026
에서
Figure 112019131239058-pat00027
보 다 크거나 같은 값 중 최솟값의 위치 j이다. 만약 그러한 j가 2개 이상이면, 이 중 가장 큰 j를 저장하고, 그러한 j가 없다면 -1을 저장한다. 두 문자열 x, y
Figure 112019131239058-pat00028
와 위치테이블
Figure 112019131239058-pat00029
,
Figure 112019131239058-pat00030
가 주어졌을 때, p를 조건
Figure 112019131239058-pat00031
, q를 조건
Figure 112019131239058-pat00032
라 하자. 모든 i
Figure 112019131239058-pat00033
에 대해
Figure 112019131239058-pat00034
를 만족하면,
Figure 112019131239058-pat00035
이다. 위치테이블
Figure 112019131239058-pat00036
,
Figure 112019131239058-pat00037
는 정렬알고리즘을 이용하여 O(m logm)시간 에 계산할 수 있고, 이를 이용하여 xy의 순위동형 여부를 O(m) 시간에 검증할 수 있다. 표 1은 문자열 x = (21, 69, 63, 57, 59, 67)에 대한 접두사테이블
Figure 112019131239058-pat00038
, 위치테이블
Figure 112019131239058-pat00039
Figure 112019131239058-pat00040
, x가 이진수로 인코딩된 x′을 보여준다.
<표 1>
Figure 112019131239058-pat00041
순위패턴매칭문제는 텍스트
Figure 112019131239058-pat00042
, 패턴
Figure 112019131239058-pat00043
가 주어졌을 때,
Figure 112019131239058-pat00044
Figure 112019131239058-pat00045
의 모든 위치
Figure 112019131239058-pat00046
을 찾는 문제이다.
순위패턴매칭문제에서는 한 문자씩 비교할 때, 문자의 순위 가 항상 0으로 일치하게 된다. 따라서 순위패턴매칭문제에 일반적인 패턴매칭문제에 대한 호스풀(Horspool) 알고리즘을 그대로 활용 할 수 없다. [3]에서는 순위패턴매칭문제에 호스풀 알고리즘의 오문자규칙(bad-character heuristic)을 적용하기 위해, 하나의 문자가 아닌, 연속된 q개의 문자인 q-그램을 사용하고, 이를 하나의 정수로 사상하는 핑거프린트를 이용한다. 이때 임의의 q-그램 x에 대한 핑거프린트
Figure 112019131239058-pat00047
는 다음과 같이 정의된다.
Figure 112019131239058-pat00048
Figure 112019131239058-pat00049
는 계승수체계를 사용하므로 범위가
Figure 112019131239058-pat00050
이다. 예를 들어, q-그램 x = (21, 69, 63, 57)에 대해
Figure 112019131239058-pat00051
, 핑거프린트
Figure 112019131239058-pat00052
이다. [3]에서 제시된 알고리즘은 전처리단계와 탐색단계로 구성된다. 전처리단계에서는 패턴 P에 대해 이동테이블과 위치테이블을 생성하고, 탐색단계에서는 이동테이블과 위치테이블을 활용 하여 호스풀 알고리즘을 기반으로 P와 순위동형인 T의 모든 부분문자열을 검색한다. 전처리단계에서 이동테이블 D는 다음과 같이 계산된다. 먼저 D에 대해 크기가 q! 인 배열을 할당하고, 각 원소를 최대 이동거리인 m - q + 1로 초기화한다. 이후 P에 대해 다음의 수식으로 D를 계산한다.
Figure 112019131239058-pat00053
위치테이블
Figure 112019131239058-pat00054
,
Figure 112019131239058-pat00055
는 앞서 설명한 방법으로 계산한다. 탐색단계는 스텝
Figure 112019131239058-pat00056
가 존재하며, 각 스텝 i에서는
Figure 112019131239058-pat00057
인지 확인한다. 구체적으로, 각 스텝 i에 서는
Figure 112019131239058-pat00058
를 계산하여 미리 계산한
Figure 112019131239058-pat00059
과 같은지 비교한다. 만약 두 값이 다르다면,
Figure 112019131239058-pat00060
P는 순위동형일 수 없으므로 i
Figure 112019131239058-pat00061
만큼 증가시킨다. 만약
Figure 112019131239058-pat00062
?嚥?
Figure 112019131239058-pat00063
이 같다면,
Figure 112019131239058-pat00064
P는 순위동형일 수 있기 때문에 위치테이블을 이용하여 순위동형임을 검증한 다. 만약 순위동형이면 위치 i - m +1?藍? 출력한다. 이후 순위동 형의 여부와 관계없이 i
Figure 112019131239058-pat00065
만큼 증가시키고,
Figure 112019131239058-pat00066
인 경우 이 과정을 반복한다.
[3]에서 제시된 알고리즘의 복잡도는 다음과 같다. 전처리단 계에서 위치테이블은 O(m) 공간과 O(m logm) 시간에 계산할 수 있고, 이동테이블은 O(q!) 공간과 O(q! + mqlogq) 시간에 계 산할 수 있다. 탐색단계에서는 모든 스텝 i에서
Figure 112019131239058-pat00067
계산과 순위동형 검증을 할 수 있으므로 O(nqlogq + nm) 시간에 수행된다. 따라서 순위패턴매칭문제를 O(nm + nqlogq + q!) 시간과 O(m + q!) 공간에 해결할 수 있다. [4]에서는 [3]의 알고리즘을 기반으로 순위동형 검증횟수를 줄이기 위해 2차 q-그램의 핑거프린트를 이용한 알고리즘을 제 시하였다. 즉, 스텝 i에서
Figure 112019131239058-pat00068
Figure 112019131239058-pat00069
이 같다면, TP의 2차 q-그램의 핑거프린트인
Figure 112019131239058-pat00070
Figure 112019131239058-pat00071
를 한 번 더 비교하여 순위동형후보를 줄이는 전략을 사용하였다. [4]의 알고리즘의 복잡도는 [3]의 알고리즘의 복잡도와 동일하다.
[5]에서는 순위패턴매칭문제를 해결하기 위해 문자열을 이진수로 인코딩한다. 문자열 x
Figure 112019131239058-pat00072
에 대한 인코딩된 문자열 x
Figure 112019131239058-pat00073
Figure 112019131239058-pat00074
에 대해 다음과 같이 정의된다. 편의상, x 에서 x′으로의 변환을 이진인코딩(binary encoding)으로 표기한다.
Figure 112019131239058-pat00075
x′은 x의 인접한 두 원소들의 대소비교를 통해 O(m) 시간에 계산할 수 있다(표 1 참조).
도 1은 본 발명의 일 실시예에 따른 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법을 설명하기 위한 흐름도이다.
제안하는 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법은 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계(110) 및 획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계(120)를 포함한다.
단계(110)에서, 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성한다. 먼저, 크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리로 초기화한 후 이동테이블(D)을 계산하고, 여기서 q는 연속된 문자의 수이다.
단계(120)에서, 획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색한다. 순위동형 검증횟수를 줄이기 위해 2차 연속된 문자열의 핑거프린트를 이용하여 패턴과 순위동형인 텍스트의 부분문자열을 검색한다. 2차 연속된 문자열의 핑거프린트도 일치한다면, 위치테이블을 이용하여 패턴과 해당 텍스트가 순위동형인지 검증하고, 순위동형일 경우 상응하는 위치를 출력한다.
제안하는 알고리즘의 기본 아이디어는 접두사 테이블을 이용하는 대신 이진인코딩을 이용하여 TPq-그램을 구하는 것이다. 그리고 계산한 q-그램에 대하여 핑거프린트는 계승수체계가 아닌 이진법을 이용하여 계산한다. 즉,
Figure 112019131239058-pat00076
를 이용하는 것이 아니라 아래의 식과 같이 이진인코딩을 적용한 x′을 이용하여 이진법에 따라 변형된 핑거프린트 함수
Figure 112019131239058-pat00077
를 계산한다.
Figure 112019131239058-pat00078
예를 들어, 문자열 x = (21, 69, 63, 57)에 대해 인코딩된 문자열 x′= (1, 0, 0),
Figure 112019131239058-pat00079
이다.
Figure 112019131239058-pat00080
는 계승수체계를 사용하지 않으며, 0∼2q -1의 범위를 갖는다.
본 발명에서 제안하는 알고리즘은 전처리단계(110) 및 탐색단계(120)를 포함한다. 전처리단계(110)에서는 P에 대해 이동테이블과 위치테이블을 생성한다. 위치테이블
Figure 112019131239058-pat00081
,
Figure 112019131239058-pat00082
는 [3]에서 제시된 방법으로 계산한다. 이동테이블 D는 먼저 크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리인 m - q로 초기화한다. 이 후 P′에 대해 다음의 수식으로 D를 계산한다.
Figure 112019131239058-pat00083
탐색단계(120)에서는 순위동형 검증횟수를 줄이기 위해 [4]와 같이 2차 q-그램의 핑거프린트를 이용하여 P와 순위동형인 T의 부분문자열을 검색한다. 이때 1차 q-그램의 핑거프린트가 일치할 확률은 1/2q이고, 2차 q-그램의 핑거프린트까지 일치할 확률은 1/2q+1이다. 한편, 실험 결과, 3차 q-그램부터는 성능향상이 미미하여 2차 q-그램까지만 이용한다. 구체적으로, 스텝
Figure 112019131239058-pat00084
가 존재하며, 각 스텝 i에서
Figure 112019131239058-pat00085
Figure 112019131239058-pat00086
를 비교한다. 만약 두 값이 일치하면 2차 q-그램의 핑거프린트인
Figure 112019131239058-pat00087
Figure 112019131239058-pat00088
를 비교한다. 이때 2차 q-그램의 핑거 프린트는 1차 q-그램으로부터 라빈-카프(Rabin-Karp) 방법[10]을 이용하여 O(1) 시간에 계산할 수 있다. 만약 2차 q-그램의 핑거프린트도 일치한다면, 위치테이블을 이용하여 P
Figure 112019131239058-pat00089
가 순위동형인지 검증하고, 순위동형이면 위치 i - m + 1을 출력한다. 이후 순위동형 여부에 관계없이 i
Figure 112019131239058-pat00090
만큼 증가시키고 i < n 이면 이 과정을 반복한다.
본 발명에서 제안하는 알고리즘의 복잡도는 다음과 같다. 전처리단계는 위치테이블과 이동테이블을 각각 O(m logm) 시간, O(2 q + m)시간에 계산할 수 있다. 이동테이블의 공간을 O(q!)에서 O(2 q )으로 변경하였으며, 이는 스티어링(Stirling)의 근사로부터 더 낮은 증가율을 보임을 알 수 있다. 탐색단계에서는 모든 스텝 i에서 핑거프린트 계산과 순위동형 검증을 할 수 있으므로 O(nm) 시간에 수행할 수 있다. 따라서 본 발명에서 제안하는 알고리즘은 O(m + 2 q )공간을 사용하여 O(nm + 2 q ) 시간에 순위패턴매칭문제를 해결할 수 있다.
도 2는 본 발명의 일 실시예에 따른 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 장치의 구성을 나타내는 도면이다.
이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 장치(200)는 전처리부(210) 및 탐색부(220)를 포함한다.
전처리부(210) 및 탐색부(220)는 도 1의 단계들(110~120)을 수행하기 위해 구성될 수 있다.
전처리부(210)는 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성한다. 먼저, 크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리로 초기화한 후 이동테이블(D)을 계산하고, 여기서 q는 연속된 문자의 수이다.
탐색부(220)는 획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색한다. 탐색부(220)는 순위동형 검증횟수를 줄이기 위해 2차 연속된 문자열의 핑거프린트를 이용하여 패턴과 순위동형인 텍스트의 부분문자열을 검색한다. 2차 연속된 문자열의 핑거프린트도 일치한다면, 위치테이블을 이용하여 패턴과 해당 텍스트가 순위동형인지 검증하고, 순위동형일 경우 상응하는 위치를 출력한다.
도 3은 본 발명의 실시예에 따른 다우존스지수 데이터에 대한 호스풀 알고리즘 기반 알고리즘들의 가장 빠른 수행시간을 비교한 그래프이다(n = 34685, m = {5, 10, 15, 20},
Figure 112019131239058-pat00091
).
실험환경은 다음과 같다. OS는 Windows 10(64bit), CPU는 Intel Core i7-6700(3.4GHz), RAM은 32GB의 크기를, 개발 툴은 Visual Studio 2015, 개발 언어는 C++을 사용하였다. 텍스트 T는 1885년 2월 16일부터 2010년 12월 31까지의 다우존스산업평균지수의 일별 종가 (n = 34685)로 생성한 다우존스지수 데이터를 이용하였다. 패턴 PT 의 부분문자열 중 무작위로 추출하였다. 패턴의 길이 m은 5, 10, 15, 20, q는 3, 4, 5, 6에 대해 실험하였으며, 알고리즘의 수행시간은 각각 10,000 번 실험한 수행시간의 합으로 측정하였다. 편의상, [3]에서 제시된 호스풀 알고리즘 기반 알고리즘을 OHq, [4]에서 제시된 알고리즘을 OHSq, 본 발명에서 제시하는 알고리즘을 OHESq로 표기한다. 한편, [3]에서의 호스풀 알고리즘과 KMP 알고리즘을 결합한 알고리즘은 OHq보다 실제 수행시간이 느리기 때문에, 본 발명에서는 OHq와 비교한다.
표 2는 다우존스지수 데이터에 대해 OHq, OHSq, OHESq의 수행시간을 보여준다.
<표 2>
Figure 112019131239058-pat00092
표 2에서 각 파라미터마다 가장 빠른 알고리즘의 수행시간을 진하게 표시하였다. m = 5, q = 4인 경우를 제외한 다른 모든 경우에서 OHESq가 가장 빠르게 수행되었다. OHESq는 OHq와 OHSq 중 더 빠른 알고리즘보다 m = 5, q = 3일 때 약 5%, m = 10, q = 4일 때 약 17%, m = 15, q = 5일 때 약 34%, m = 20, q = 6일 때 약 45% 빠르게 수행되었다. 도 3은 q에 상관없이 m에 따라 각 알고리즘들의 가장 빠른 수 행시간을 보여준다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
<참고문헌>
[1] J. Kim, P. Eades, R. Fleischer, S. Hong, C. S. Iliopoulos, K. Park, S. J. Puglisi, T. Tokuyama, "Order-preserving matching," Theoretical Computer Science, Vol. 525, pp. 68-79, 2014.
[2] M. Kubica, T. Kulczynski, J. Radoszewski, W. Rytter, T. Walen, "A linear time algorithm for consecutive permutation pattern matching," Information Processing Letters, Vol. 113, pp. 430-433, 2013.
[3] S. Cho, J. Na, K. Pa, J. Sim, "A fast algorithm for order-preserving pattern matching," Information Processing Letters, Vol. 115, pp. 397-402, 2015.
[4] G. Yoo, Y. Kim, J. Sim, "A Horspool-based order-preserving pattern matching algorithm using fingerprints of secondary -grams," KSC 2017, pp. 2186-2188, 2017.
[5] T. Chhabra, J. Tariho, "A filtration method for order-preserving matching," Information Processing Letters, Vol. 116, pp. 71-74, 2016.
[6] D. E. Knuth, J. H. Morris, V. R. Pratt, "Fast pattern matching in strings," SIAM journal on computing, Vol. 6, no. 2, pp. 323-350, 1977.
[7] R. N. Horspool, "Practical fast searching in strings," Software: Practice and Experience, Vol. 10, No. 6, pp. 501-506, 1980.
[8] D. E. Knuth, The Art of Computer Programming, Vol. 2: Seminumerical Algorithms, 3rd Ed., Addison-Wesley, 1997.
[9] M. Mares, M. Straka, "Linear-time ranking of permutations," European Symposium on Algorithms, Vol. 4698, pp. 187-193, 2007.
[10] H. Cormen, E. Leiserson, L. Rivest, C. Stein, "Introduction to Algorithms," 3rd Ed., The MIT press, 2009.

Claims (7)

  1. 전처리부 및 탐색부를 포함하는 순위패턴매칭 장치의 순위패턴매칭 방법에 있어서,
    전처리부를 통해 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계; 및
    획득된 연속된 문자열에 대하여 탐색부를 통해 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계
    를 포함하는 순위패턴매칭 방법.
  2. 제1항에 있어서,
    전처리부를 통해 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계는,
    크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리로 초기화한 후 이동테이블(D)을 계산하고, 여기서 q는 연속된 문자의 수인
    순위패턴매칭 방법.
  3. 제1항에 있어서,
    획득된 연속된 문자열에 대하여 탐색부를 통해 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계는,
    순위동형 검증횟수를 줄이기 위해 2차 연속된 문자열의 핑거프린트를 이용하여 패턴과 순위동형인 텍스트의 부분문자열을 검색하는
    순위패턴매칭 방법.
  4. 제3항에 있어서,
    2차 연속된 문자열의 핑거프린트도 일치한다면, 위치테이블을 이용하여 패턴과 해당 텍스트가 순위동형인지 검증하고, 순위동형일 경우 상응하는 위치를 출력하는
    순위패턴매칭 방법.
  5. 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리부; 및
    획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 탐색부
    를 포함하는 순위패턴매칭 장치.
  6. 제5항에 있어서,
    전처리부는,
    크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리로 초기화한 후 이동테이블(D)을 계산하고, 여기서 q는 연속된 문자의 수인
    순위패턴매칭 장치.
  7. 제5항에 있어서,
    탐색부는,
    순위동형 검증횟수를 줄이기 위해 2차 연속된 문자열의 핑거프린트를 이용하여 패턴과 순위동형인 텍스트의 부분문자열을 검색하고,
    2차 연속된 문자열의 핑거프린트도 일치한다면, 위치테이블을 이용하여 패턴과 해당 텍스트가 순위동형인지 검증하고, 순위동형일 경우 상응하는 위치를 출력하는
    순위패턴매칭 장치.
KR1020190170219A 2019-12-18 2019-12-18 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치 KR102288282B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190170219A KR102288282B1 (ko) 2019-12-18 2019-12-18 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190170219A KR102288282B1 (ko) 2019-12-18 2019-12-18 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210078332A KR20210078332A (ko) 2021-06-28
KR102288282B1 true KR102288282B1 (ko) 2021-08-10

Family

ID=76608052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190170219A KR102288282B1 (ko) 2019-12-18 2019-12-18 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102288282B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101991579B1 (ko) * 2017-10-31 2019-06-20 인하대학교 산학협력단 Z-함수를 이용한 순위패턴매칭과 순위다중패턴매칭 병렬 계산 방법

Also Published As

Publication number Publication date
KR20210078332A (ko) 2021-06-28

Similar Documents

Publication Publication Date Title
Mobasher et al. Using sequential and non-sequential patterns in predictive web usage mining tasks
Nunthanid et al. Discovery of variable length time series motif
US7818278B2 (en) Large scale item representation matching
US6718325B1 (en) Approximate string matcher for delimited strings
Gog et al. Fast and lightweight LCP-array construction algorithms
CA2882280A1 (en) System and method for matching data using probabilistic modeling techniques
JP4114600B2 (ja) 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム
KR101662957B1 (ko) 해싱기반의 순위다중패턴매칭 방법
Sedmidubsky et al. Searching for variable-speed motions in long sequences of motion capture data
WO2017072890A1 (ja) データ管理システム、データ管理方法およびプログラム
Wei Markov edit distance
JP2022037955A (ja) 学習モデルを選択するシステム
JP2013073256A (ja) 近似最近傍探索方法、最近傍探索プログラムおよび装置
US11645539B2 (en) Machine learning-based techniques for representing computing processes as vectors
Damron et al. Superlinearity of Geodesic Length in 2 D Critical First-Passage Percolation
KR102288282B1 (ko) 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치
Daykin et al. Efficient pattern matching in degenerate strings with the Burrows–Wheeler transform
KR102048442B1 (ko) 네트워크에서의 랭킹 및 연결 예측을 위한 지도식 확장 랜덤 워크를 제공하는 방법 및 장치
US11755671B2 (en) Projecting queries into a content item embedding space
Lu et al. On the cost of extracting proximity features for term-dependency models
Lopes et al. Accelerating block coordinate descent methods with identification strategies
JP6005583B2 (ja) 検索装置、検索方法および検索プログラム
KR102158317B1 (ko) 2차 q-그램에 대한 핑거프린트를 이용한 순위패턴매칭 알고리즘
KR102190285B1 (ko) 공간효율적인 순위다중패턴매칭 알고리즘
Borisov et al. On the automatic analysis of the practical resistance of obfusting transformations

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant