KR102233217B1 - 분할순위패턴매칭 알고리즘 - Google Patents

분할순위패턴매칭 알고리즘 Download PDF

Info

Publication number
KR102233217B1
KR102233217B1 KR1020190178103A KR20190178103A KR102233217B1 KR 102233217 B1 KR102233217 B1 KR 102233217B1 KR 1020190178103 A KR1020190178103 A KR 1020190178103A KR 20190178103 A KR20190178103 A KR 20190178103A KR 102233217 B1 KR102233217 B1 KR 102233217B1
Authority
KR
South Korea
Prior art keywords
algorithm
pattern matching
pattern
wow
division
Prior art date
Application number
KR1020190178103A
Other languages
English (en)
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 KR1020190178103A priority Critical patent/KR102233217B1/ko
Application granted granted Critical
Publication of KR102233217B1 publication Critical patent/KR102233217B1/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

분할순위패턴매칭 알고리즘이 제시된다. 본 발명에서 제안하는 분할순위패턴 매칭 알고리즘은 길이가 각각 n, m인 텍스트 T와 패턴 P에 대하여, 패턴 P에 대한 위치테이블
Figure 112019135591233-pat00265
,
Figure 112019135591233-pat00266
,
Figure 112019135591233-pat00267
,
Figure 112019135591233-pat00268
를 각각 생성하는 단계 및
Figure 112019135591233-pat00269
개의 단계에서 탐색을 수행하는 단계를 포함한다.

Description

분할순위패턴매칭 알고리즘{An algorithm for order-preserving pattern matching with partition}
본 발명은 분할순위패턴매칭 알고리즘에 관한 것이다.
정수로 구성된 두 문자열 x, y의 길이가 같고, x, y의 상대적 순위가 모든 위치에서 동일하면 xy는 순위동형(order-isomorphic)이다. 예를 들어, x=(6, 4, 9) 와 y
Figure 112019135591233-pat00001
(17, 16, 18)은 길이가 같고 각 문자의 순위가 (2, 1, 3)으로 동일하므로 순위동형이다. 순위패턴 매칭 문제는 길이가 각각 n, m인 텍스트 T와 패턴 P가 주어질 때, P와 순위동형인 T의 모든 부분문자열을 찾는 문제이다. 이는 주가지수, 기후정보, 멜로디와 같은 시계열 데이터 분석에 활용될 수 있다.
[1], [2]에서 KMP 알고리즘[3]을 기반으로
Figure 112019135591233-pat00002
시간에 순위패턴 매칭 문제를 해결하였고, [4]에서는 Horspool 알고리즘[5]과 q개의 연속된 문자인 q-그램의 핑거프린트(fingerprint)를 이용하여
Figure 112019135591233-pat00003
시간에 이 문제를 해결하였다. [6]에서는 TP가 주어질 때, P와 순위동형인 T의 모든 부분서열(subsequnce)을 찾는 문제가 NP-완전(NP-complete)임을 증명하였다. [7]에서는 T의 부분문자열과 P사이에
Figure 112019135591233-pat00004
개의 불일치(mismatch)를 허용하여
Figure 112019135591233-pat00005
시간에 P와 순위동형인 T의 모든 부분문자열을 찾는 문제를 해결하였다.
본 발명이 이루고자 하는 기술적 과제는 분할순위패턴매칭 문제를 정의하고 이를 해결하는 단순한 알고리즘인 알고리즘1과 개선된 알고리즘인 알고리즘2를 제안한다. 알고리즘1은
Figure 112019135591233-pat00006
시간에 분할순위패턴매칭 문제를 해결하고, 알고리즘2는 분할순위동형의 특성을 이용하여
Figure 112019135591233-pat00007
시간에 문제를 해결한다.
일 측면에 있어서, 본 발명에서 제안하는 분할순위패턴매칭 알고리즘은 길이가 각각 n, m인 텍스트 T와 패턴 P에 대하여, 패턴 P를 길이가 t인 문자열
Figure 112019135591233-pat00008
과 길이가 m - t인 문자열
Figure 112019135591233-pat00009
로 나누는 단계,
Figure 112019135591233-pat00010
Figure 112019135591233-pat00011
에 대한 위치테이블
Figure 112019135591233-pat00012
,
Figure 112019135591233-pat00013
,
Figure 112019135591233-pat00014
,
Figure 112019135591233-pat00015
를 각각 생성하는 단계 및
Figure 112019135591233-pat00016
개의 하위단계(substep)에서 탐색을 수행하는 단계를 포함한다.
Figure 112019135591233-pat00017
개의 하위단계에서 탐색을 수행하는 단계는
Figure 112019135591233-pat00018
번째 하위단계에서 생성된 위치테이블들을 이용하여 텍스트
Figure 112019135591233-pat00019
Figure 112019135591233-pat00020
가 서로에 관하여 순위동형인지 확인하고,
Figure 112019135591233-pat00021
Figure 112019135591233-pat00022
가 서로에 관하여 순위동형인지 확인한다.
Figure 112019135591233-pat00023
Figure 112019135591233-pat00024
가 서로에 관하여 순위동형이고,
Figure 112019135591233-pat00025
Figure 112019135591233-pat00026
가 서로에 관하여 순위동형일 경우, (i, t )를 출력한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 분할순위패턴매칭 알고리즘은 길이가 각각 n, m인 텍스트 T와 패턴 P에 대하여, 패턴 P에 대한 위치테이블
Figure 112019135591233-pat00027
,
Figure 112019135591233-pat00028
,
Figure 112019135591233-pat00029
,
Figure 112019135591233-pat00030
를 계산하는 단계 및
Figure 112019135591233-pat00031
개의 하위단계(substep)에서 탐색을 수행하는 단계를 포함한다.
Figure 112019135591233-pat00032
개의 하위단계에서 탐색을 수행하는 단계는
Figure 112019135591233-pat00033
번째 하위단계에서
Figure 112019135591233-pat00034
,
Figure 112019135591233-pat00035
를 이용하여 텍스트
Figure 112019135591233-pat00036
Figure 112019135591233-pat00037
가 서로에 관하여 순위동형을 만족하는
Figure 112019135591233-pat00038
의 최댓값
Figure 112019135591233-pat00039
를 찾고,
Figure 112019135591233-pat00040
,
Figure 112019135591233-pat00041
를 이용하여 텍스트
Figure 112019135591233-pat00042
Figure 112019135591233-pat00043
가 서로에 관하여 순위동형을 만족하는
Figure 112019135591233-pat00044
의 최솟값
Figure 112019135591233-pat00045
을 찾는다.
Figure 112019135591233-pat00046
일 경우, 분할순위동형이 발생한 위치 i와 패턴 P에서 분할이 일어난 위치
Figure 112019135591233-pat00047
를 출력한다.
본 발명의 실시예들에 따르면 분할순위패턴매칭 문제를 정의하고 이를 해결하는 단순한 알고리즘인 알고리즘1과 개선된 알고리즘인 알고리즘2를 제안한다. 알고리즘1은
Figure 112019135591233-pat00048
시간에 분할순위패턴매칭 문제를 해결하고, 알고리즘2는 분할순위동형의 특성을 이용하여
Figure 112019135591233-pat00049
시간에 문제를 해결할 수 있다.
도 1은 본 발명의 일 실시예에 따른 분할순위패턴매칭을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 알고리즘1을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 알고리즘2를 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 알고리즘2의 3단계를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 알고리즘1 및 알고리즘2을 나타내는 도면이다.
본 발명에서는 분할순위패턴매칭 문제를 정의하고 이를 해결하는 단순한 알고리즘인 알고리즘1과 개선된 알고리즘인 알고리즘2를 제안한다. 알고리즘1은
Figure 112019135591233-pat00050
시간에 분할순위패턴매칭 문제를 해결하고, 알고리즘2는 분할순위동형의 특성을 이용하여
Figure 112019135591233-pat00051
시간에 문제를 해결하였다. 또한 4종류의 시계열 데이터를 이용한 실험결과를 제시한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
Figure 112019135591233-pat00052
는 정수문자로 이루어진 집합이다.
Figure 112019135591233-pat00053
로 구성된 길이가 m인 문자열들의 집합을
Figure 112019135591233-pat00054
으로 표기한다. 문자열 x의 길이는
Figure 112019135591233-pat00055
로 나타내고, x
Figure 112019135591233-pat00056
번째 문자는
Figure 112019135591233-pat00057
로 표기한다. xi번째부터
Figure 112019135591233-pat00058
번째까지의 부분문자열은
Figure 112019135591233-pat00059
로 표기한다.
Figure 112019135591233-pat00060
에 대해
Figure 112019135591233-pat00061
이면
Figure 112019135591233-pat00062
는 공백문자열을 뜻한다.
두 문자열 x, y (
Figure 112019135591233-pat00063
)에 대해
Figure 112019135591233-pat00064
Figure 112019135591233-pat00065
이면 xy는 순위동형이라 하고
Figure 112019135591233-pat00066
로 표기한다. 두 문자열의 순위동형은 최근접이웃표현(nearest neighbor representation)을 이용한 위치테이블(location table)을 사용하여 판단할 수 있다[2]. 문자열 x 에 대한 위치테이블
Figure 112019135591233-pat00067
,
Figure 112019135591233-pat00068
는 다음과 같이 정의된다.
Figure 112019135591233-pat00069
Figure 112019135591233-pat00070
Figure 112019135591233-pat00071
에서
Figure 112019135591233-pat00072
보다 작거나 같은 값 중 최댓값의 위치
Figure 112019135591233-pat00073
이고,
Figure 112019135591233-pat00074
Figure 112019135591233-pat00075
에서
Figure 112019135591233-pat00076
보다 크거나 같은 값 중 최솟값의 위치 j이다. 만약 그러한 j가 2개 이상이면, 이 중 가장 큰 j를 저장하고, 그러한 j가 없다면 -1을 저장한다. 문자열 x, y (
Figure 112019135591233-pat00077
)와 위치테이블
Figure 112019135591233-pat00078
,
Figure 112019135591233-pat00079
가 주어졌을 때, P를 조건
Figure 112019135591233-pat00080
, q를 조건
Figure 112019135591233-pat00081
라 하자. 모든
Figure 112019135591233-pat00082
에 대해
Figure 112019135591233-pat00083
를 만족하면,
Figure 112019135591233-pat00084
이다[3]. 위치테이블
Figure 112019135591233-pat00085
,
Figure 112019135591233-pat00086
는 정렬알고리즘을 이용하여
Figure 112019135591233-pat00087
시간에 계산할 수 있고, 이를 이용하여 xy 의 순위동형 여부를
Figure 112019135591233-pat00088
시간에 확인할 수 있다[3]. 표 1은 문자열 x = (21, 69, 63, 57, 59, 67)에 대한 위치테이블
Figure 112019135591233-pat00089
,
Figure 112019135591233-pat00090
를 보여준다.
<표 1>
Figure 112019135591233-pat00091
도 1은 본 발명의 일 실시예에 따른 분할순위패턴매칭을 설명하기 위한 도면이다.
문자열 x, y (
Figure 112019135591233-pat00092
)에서 임의의 자연수
Figure 112019135591233-pat00093
에 대하여
Figure 112019135591233-pat00094
,
Figure 112019135591233-pat00095
이면 xyt에 대해 분할순위동형이라 하고
Figure 112019135591233-pat00096
로 표기한다.
정의 1. 분할순위패턴매칭 문제
입력: 텍스트
Figure 112019135591233-pat00097
, 패턴
Figure 112019135591233-pat00098
출력:
Figure 112019135591233-pat00099
인 모든 T의 위치
Figure 112019135591233-pat00100
와 위치 i에 대응되는 t의 값의 쌍 (i, t)
예를 들어, T = (68, 66, 13, 16, 27, 53, 20, 37, 61, 30, 55, 52, 32, 10, 41)와 P = (12, 38, 54, 34, 22, 56, 20, 50)가 주어질 때,
Figure 112019135591233-pat00101
이고
Figure 112019135591233-pat00102
이므로
Figure 112019135591233-pat00103
이다. 따라서 (3, 4)를 출력한다(도 1 참조).
본 발명에서는 분할순위패턴매칭 문제를 해결하는 두 가지 알고리즘을 제시한다. 먼저 위치테이블을 활용한 단순한 알고리즘인 알고리즘1을 제시하고 이를 개선한 알고리즘인 알고리즘2를 제시한다.
도 2는 본 발명의 일 실시예에 따른 알고리즘1을 설명하기 위한 흐름도이다.
알고리즘1은 총 m단계로 구성된다.
Figure 112019135591233-pat00104
단계에서 패턴 P는 길이가 t인 문자열
Figure 112019135591233-pat00105
과 길이가 m - t인 문자열
Figure 112019135591233-pat00106
로 나누어지고(210),
Figure 112019135591233-pat00107
Figure 112019135591233-pat00108
에 대한 위치테이블
Figure 112019135591233-pat00109
,
Figure 112019135591233-pat00110
,
Figure 112019135591233-pat00111
,
Figure 112019135591233-pat00112
를 각각 생성한다(220). 이후
Figure 112019135591233-pat00113
개의 하위단계(substep)에서 탐색을 수행한다(230).
Figure 112019135591233-pat00114
번째 하위단계에서는 생성된 위치테이블들을 이용하여
Figure 112019135591233-pat00115
이고
Figure 112019135591233-pat00116
인지 확인한다. 만약
Figure 112019135591233-pat00117
이고
Figure 112019135591233-pat00118
라면 (i, t )를 출력한다(Algorithm ALG1 참조). 알고리즘1의 복잡도는 다음과 같다. t단계에서 위치테이블
Figure 112019135591233-pat00119
,
Figure 112019135591233-pat00120
,
Figure 112019135591233-pat00121
,
Figure 112019135591233-pat00122
Figure 112019135591233-pat00123
시간에
Figure 112019135591233-pat00124
공간을 이용하여 계산할 수 있다. 탐색은 모든 하위단계 i에서
Figure 112019135591233-pat00125
Figure 112019135591233-pat00126
를 확인하므로
Figure 112019135591233-pat00127
시간에 수행된다. t단계가
Figure 112019135591233-pat00128
시간에 수행되므로 알고리즘1은
Figure 112019135591233-pat00129
시간에
Figure 112019135591233-pat00130
공간을 이용하여 수행된다.
도 3은 본 발명의 일 실시예에 따른 알고리즘2를 설명하기 위한 흐름도이다.
알고리즘2는 분할순위동형이 발생하는 조건의 특성을 이용하여 문제를 해결한다. 이를 위해 먼저 기존의 위치테이블을 확장하여
Figure 112019135591233-pat00131
,
Figure 112019135591233-pat00132
를 정의하고, 이를 이용하여 알고리즘1의 시간복잡도를
Figure 112019135591233-pat00133
으로 개선한다.
Figure 112019135591233-pat00134
,
Figure 112019135591233-pat00135
는 다음과 같이 정의된다(표 1 참조).
Figure 112019135591233-pat00136
Figure 112019135591233-pat00137
Figure 112019135591233-pat00138
에서
Figure 112019135591233-pat00139
보다 작거나 같은 값 중 최댓값의 위치
Figure 112019135591233-pat00140
이고,
Figure 112019135591233-pat00141
Figure 112019135591233-pat00142
에서
Figure 112019135591233-pat00143
보다 크거나 같은 값 중 최솟값의 위치 j이다. 만약 그러한 j가 2개 이상이면, 이 중 가장 작은 j를 저장하고, 그러한 j가 없다면 -1을 저장한다. 위치테이블
Figure 112019135591233-pat00144
,
Figure 112019135591233-pat00145
가 주어졌을 때,
Figure 112019135591233-pat00146
을 조건
Figure 112019135591233-pat00147
,
Figure 112019135591233-pat00148
을 조건
Figure 112019135591233-pat00149
라고 하자. 모든
Figure 112019135591233-pat00150
에 대해
Figure 112019135591233-pat00151
을 만족하면,
Figure 112019135591233-pat00152
임을 알 수 있다.
Figure 112019135591233-pat00153
,
Figure 112019135591233-pat00154
는 정렬알고리즘을 이용하여
Figure 112019135591233-pat00155
시간에 계산할 수 있고, 이를 이용하여 xy의 순위동형 여부를
Figure 112019135591233-pat00156
시간에 확인할 수 있다.
보조정리 1
문자열 x, y(
Figure 112019135591233-pat00157
)에 대하여
Figure 112019135591233-pat00158
이면
Figure 112019135591233-pat00159
이고,
Figure 112019135591233-pat00160
이면
Figure 112019135591233-pat00161
이다. 단,
Figure 112019135591233-pat00162
,
Figure 112019135591233-pat00163
. 이는, 순위동형의 정의에 의해 쉽게 증명할 수 있다.
보조정리 2
문자열 x, y(
Figure 112019135591233-pat00164
)에 대하여
Figure 112019135591233-pat00165
을 만족하는
Figure 112019135591233-pat00166
Figure 112019135591233-pat00167
을 만족하는
Figure 112019135591233-pat00168
에 대하여 가능한
Figure 112019135591233-pat00169
값들 중 최댓값을
Figure 112019135591233-pat00170
, 가능한 r값들 중 최솟값을
Figure 112019135591233-pat00171
이라 하자. 이 때, 조건
Figure 112019135591233-pat00172
이면
Figure 112019135591233-pat00173
이다.
임의의 자연수
Figure 112019135591233-pat00174
에 대하여 보조정리 1을 이용하면
Figure 112019135591233-pat00175
,
Figure 112019135591233-pat00176
, ...
Figure 112019135591233-pat00177
이므로
Figure 112019135591233-pat00178
이 성립한다. 마찬가지로 보조정리 1을 이용하면
Figure 112019135591233-pat00179
, ...
Figure 112019135591233-pat00180
이므로
Figure 112019135591233-pat00181
이 성립한다. 따라서
Figure 112019135591233-pat00182
면서
Figure 112019135591233-pat00183
을 만족하는
Figure 112019135591233-pat00184
가 존재하므로 분할순위동형의 정의에 의해,
Figure 112019135591233-pat00185
Figure 112019135591233-pat00186
이 성립한다.
알고리즘2는 다음과 같이 수행된다. 먼저 패턴 P에 대한 위치테이블
Figure 112019135591233-pat00187
,
Figure 112019135591233-pat00188
,
Figure 112019135591233-pat00189
,
Figure 112019135591233-pat00190
를 계산한다(310). 이후 n - m + 1개의 단계에서 탐색을 수행한다(320).
Figure 112019135591233-pat00191
번째 단계에서는
Figure 112019135591233-pat00192
,
Figure 112019135591233-pat00193
를 이용하여
Figure 112019135591233-pat00194
을 만족하는
Figure 112019135591233-pat00195
의 최댓값
Figure 112019135591233-pat00196
를 찾고,
Figure 112019135591233-pat00197
,
Figure 112019135591233-pat00198
를 이용하여
Figure 112019135591233-pat00199
을 만족하는
Figure 112019135591233-pat00200
의 최솟값
Figure 112019135591233-pat00201
을 찾는다.
도 4는 본 발명의 일 실시예에 따른 알고리즘2의 3단계를 설명하기 위한 도면이다.
보조정리 2에 따라 만약
Figure 112019135591233-pat00202
이라면, 분할순위동형이 발생한 위치 iP에서 분할이 일어난 위치
Figure 112019135591233-pat00203
를 출력한다(Algorithm ALG2 참조). 예를 들어, 도 4와 같이 알고리즘2의 3단계는 위치테이블들을 이용하여
Figure 112019135591233-pat00204
임을 찾고 (3,3), (3,4), (3,5)를 출력한다.
알고리즘2의 복잡도는 다음과 같다. 위치테이블
Figure 112019135591233-pat00205
,
Figure 112019135591233-pat00206
,
Figure 112019135591233-pat00207
,
Figure 112019135591233-pat00208
Figure 112019135591233-pat00209
시간에
Figure 112019135591233-pat00210
공간을 이용하여 계산할 수 있다. i단계에서 위치테이블을 이용하여
Figure 112019135591233-pat00211
Figure 112019135591233-pat00212
Figure 112019135591233-pat00213
시간에 계산할 수 있으므로 모든 단계 i에 대해
Figure 112019135591233-pat00214
Figure 112019135591233-pat00215
계산은
Figure 112019135591233-pat00216
시간에 수행된다. 따라서 분할순위패턴매칭 문제는 알고리즘2에 의해
Figure 112019135591233-pat00217
시간에
Figure 112019135591233-pat00218
공간을 이용하여 해결할 수 있다.
도 5는 본 발명의 일 실시예에 따른 알고리즘1 및 알고리즘2을 나타내는 도면이다.
실험환경은 다음과 같다. OS는 Windows 10(64bit), CPU는 Intel Core i7-4790(3.6GHz), RAM은 8GB의 크기를, 개발 툴은 Visual Studio 2015, 개발 언어는 C++을 사용하였다.
무작위로 생성한 정수형 문자열과 실제 시계열 데이터를 이용하여 두 알고리즘의 수행시간을 비교하였다. 무작위로 생성한 문자열의 경우
Figure 112019135591233-pat00219
에 대해 C++의 rand() 함수를 이용하여
Figure 112019135591233-pat00220
를 생성하였다. 실제 데이터의 경우, 다우존스지수, 미세먼지수치, 전력소비지수를 이용하였다. 다우존스지수 데이터는 1885년 5월 2일부터 2019년 4월 12일까지의 다우존스산업평균지수의 일별 종가를 이용하여 T(n
Figure 112019135591233-pat00221
36,000)를 생성하였다. 미세먼지 수치는 2010년 1월 2일 00시부터 2014년 10월 9일 22시까지의 베이징의 미세먼지수치를 1시간 간격으로 기록한 데이터를 이용하여 T(n
Figure 112019135591233-pat00222
40,000)를 생성하였다. 전력소비지수는 2006년 12월 16일 17:24부터 2008년 12월 2일 22:00까지 프랑스 쏘(Sceaux)에 위치한 집에서 소비전력 데이터 중 분당평균전압을 측정한 데이터를 이용하여 T(n
Figure 112019135591233-pat00223
106)를 생성하였다. 편의상, 무작위로 생성한 데이터를 RAND, 다우존스지수 데이터를 DJIA, 미세먼지수치 데이터를 PM2.5, 전력소비지수 데이터를 VOLT로 표기하였다. 패턴 PT에서 추출하였으며, 각 알고리즘의 수행시간은 1,000회 실험의 평균수행시간이다.
표 2는 4가지 데이터에 대해 ALG1, ALG2의 m에 따른 수행시간을 보여준다.
<표 2>
Figure 112019135591233-pat00224
실험은 [4]와 같이 m = {5, 10, 15, 20} 에 대하여 진행하였다. 실험 결과 ALG2는 ALG1보다 m = 5일 때 약 1.36배, m = 10일 때 약 3.98배, m = 15일 때 약 5.81배, m = 20일 때 약 7.68배 빠르게 수행되었다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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] 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.
[4] S. Cho, J. Na, K. Park, J. Sim, "A fast algorithm for order-preserving pattern matching," Information Processing Letters, Vol. 115, pp. 397-402, 2015.
[5] R. N. Horspool, "Practical fast searching in strings," Software: Practice and Experience, Vol. 10, No. 6, pp. 501-506, 1980.
[6] P. Bose, F. Buss, A. Lubiw, "Pattern matching for permutations," Information Processing Letters, Vol. 65, pp. 277-283, 1996.
[7] P. Gawrychowski, P. Uznanski, "Order-preserving pattern matching with k mismatches,"Theoretical Computer Science, Vol. 638, pp. 136-144, 2016.

Claims (6)

  1. 길이가 각각 n, m인 텍스트 T와 패턴 P에 대하여,
    패턴 P를 길이가 t인 문자열
    Figure 112019135591233-pat00225
    과 길이가 m - t인 문자열
    Figure 112019135591233-pat00226
    로 나누는 단계;
    Figure 112019135591233-pat00227
    Figure 112019135591233-pat00228
    에 대한 위치테이블
    Figure 112019135591233-pat00229
    ,
    Figure 112019135591233-pat00230
    ,
    Figure 112019135591233-pat00231
    ,
    Figure 112019135591233-pat00232
    를 각각 생성하는 단계; 및
    Figure 112019135591233-pat00233
    개의 하위단계(substep)에서 탐색을 수행하는 단계
    를 포함하는 분할순위패턴매칭 방법.
  2. 제1항에 있어서,
    Figure 112019135591233-pat00234
    개의 하위단계에서 탐색을 수행하는 단계는,
    Figure 112019135591233-pat00235
    번째 하위단계에서 생성된 위치테이블들을 이용하여 텍스트
    Figure 112019135591233-pat00236
    Figure 112019135591233-pat00237
    가 서로에 관하여 순위동형인지 확인하고,
    Figure 112019135591233-pat00238
    Figure 112019135591233-pat00239
    가 서로에 관하여 순위동형인지 확인하는
    분할순위패턴매칭 방법.
  3. 제2항에 있어서,
    Figure 112019135591233-pat00240
    Figure 112019135591233-pat00241
    가 서로에 관하여 순위동형이고,
    Figure 112019135591233-pat00242
    Figure 112019135591233-pat00243
    가 서로에 관하여 순위동형일 경우, (i, t )를 출력하는
    분할순위패턴매칭 방법.
  4. 길이가 각각 n, m인 텍스트 T와 패턴 P에 대하여,
    패턴 P에 대한 위치테이블
    Figure 112019135591233-pat00244
    ,
    Figure 112019135591233-pat00245
    ,
    Figure 112019135591233-pat00246
    ,
    Figure 112019135591233-pat00247
    를 계산하는 단계; 및
    Figure 112019135591233-pat00248
    개의 하위단계(substep)에서 탐색을 수행하는 단계
    를 포함하는 분할순위패턴매칭 방법.
  5. 제4항에 있어서,
    Figure 112019135591233-pat00249
    개의 하위단계에서 탐색을 수행하는 단계는,
    Figure 112019135591233-pat00250
    번째 하위단계에서
    Figure 112019135591233-pat00251
    ,
    Figure 112019135591233-pat00252
    를 이용하여 텍스트
    Figure 112019135591233-pat00253
    Figure 112019135591233-pat00254
    가 서로에 관하여 순위동형을 만족하는
    Figure 112019135591233-pat00255
    의 최댓값
    Figure 112019135591233-pat00256
    를 찾고,
    Figure 112019135591233-pat00257
    ,
    Figure 112019135591233-pat00258
    를 이용하여 텍스트
    Figure 112019135591233-pat00259
    Figure 112019135591233-pat00260
    가 서로에 관하여 순위동형을 만족하는
    Figure 112019135591233-pat00261
    의 최솟값
    Figure 112019135591233-pat00262
    을 찾는
    분할순위패턴매칭 방법.
  6. 제5항에 있어서,
    Figure 112019135591233-pat00263
    일 경우, 분할순위동형이 발생한 위치 i와 패턴 P에서 분할이 일어난 위치
    Figure 112019135591233-pat00264
    를 출력하는
    분할순위패턴매칭 방법.
KR1020190178103A 2019-12-30 2019-12-30 분할순위패턴매칭 알고리즘 KR102233217B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190178103A KR102233217B1 (ko) 2019-12-30 2019-12-30 분할순위패턴매칭 알고리즘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190178103A KR102233217B1 (ko) 2019-12-30 2019-12-30 분할순위패턴매칭 알고리즘

Publications (1)

Publication Number Publication Date
KR102233217B1 true KR102233217B1 (ko) 2021-03-29

Family

ID=75249810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190178103A KR102233217B1 (ko) 2019-12-30 2019-12-30 분할순위패턴매칭 알고리즘

Country Status (1)

Country Link
KR (1) KR102233217B1 (ko)

Citations (1)

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

Patent Citations (1)

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

Similar Documents

Publication Publication Date Title
US11693839B2 (en) Parser for schema-free data exchange format
US11048839B2 (en) Adaptive error correction in quantum computing
JP5950285B2 (ja) 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム
US11372929B2 (en) Sorting an array consisting of a large number of elements
EP3221822B1 (en) Method for efficient implementation of diagonal operators over clifford+t basis
Moosa et al. Indexing permutations for binary strings
US20190149419A1 (en) Information processing device and information processing method
Franke et al. Parallel Privacy-preserving Record Linkage using LSH-based Blocking.
KR101662957B1 (ko) 해싱기반의 순위다중패턴매칭 방법
Chen et al. Graph unfolding networks
KR102233217B1 (ko) 분할순위패턴매칭 알고리즘
US20160350384A1 (en) Mining Relevant Approximate Subgraphs from Multigraphs
JP6773115B2 (ja) 類似データ検索装置、類似データ検索方法および記録媒体
US9244783B2 (en) Automated circuit triplication method and system
Ziegeler et al. In situ analysis as a parallel i/o problem
US11281688B2 (en) Ranking and de-ranking data strings
JP6005583B2 (ja) 検索装置、検索方法および検索プログラム
KR101769247B1 (ko) 계층적 인터벌 트리를 이용한 문자열 비교 방법 및 장치
JP6714142B2 (ja) 攻撃パターン抽出装置、攻撃パターン抽出方法および攻撃パターン抽出プログラム
KR102288282B1 (ko) 이진인코딩을 이용한 호스풀 알고리즘 기반 순위패턴매칭 방법 및 장치
Liu A Metastudy of Algorithm Lower Bounds
KR101626721B1 (ko) 사각망 순열패턴매칭을 위한 효율적인 알고리즘
KR102158317B1 (ko) 2차 q-그램에 대한 핑거프린트를 이용한 순위패턴매칭 알고리즘
Ito et al. Fast clustering of hypergraphs based on bipartite-edge restoration and node reachability
Bai et al. A transitive aligned Weisfeiler-Lehman subtree kernel

Legal Events

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