KR102288282B1 - 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치 - Google Patents
이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query 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
본 발명은 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치에 관한 것이다.
정수로 구성된 두 문자열 x, y에 대해 길이가 같고 문자들의 상대적 순위가 모든 위치에서 동일하면 x와y는 순위동형(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]에서는 일반적인 알파벳 에 대해 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은 본 발명의 실시예에 따른 다우존스지수 데이터에 대한 호스풀 알고리즘 기반 알고리즘들의 가장 빠른 수행시간을 비교한 그래프이다.
도 2는 본 발명의 일 실시예에 따른 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 장치의 구성을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 다우존스지수 데이터에 대한 호스풀 알고리즘 기반 알고리즘들의 가장 빠른 수행시간을 비교한 그래프이다.
본 발명의 실시예에 따르면, 기존의 O(m + q!) 공간을 O(m + 2 q ) 공간으로 줄이고, O(nm + nqlogq + q!) 시간을 O(m + 2 q ) 시간으로 개선한 알고리즘을 제시한다. 다우존스지수 데이터를 이용하여 실험한 결과, n = 34685, m = 20, q = 6 일 때, 제안하는 알고리즘은 기존의 알고리즘보다 최대 약 45% 빠르게 수행되었다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
는 정수문자로 이루어진 집합이다. 로 구성된 길이가 m인 문자열들의 집합을 으로 표기한다. 문자열 x가 주어졌을 때, x의 길이를 로 나타낸다. x의 번째 문자는 로 표기하고, x의 i번째부터 번째까지의 부분문자열을 로 표기한다.
두 문자열 x, y 에 대해 이면 x와 y 는 순위동형이라 하고 로 표기한다. 순위동형 판단을 위해 접두사표현을 이용한 접두사테이블과 최근접이웃표현을 이용한 위치테이블을 사용할 수 있다. 문자열 x에 대한 접두사테이블 는 다음과 같이 정의된다.
즉, LMax x [i]는 에서 보다 작거나 같은 값 중 최댓값의 위치 이고, 는 에서 보 다 크거나 같은 값 중 최솟값의 위치 j이다. 만약 그러한 j가 2개 이상이면, 이 중 가장 큰 j를 저장하고, 그러한 j가 없다면 -1을 저장한다. 두 문자열 x, y 와 위치테이블 , 가 주어졌을 때, p를 조건 , q를 조건 라 하자. 모든 i 에 대해 를 만족하면, 이다. 위치테이블 , 는 정렬알고리즘을 이용하여 O(m logm)시간 에 계산할 수 있고, 이를 이용하여 x와 y의 순위동형 여부를 O(m) 시간에 검증할 수 있다. 표 1은 문자열 x = (21, 69, 63, 57, 59, 67)에 대한 접두사테이블 , 위치테이블 와 , x가 이진수로 인코딩된 x′을 보여준다.
<표 1>
순위패턴매칭문제에서는 한 문자씩 비교할 때, 문자의 순위 가 항상 0으로 일치하게 된다. 따라서 순위패턴매칭문제에 일반적인 패턴매칭문제에 대한 호스풀(Horspool) 알고리즘을 그대로 활용 할 수 없다. [3]에서는 순위패턴매칭문제에 호스풀 알고리즘의 오문자규칙(bad-character heuristic)을 적용하기 위해, 하나의 문자가 아닌, 연속된 q개의 문자인 q-그램을 사용하고, 이를 하나의 정수로 사상하는 핑거프린트를 이용한다. 이때 임의의 q-그램 x에 대한 핑거프린트 는 다음과 같이 정의된다.
는 계승수체계를 사용하므로 범위가 이다. 예를 들어, q-그램 x = (21, 69, 63, 57)에 대해 , 핑거프린트 이다. [3]에서 제시된 알고리즘은 전처리단계와 탐색단계로 구성된다. 전처리단계에서는 패턴 P에 대해 이동테이블과 위치테이블을 생성하고, 탐색단계에서는 이동테이블과 위치테이블을 활용 하여 호스풀 알고리즘을 기반으로 P와 순위동형인 T의 모든 부분문자열을 검색한다. 전처리단계에서 이동테이블 D는 다음과 같이 계산된다. 먼저 D에 대해 크기가 q! 인 배열을 할당하고, 각 원소를 최대 이동거리인 m - q + 1로 초기화한다. 이후 P에 대해 다음의 수식으로 D를 계산한다.
위치테이블 , 는 앞서 설명한 방법으로 계산한다. 탐색단계는 스텝 가 존재하며, 각 스텝 i에서는 인지 확인한다. 구체적으로, 각 스텝 i에 서는 를 계산하여 미리 계산한 과 같은지 비교한다. 만약 두 값이 다르다면, 와 P는 순위동형일 수 없으므로 i를 만큼 증가시킨다. 만약 ?嚥? 이 같다면, 와 P는 순위동형일 수 있기 때문에 위치테이블을 이용하여 순위동형임을 검증한 다. 만약 순위동형이면 위치 i - m +1?藍? 출력한다. 이후 순위동 형의 여부와 관계없이 i를 만큼 증가시키고, 인 경우 이 과정을 반복한다.
[3]에서 제시된 알고리즘의 복잡도는 다음과 같다. 전처리단 계에서 위치테이블은 O(m) 공간과 O(m logm) 시간에 계산할 수 있고, 이동테이블은 O(q!) 공간과 O(q! + mqlogq) 시간에 계 산할 수 있다. 탐색단계에서는 모든 스텝 i에서 계산과 순위동형 검증을 할 수 있으므로 O(nqlogq + nm) 시간에 수행된다. 따라서 순위패턴매칭문제를 O(nm + nqlogq + q!) 시간과 O(m + q!) 공간에 해결할 수 있다. [4]에서는 [3]의 알고리즘을 기반으로 순위동형 검증횟수를 줄이기 위해 2차 q-그램의 핑거프린트를 이용한 알고리즘을 제 시하였다. 즉, 스텝 i에서 와 이 같다면, T와 P의 2차 q-그램의 핑거프린트인 과 를 한 번 더 비교하여 순위동형후보를 줄이는 전략을 사용하였다. [4]의 알고리즘의 복잡도는 [3]의 알고리즘의 복잡도와 동일하다.
[5]에서는 순위패턴매칭문제를 해결하기 위해 문자열을 이진수로 인코딩한다. 문자열 x 에 대한 인코딩된 문자열 x′은 에 대해 다음과 같이 정의된다. 편의상, x 에서 x′으로의 변환을 이진인코딩(binary encoding)으로 표기한다.
x′은 x의 인접한 두 원소들의 대소비교를 통해 O(m) 시간에 계산할 수 있다(표 1 참조).
도 1은 본 발명의 일 실시예에 따른 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법을 설명하기 위한 흐름도이다.
제안하는 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법은 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계(110) 및 획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계(120)를 포함한다.
단계(110)에서, 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성한다. 먼저, 크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리로 초기화한 후 이동테이블(D)을 계산하고, 여기서 q는 연속된 문자의 수이다.
단계(120)에서, 획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색한다. 순위동형 검증횟수를 줄이기 위해 2차 연속된 문자열의 핑거프린트를 이용하여 패턴과 순위동형인 텍스트의 부분문자열을 검색한다. 2차 연속된 문자열의 핑거프린트도 일치한다면, 위치테이블을 이용하여 패턴과 해당 텍스트가 순위동형인지 검증하고, 순위동형일 경우 상응하는 위치를 출력한다.
제안하는 알고리즘의 기본 아이디어는 접두사 테이블을 이용하는 대신 이진인코딩을 이용하여 T와 P의 q-그램을 구하는 것이다. 그리고 계산한 q-그램에 대하여 핑거프린트는 계승수체계가 아닌 이진법을 이용하여 계산한다. 즉, 를 이용하는 것이 아니라 아래의 식과 같이 이진인코딩을 적용한 x′을 이용하여 이진법에 따라 변형된 핑거프린트 함수 를 계산한다.
예를 들어, 문자열 x = (21, 69, 63, 57)에 대해 인코딩된 문자열 x′= (1, 0, 0), 이다. 는 계승수체계를 사용하지 않으며, 0∼2q -1의 범위를 갖는다.
본 발명에서 제안하는 알고리즘은 전처리단계(110) 및 탐색단계(120)를 포함한다. 전처리단계(110)에서는 P에 대해 이동테이블과 위치테이블을 생성한다. 위치테이블 , 는 [3]에서 제시된 방법으로 계산한다. 이동테이블 D는 먼저 크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리인 m - q로 초기화한다. 이 후 P′에 대해 다음의 수식으로 D를 계산한다.
탐색단계(120)에서는 순위동형 검증횟수를 줄이기 위해 [4]와 같이 2차 q-그램의 핑거프린트를 이용하여 P와 순위동형인 T의 부분문자열을 검색한다. 이때 1차 q-그램의 핑거프린트가 일치할 확률은 1/2q이고, 2차 q-그램의 핑거프린트까지 일치할 확률은 1/2q+1이다. 한편, 실험 결과, 3차 q-그램부터는 성능향상이 미미하여 2차 q-그램까지만 이용한다. 구체적으로, 스텝 가 존재하며, 각 스텝 i에서 과 를 비교한다. 만약 두 값이 일치하면 2차 q-그램의 핑거프린트인 와 를 비교한다. 이때 2차 q-그램의 핑거 프린트는 1차 q-그램으로부터 라빈-카프(Rabin-Karp) 방법[10]을 이용하여 O(1) 시간에 계산할 수 있다. 만약 2차 q-그램의 핑거프린트도 일치한다면, 위치테이블을 이용하여 P와 가 순위동형인지 검증하고, 순위동형이면 위치 i - m + 1을 출력한다. 이후 순위동형 여부에 관계없이 i를 만큼 증가시키고 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}, ).
실험환경은 다음과 같다. 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)로 생성한 다우존스지수 데이터를 이용하였다. 패턴 P 는 T 의 부분문자열 중 무작위로 추출하였다. 패턴의 길이 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>
표 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)
- 전처리부 및 탐색부를 포함하는 순위패턴매칭 장치의 순위패턴매칭 방법에 있어서,
전처리부를 통해 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계; 및
획득된 연속된 문자열에 대하여 탐색부를 통해 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계
를 포함하는 순위패턴매칭 방법. - 제1항에 있어서,
전처리부를 통해 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리 단계는,
크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리로 초기화한 후 이동테이블(D)을 계산하고, 여기서 q는 연속된 문자의 수인
순위패턴매칭 방법. - 제1항에 있어서,
획득된 연속된 문자열에 대하여 탐색부를 통해 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 단계는,
순위동형 검증횟수를 줄이기 위해 2차 연속된 문자열의 핑거프린트를 이용하여 패턴과 순위동형인 텍스트의 부분문자열을 검색하는
순위패턴매칭 방법. - 제3항에 있어서,
2차 연속된 문자열의 핑거프린트도 일치한다면, 위치테이블을 이용하여 패턴과 해당 텍스트가 순위동형인지 검증하고, 순위동형일 경우 상응하는 위치를 출력하는
순위패턴매칭 방법. - 이진인코딩을 이용하여 텍스트(T)와 패턴(P)의 연속된 문자열을 구하기 위해 패턴에 대해 이동테이블과 위치테이블을 생성하는 전처리부; 및
획득된 연속된 문자열에 대하여 이진인코딩을 적용한 인코딩된 문자열을 이용하여 이진법에 따라 변형된 핑거프린트 함수를 계산하고 패턴과 순위동형인 텍스트의 부분문자열을 탐색하는 탐색부
를 포함하는 순위패턴매칭 장치. - 제5항에 있어서,
전처리부는,
크기가 2q인 배열을 할당하고, 각 원소를 최대 이동거리로 초기화한 후 이동테이블(D)을 계산하고, 여기서 q는 연속된 문자의 수인
순위패턴매칭 장치. - 제5항에 있어서,
탐색부는,
순위동형 검증횟수를 줄이기 위해 2차 연속된 문자열의 핑거프린트를 이용하여 패턴과 순위동형인 텍스트의 부분문자열을 검색하고,
2차 연속된 문자열의 핑거프린트도 일치한다면, 위치테이블을 이용하여 패턴과 해당 텍스트가 순위동형인지 검증하고, 순위동형일 경우 상응하는 위치를 출력하는
순위패턴매칭 장치.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101991579B1 (ko) * | 2017-10-31 | 2019-06-20 | 인하대학교 산학협력단 | Z-함수를 이용한 순위패턴매칭과 순위다중패턴매칭 병렬 계산 방법 |
-
2019
- 2019-12-18 KR KR1020190170219A patent/KR102288282B1/ko active IP Right Grant
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 |