KR101893661B1 - A METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS - Google Patents

A METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS Download PDF

Info

Publication number
KR101893661B1
KR101893661B1 KR1020160166451A KR20160166451A KR101893661B1 KR 101893661 B1 KR101893661 B1 KR 101893661B1 KR 1020160166451 A KR1020160166451 A KR 1020160166451A KR 20160166451 A KR20160166451 A KR 20160166451A KR 101893661 B1 KR101893661 B1 KR 101893661B1
Authority
KR
South Korea
Prior art keywords
approximate
length
cycle
string
period
Prior art date
Application number
KR1020160166451A
Other languages
Korean (ko)
Other versions
KR20180065496A (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 KR1020160166451A priority Critical patent/KR101893661B1/en
Publication of KR20180065496A publication Critical patent/KR20180065496A/en
Application granted granted Critical
Publication of KR101893661B1 publication Critical patent/KR101893661B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Landscapes

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

Abstract

정수문자집합에 대한 문자열의

Figure 112016120341046-pat00303
-근사주기와
Figure 112016120341046-pat00304
-근사주기 계산 방법이 개시된다. 일 실시예에 따른 근사주기 계산 방법은, 정수문자로 구성된 길이가 n인 문자열(T)에 대하여, 길이가 n/2인 배열을 생성하는 단계; 상기 길이가 m
Figure 112016120341046-pat00305
인 문자열(T)의
Figure 112016120341046-pat00306
-근사주기 또는
Figure 112016120341046-pat00307
-근사주기를 계산하는 단계; 및 상기
Figure 112016120341046-pat00308
-근사주기 또는
Figure 112016120341046-pat00309
-근사주기와 관련된 문자열(P)을 획득하는 단계를 포함할 수 있다. String of integers for the character set
Figure 112016120341046-pat00303
- Approximate cycles and
Figure 112016120341046-pat00304
- Approximation period calculation method is disclosed. The method of calculating an approximate period according to an exemplary embodiment includes: generating an array of length n / 2 for a string T having a length n composed of integer characters; If the length is m
Figure 112016120341046-pat00305
Of the character string (T)
Figure 112016120341046-pat00306
- Approximate cycle or
Figure 112016120341046-pat00307
Calculating an approximation period; And
Figure 112016120341046-pat00308
- Approximate cycle or
Figure 112016120341046-pat00309
- obtaining a string (P) associated with the approximation period.

Description

정수문자집합에 대한 문자열의 δ-근사주기와 γ-근사주기 계산 방법{A METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS}METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS}

아래의 설명은 정수문자집합에 대한 문자열의

Figure 112016120341046-pat00001
-근사주기와
Figure 112016120341046-pat00002
-근사주기를 계산하는 기술에 관한 것이다.
The description below is for a string of integers
Figure 112016120341046-pat00001
- Approximate cycles and
Figure 112016120341046-pat00002
- a technique for calculating approximate cycles.

반복적인 문자열에 대한 연구는 데이터압축, 생물정보학, 컴퓨터지원 음악분석 등 많은 분야에서 연구되어 왔다. 반복(Repetition)은 문자열 T가 주어졌을 때, 연속적으로 나타나는 T의 부분문자열을 말한다. 예를 들면, T=aababab라 하면, aa와 abababT의 반복이다. Research on repetitive strings has been studied in many fields such as data compression, bioinformatics, and computer-aided music analysis. Repeat (Repetition) when the string T is given, refers to the partial string of T appears successively. For example, if T = aababab , aa and ababab are T iterations.

이때,

Figure 112016120341046-pat00003
은 스퀘어(Square),
Figure 112016120341046-pat00004
은 큐브(Cube)라 부른다. 문자열 Pr번 반복적으로 연결시킨 문자열을 P r 이라 하자. 문자열 T가 주어졌을 때, r>0이고, P'P의 접두사(Prefix)일 때, T=P r P'를 만족하면, PT의 주기(Period)라 한다. 예를 들면, T=abcabcab의 주기는 abc, abcabc, T이다. 주기 중 가장 짧은 문자열을 최단 주기라 한다. 다시 말해서, abcT의 최단 주기이다. 만약 T
Figure 112016120341046-pat00005
인 주기 P가 존재하면, T는 주기적(Periodic)이라 한다. At this time,
Figure 112016120341046-pat00003
Square,
Figure 112016120341046-pat00004
Is called a cube. Let P r be a string of repeatedly connecting string P r times. When the string T is given, r> 0 and, when P 'is when the prefix (Prefix) of P, T = P r P' satisfies, should the P la period (Period) of T. For example, the period of T = abcabcab is abc, abcabc, T. The shortest period is called the shortest cycle. In other words, abc is the shortest period of T. If T
Figure 112016120341046-pat00005
If there is a period P, then T is called Periodic.

목적함수로 거리함수를 이용하여 거리반경 기반 문자열의 근사주기를 정의하고, 세 개의 문제를 제안하는 기술이 존재한다. 상기 기술은 두 문제에 대해 다항시간에 해결하는 알고리즘을 제시하고, 세 번째 문제에 대해 NP-완전임을 증명하였다.There are techniques to define the approximate cycle of the distance radius based string using the distance function as an objective function, and to propose three problems. The above technique presents an algorithm for solving the problem in polynomial time for both problems, and proved NP-complete for the third problem.

또 다른 기술에서는 거리합기반 문자열의 근사주기를 정의하고, 문자열 PX가 주어졌을 때, X에 대한 P의 최소 근사주기거리를 가중편집거리에 대해

Figure 112016120341046-pat00006
시간, 편집거리에 대해
Figure 112016120341046-pat00007
시간, 해밍거리에 대해
Figure 112016120341046-pat00008
시간에 계산하는 알고리즘을 제시하였다. Another technique is to define an approximate period of a distance sum based string, and when the strings P and X are given, the minimum approximate cycle distance of P to X is calculated for the weighted edit distance
Figure 112016120341046-pat00006
About time, edit distance
Figure 112016120341046-pat00007
Time, Hamming distance
Figure 112016120341046-pat00008
Time algorithm.

한편, 정수문자로 구성된 문자열에 대한 근사문자열매칭(Approximate String Matching)의 연구도 진행되고 있다. 예를 들면, 음의 높이인 음고(Pitch)는 MIDI 숫자들로 표현될 수 있고, 음과 음 사이의 음높이 차이인 음정(Pitch Interval)은 반음의 수로 표현될 수 있기 때문에 음악서열을 정수문자집합에 대한 문자열로 볼 수 있다. 이와 비슷하게 주가도 정수문자집합에 대한 문자열로 볼 수 있다. On the other hand, approximate string matching for a string composed of integer characters is also being studied. For example, the pitch of a pitch can be represented by MIDI numbers, and the pitch interval, which is the pitch difference between notes and notes, can be represented by a number of semitones, Can be seen as a string. Similarly, the stock price can also be viewed as a string of integer character sets.

더 나아가,

Figure 112016120341046-pat00009
-근사패턴매칭(Approximate Pattern Matching)과 (
Figure 112016120341046-pat00010
Figure 112016120341046-pat00011
)-근사패턴매칭,
Figure 112016120341046-pat00012
-근사스퀘어(Approximate Square)와 (
Figure 112016120341046-pat00013
Figure 112016120341046-pat00014
)-근사스퀘어를 찾는 문제를 정의하고 이를 해결하는 알고리즘,
Figure 112016120341046-pat00015
-근사반복(Approximate Repetition)과 (
Figure 112016120341046-pat00016
Figure 112016120341046-pat00017
)-근사반복에 관한 문제들을 정의하고 각 문제를 해결하는 알고리즘,
Figure 112016120341046-pat00018
-근사패턴매칭문제에 대해 Boyer-Moore 알고리즘 기반의 알고리즘, (
Figure 112016120341046-pat00019
Figure 112016120341046-pat00020
)-매칭과 관련된 새로운 문제들을 정의하고 이에 대해 FFT(Fast Fourier Transform)를 적용한 알고리즘 및 무관문자(Don't Care Symbol)를 포함한 (
Figure 112016120341046-pat00021
Figure 112016120341046-pat00022
)-매칭 문제를 연구하는 기술이 제안되어 왔다.
Furthermore,
Figure 112016120341046-pat00009
- Approximate Pattern Matching and (
Figure 112016120341046-pat00010
Figure 112016120341046-pat00011
) - approximate pattern matching,
Figure 112016120341046-pat00012
- Approximate Square and
Figure 112016120341046-pat00013
Figure 112016120341046-pat00014
) - Algorithms to define and solve problem finding approximate squares,
Figure 112016120341046-pat00015
- Approximate Repetition and (
Figure 112016120341046-pat00016
Figure 112016120341046-pat00017
) - Algorithms that define problems with approximate iterations and solve each problem,
Figure 112016120341046-pat00018
- Algorithm based on Boyer-Moore algorithm for approximate pattern matching problem, (
Figure 112016120341046-pat00019
Figure 112016120341046-pat00020
) - Defines new problems related to matching, and includes algorithms and FFT (Fast Fourier Transform) applied to them, including Do not Care Symbols
Figure 112016120341046-pat00021
Figure 112016120341046-pat00022
) - A technique for studying matching problems has been proposed.

본 발명은

Figure 112016120341046-pat00023
-근사와
Figure 112016120341046-pat00024
-근사를 이용하여 정수문자집합에 대한 문자열의
Figure 112016120341046-pat00025
-근사주기 및
Figure 112016120341046-pat00026
-근사주기를 정의한다. 또한, 본 발명은 최소
Figure 112016120341046-pat00027
-근사주기와 최소
Figure 112016120341046-pat00028
-근사주기를 탐색하는 문제를 정의하고, 이를 각각
Figure 112016120341046-pat00029
시간에 해결하는 알고리즘을 제공한다.
The present invention
Figure 112016120341046-pat00023
- Approximate
Figure 112016120341046-pat00024
- Use the approximation to convert a string to an integer character set.
Figure 112016120341046-pat00025
- Approximate cycles and
Figure 112016120341046-pat00026
- define the approximate cycle. In addition,
Figure 112016120341046-pat00027
- Approximate cycle and minimum
Figure 112016120341046-pat00028
- define the problem of searching approximate cycles, and
Figure 112016120341046-pat00029
Provides an algorithm to solve in time.

근사주기 계산 방법은, 정수문자로 구성된 길이가 n인 문자열(T)에 대하여, 길이가 n/2인 배열을 생성하는 단계; 상기 길이가 m

Figure 112016120341046-pat00030
인 문자열(T)의
Figure 112016120341046-pat00031
-근사주기 또는
Figure 112016120341046-pat00032
-근사주기를 계산하는 단계; 및 상기
Figure 112016120341046-pat00033
-근사주기 또는
Figure 112016120341046-pat00034
-근사주기와 관련된 문자열(P)을 획득하는 단계를 포함할 수 있다. The approximate period calculation method includes the steps of: generating an array of length n / 2 for a string T having a length n composed of integer characters; If the length is m
Figure 112016120341046-pat00030
Of the character string (T)
Figure 112016120341046-pat00031
- Approximate cycle or
Figure 112016120341046-pat00032
Calculating an approximation period; And
Figure 112016120341046-pat00033
- Approximate cycle or
Figure 112016120341046-pat00034
- obtaining a string (P) associated with the approximation period.

상기 문자열

Figure 112016120341046-pat00035
Figure 112016120341046-pat00036
가 주어졌을 때,
Figure 112016120341046-pat00037
에 대해
Figure 112016120341046-pat00038
i
Figure 112016120341046-pat00039
의 집합을 E j 라고 하면, 상기 j
Figure 112016120341046-pat00040
,
Figure 112016120341046-pat00041
에 대해
Figure 112016120341046-pat00042
이면, 상기 문자열(P)는 상기 문자열(T)에 대해 거리가 d인
Figure 112016120341046-pat00043
-근사주기이고, 상기
Figure 112016120341046-pat00044
,
Figure 112016120341046-pat00045
에 대해
Figure 112016120341046-pat00046
를 만족하면, 상기 문자열(P)는 상기 문자열(T)에 대해 거리가 d인
Figure 112016120341046-pat00047
-근사주기일 수 있다. The string
Figure 112016120341046-pat00035
Wow
Figure 112016120341046-pat00036
When given,
Figure 112016120341046-pat00037
About
Figure 112016120341046-pat00038
I
Figure 112016120341046-pat00039
Is denoted by E j , the set j
Figure 112016120341046-pat00040
,
Figure 112016120341046-pat00041
About
Figure 112016120341046-pat00042
, The character string (P) has a distance d to the character string (T)
Figure 112016120341046-pat00043
- an approximation period,
Figure 112016120341046-pat00044
,
Figure 112016120341046-pat00045
About
Figure 112016120341046-pat00046
, The character string (P) has a distance d with respect to the character string T
Figure 112016120341046-pat00047
- May be an approximate cycle.

상기 길이가 m

Figure 112016120341046-pat00048
인 문자열(T)의
Figure 112016120341046-pat00049
-근사주기 또는
Figure 112016120341046-pat00050
-근사주기를 계산하는 단계는, 상기 길이가 m
Figure 112016120341046-pat00051
인 문자열(T)의
Figure 112016120341046-pat00052
-근사주기들 중 최소
Figure 112016120341046-pat00053
-근사주기와 관련된 문자열(P)과 거리(d)를 계산하거나 상기 길이가 m
Figure 112016120341046-pat00054
인 문자열(T)의 -근사주기들 중 최소
Figure 112016120341046-pat00056
-근사주기와 관련된 문자열(P)과 거리(d)를 계산하는 단계를 포함하고, 상기 문자열(T)에 대한 최소
Figure 112016120341046-pat00057
-근사주기는, 상기 문자열(T)의
Figure 112016120341046-pat00058
-근사주기들 중 거리가 최소이고 가장 짧은 문자열을 의미하고, 상기 문자열(T)에 대한 최소
Figure 112016120341046-pat00059
-근사주기는, 상기 문자열(T)의
Figure 112016120341046-pat00060
-근사주기들 중 거리가 최소이고, 길이가 가장 짧은 문자열을 의미할 수 있다. If the length is m
Figure 112016120341046-pat00048
Of the character string (T)
Figure 112016120341046-pat00049
- Approximate cycle or
Figure 112016120341046-pat00050
Calculating an approximation period, wherein the length is m
Figure 112016120341046-pat00051
Of the character string (T)
Figure 112016120341046-pat00052
- minimum of approximate cycles
Figure 112016120341046-pat00053
- Calculate the string (P) and distance (d) associated with the approximation cycle or if the length is m
Figure 112016120341046-pat00054
Of the character string (T) - minimum of approximate cycles
Figure 112016120341046-pat00056
Calculating a string (P) and a distance (d) related to the approximation cycle,
Figure 112016120341046-pat00057
- the approximate cycle is a function of the (T)
Figure 112016120341046-pat00058
- means the shortest and shortest string of approximate periods,
Figure 112016120341046-pat00059
- the approximate cycle is a function of the (T)
Figure 112016120341046-pat00060
- It can mean a string with the shortest distance and the shortest length among the approximate cycles.

상기 길이가 m

Figure 112016120341046-pat00061
인 문자열(T)의
Figure 112016120341046-pat00062
-근사주기 또는
Figure 112016120341046-pat00063
-근사주기를 계산하는 단계는, 상기 문자열 T(|T|=n)를 길이 m으로 분할했을 때 생성되는 부분문자열들을 주기 블록이라 하고, 각
Figure 112016120341046-pat00064
Figure 112016120341046-pat00065
에서 시작하는 k번째 주기블록을 T k 라고 할 때, 상기
Figure 112016120341046-pat00066
-근사주기의 길이를 1부터 n/2까지 증가시켜가면서, ComputeDeltaAP 함수를 이용하여 상기 길이에 대한
Figure 112016120341046-pat00067
-근사주기를 계산하는 단계를 포함하고, 상기 ComputeDeltaAP 함수는 상기 문자열(T)와 근사주기의 길이 m이 주어지면,
Figure 112016120341046-pat00068
Figure 112016120341046-pat00069
들의 오차를 최소화하기 위해 최소값과 최대값의 산술평균을 이용하여 길이가 m일 때, 최소의 거리(
Figure 112016120341046-pat00070
)와
Figure 112016120341046-pat00071
-근사주기를 계산할 수 있다. If the length is m
Figure 112016120341046-pat00061
Of the character string (T)
Figure 112016120341046-pat00062
- Approximate cycle or
Figure 112016120341046-pat00063
- The step of calculating the approximate period comprises: calling the substrings generated when the string T (| T | = n) is divided by the length m ,
Figure 112016120341046-pat00064
Figure 112016120341046-pat00065
Th periodic block starting from < RTI ID = 0.0 & gt; k , < / RTI &
Figure 112016120341046-pat00066
- Increasing the length of the approximation period from 1 to n / 2, using the ComputeDeltaAP function,
Figure 112016120341046-pat00067
Computing the approximate period, wherein the ComputeDeltaAP function, when given a length m of the string (T) and an approximate period,
Figure 112016120341046-pat00068
Figure 112016120341046-pat00069
When the length is m using the arithmetic mean of the minimum value and the maximum value to minimize the error,
Figure 112016120341046-pat00070
)Wow
Figure 112016120341046-pat00071
- Approximate cycles can be calculated.

상기 길이가 m(1)인 문자열(T)의

Figure 112016120341046-pat00072
-근사주기 또는
Figure 112016120341046-pat00073
-근사주기를 계산하는 단계는, 상기 문자열 T(|T|=n)를 길이 m으로 분할했을 때 생성되는 부분문자열들을 주기 블록이라 하고, 각
Figure 112016120341046-pat00074
Figure 112016120341046-pat00075
에서 시작하는 k번째 주기블록을 T k 라고 할 때, 상기
Figure 112016120341046-pat00076
-근사주기의 길이를 1부터 n/2까지 증가시키면서, ComputeGammaAP 함수를 이용하여 상기 길이에 대한
Figure 112016120341046-pat00077
-근사주기를 계산하는 단계를 포함하고, 상기 ComputeGammaAP 함수는, 상기 문자열(T)와 근사주기의 길이 m이 주어지면,
Figure 112016120341046-pat00078
Figure 112016120341046-pat00079
들의 오차의 합을 최소화하기 위해 중앙값(Median)을 이용하여, 길이가 m일 때 최소의 거리(
Figure 112016120341046-pat00080
)와
Figure 112016120341046-pat00081
-근사주기를 계산할 수 있다. (T) having the length m (1)
Figure 112016120341046-pat00072
- Approximate cycle or
Figure 112016120341046-pat00073
- The step of calculating the approximate period comprises: calling the substrings generated when the string T (| T | = n) is divided by the length m ,
Figure 112016120341046-pat00074
Figure 112016120341046-pat00075
Th periodic block starting from < RTI ID = 0.0 & gt; k , < / RTI &
Figure 112016120341046-pat00076
- ComputeGammaAP function, increasing the length of the approximation period from 1 to n / 2,
Figure 112016120341046-pat00077
- computing the approximate period, the ComputeGammaAP function comprising: if given a length m of the string (T) and an approximate period,
Figure 112016120341046-pat00078
Figure 112016120341046-pat00079
(Median) is used to minimize the sum of the errors of the length (m) and the minimum distance
Figure 112016120341046-pat00080
)Wow
Figure 112016120341046-pat00081
- Approximate cycles can be calculated.

상기 중앙값은 t개의 정수들을 오름차순으로 정렬했을 때, t가 홀수일 때

Figure 112016120341046-pat00082
번째의 값, t가 짝수일 때 t/2 번째와 (t/2)+1번째 값의 산술평균일 수 있다.
The median may be expressed as t integers sorted in ascending order, when t is odd
Figure 112016120341046-pat00082
As the second value, t il even-t / 2 may be a second and (t / 2) + 1-th value of the arithmetic mean.

본 발명은 정수문자집합에 대한 문자열의

Figure 112016120341046-pat00083
-근사주기와
Figure 112016120341046-pat00084
-근사주기를 정의하고, 최소
Figure 112016120341046-pat00085
-근사주기와 최소
Figure 112016120341046-pat00086
-근사주기를 찾는 문제와 각 문제를 O(n2) 시간에 해결할 수 있다.The present invention relates to a method and apparatus for converting a character string
Figure 112016120341046-pat00083
- Approximate cycles and
Figure 112016120341046-pat00084
- define the approximate cycle,
Figure 112016120341046-pat00085
- Approximate cycle and minimum
Figure 112016120341046-pat00086
The problem of finding the approximate cycle and each problem can be solved in O (n 2 ) time.

본 발명은 주어진 문자열에 무관문자가 포함된 경우, 본 발명에서 제안하는 알고리즘을 이용하여 최소

Figure 112016120341046-pat00087
-근사주기와 최소
Figure 112016120341046-pat00088
-근사주기를 찾을 수 있다. In the present invention, when an unrelated character is included in a given character string,
Figure 112016120341046-pat00087
- Approximate cycle and minimum
Figure 112016120341046-pat00088
- Approximate cycles can be found.

또한, 본 발명은 정수로 표현된 문자열에 대한 (

Figure 112016120341046-pat00089
,
Figure 112016120341046-pat00090
)-매칭은 음악 서열이나 주가 연구에 응용될 수 있다. In addition, the present invention relates to a method and apparatus for
Figure 112016120341046-pat00089
,
Figure 112016120341046-pat00090
) - Matching can be applied to music sequence or stock price research.

또한, 본 발명은 실수로 구성된 문자열에 대해서도 보다 쉽게 적용할 수 있다.
Further, the present invention can be more easily applied to a string composed of a real number.

도 1은 일 실시예에 따른

Figure 112016120341046-pat00091
-근사주기를 계산하는 방법을 설명하기 위한 예이다.
도 2는 일 실시예에 따른
Figure 112016120341046-pat00092
-근사주기를 계산하는 방법을 설명하기 위한 예이다.
도 3은 일 실시예에 따른 길이가 m이고 거리 d가 최소인
Figure 112016120341046-pat00093
-근사주기를 계산하는 방법을 설명하기 위한 예이다.
도 4는 일 실시예에 따른 길이가 m이고 거리 d가 최소인
Figure 112016120341046-pat00094
-근사주기를 계산하는 방법을 설명하기 위한 예이다.
도 5는 일 실시예에 따른 최소
Figure 112016120341046-pat00095
-근사주기를 계산하는 방법을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 따른 최소
Figure 112016120341046-pat00096
-근사주기를 계산하는 방법을 설명하기 위한 흐름도이다. Figure 1 is a cross-
Figure 112016120341046-pat00091
- This is an example to explain how to calculate the approximate cycle.
Figure 2 is a block diagram
Figure 112016120341046-pat00092
- This is an example to explain how to calculate the approximate cycle.
FIG. 3 is a cross-sectional view of an embodiment in which the length is m and the distance d is minimum
Figure 112016120341046-pat00093
- This is an example to explain how to calculate the approximate cycle.
Figure 4 is a graphical representation of an embodiment of the present invention,
Figure 112016120341046-pat00094
- This is an example to explain how to calculate the approximate cycle.
Figure 5 is a block diagram
Figure 112016120341046-pat00095
- a flowchart for explaining how to calculate the approximate cycle;
Figure 6 is a block diagram
Figure 112016120341046-pat00096
- a flowchart for explaining how to calculate the approximate cycle;

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

유한한 문자집합 ∑의 문자들로 구성된 문자열들의 집합을 ∑*로 나타내며, 길이가 m인 문자열들의 집합을 ∑m으로 나타낸다. 문자열X의 길이는 |X|로 표기하며, X의 i번째

Figure 112016120341046-pat00097
문자는
Figure 112016120341046-pat00098
로 표기한다. X의 i번째 문자부터 j번째 문자까지의 부분문자열인
Figure 112016120341046-pat00099
Figure 112016120341046-pat00100
(
Figure 112016120341046-pat00101
)는 X[i..j]로 표기하고, X=WU이면, W를 X의 접두사, U를 X의 접미사(Suffix)라 한다. T[i..j]가 i>j이거나 T[0]일 때 공백 문자열로 정의하고 이를 로 표기한다. 무관문자는 자신을 포함한 모든 문자와 일치하는 문자이며, ★로 표기한다. 다시 말해서,
Figure 112016120341046-pat00102
일 때,
Figure 112016120341046-pat00103
이다.A set of strings consisting of characters of a finite character set Σ is denoted by Σ * , and a set of strings of length m is denoted by Σ m . The length of the string X is denoted by | X |, and the i th
Figure 112016120341046-pat00097
The letter
Figure 112016120341046-pat00098
. The substring from the i-th character to the j-th character of X
Figure 112016120341046-pat00099
Figure 112016120341046-pat00100
(
Figure 112016120341046-pat00101
) Is represented by X [i..j], and if X = WU, W is a prefix of X and U is a suffix of X. When T [i..j] is i> j or T [0], it is defined as an empty string and it is written as. An unindexed character is a character that matches all characters including itself, and is marked with a ★. In other words,
Figure 112016120341046-pat00102
when,
Figure 112016120341046-pat00103
to be.

문자열 X와 P, 거리함수 d가 주어졌을 때, 다양한 거리함수에 대한 근사주기를 다음과 같이 정의할 수 있다.

Figure 112016120341046-pat00104
이고 P'을 P의 접두사라고 할 때,
Figure 112016120341046-pat00105
이고,
Figure 112016120341046-pat00106
이면, P를 X의 t-근사주기 또는 거리가 t인 X의 근사주기라고 한다. 종래의 기술에 따르면, 다양한 거리함수 d, 다시 말해서, 해밍거리, 편집거리, 메트릭 가중편집거리에 대해 P가 X의 t-근사주기를 만족하는 최소 근사주기거리 t를 찾는 알고리즘이 제시되었다.Given the strings X and P and the distance function d, the approximate cycle for various distance functions can be defined as follows.
Figure 112016120341046-pat00104
And P 'is the prefix of P,
Figure 112016120341046-pat00105
ego,
Figure 112016120341046-pat00106
, P is called the t-approximation period of X or the approximate period of X whose distance is t. According to the conventional technique, an algorithm for finding the minimum approximate cycle distance t in which P satisfies the t-approximation period of X is proposed for various distance functions d , i.e., hamming distance, edit distance, and metric weighted edit distance.

정수문자집합 ∑의 두 문자 a, b와 정수

Figure 112016120341046-pat00107
가 주어졌을 때,
Figure 112016120341046-pat00108
이면, a와 b는
Figure 112016120341046-pat00109
-근사라 하고(역도 성립),
Figure 112016120341046-pat00110
문자열 X와 Y
Figure 112016120341046-pat00111
, 정수
Figure 112016120341046-pat00112
,
Figure 112016120341046-pat00113
가 주어졌을 때,
Figure 112016120341046-pat00114
Figure 112016120341046-pat00115
이면, X와 Y는
Figure 112016120341046-pat00116
-근사라고 하고(역도 성립),
Figure 112016120341046-pat00117
로 표기할 수 있다. The two characters a, b and integer in the integer character set Σ
Figure 112016120341046-pat00107
When given,
Figure 112016120341046-pat00108
If so, a and b are
Figure 112016120341046-pat00109
- It is called " muscle"
Figure 112016120341046-pat00110
The strings X and Y
Figure 112016120341046-pat00111
, essence
Figure 112016120341046-pat00112
,
Figure 112016120341046-pat00113
When given,
Figure 112016120341046-pat00114
Figure 112016120341046-pat00115
, Then X and Y are
Figure 112016120341046-pat00116
- It is called "approximation"
Figure 112016120341046-pat00117
.

만약,

Figure 112016120341046-pat00118
이면, X와 Y는
Figure 112016120341046-pat00119
-근사라 하고(역도 성립),
Figure 112016120341046-pat00120
로 표기한다. 만약, X와 Y가
Figure 112016120341046-pat00121
-근사이며 동시에
Figure 112016120341046-pat00122
-근사이면, X와 Y는 (
Figure 112016120341046-pat00123
,
Figure 112016120341046-pat00124
)-근사라 하고,
Figure 112016120341046-pat00125
로 표기한다. if,
Figure 112016120341046-pat00118
, Then X and Y are
Figure 112016120341046-pat00119
- It is called "muscle"
Figure 112016120341046-pat00120
. If X and Y are
Figure 112016120341046-pat00121
- At the same time,
Figure 112016120341046-pat00122
- if it is approximate, X and Y are (
Figure 112016120341046-pat00123
,
Figure 112016120341046-pat00124
) - It's called muscle,
Figure 112016120341046-pat00125
.

도 1은 일 실시예에 따른

Figure 112016120341046-pat00126
-근사주기를 계산하는 방법을 설명하기 위한 예이고, 도 2는 일 실시예에 따른
Figure 112016120341046-pat00127
-근사주기를 계산하는 방법을 설명하기 위한 예이다.Figure 1 is a cross-
Figure 112016120341046-pat00126
- an example for explaining a method of calculating the approximate period, and Fig. 2 is a graph
Figure 112016120341046-pat00127
- This is an example to explain how to calculate the approximate cycle.

문자열

Figure 112016120341046-pat00128
Figure 112016120341046-pat00129
가 주어졌을 때, 각
Figure 112016120341046-pat00130
에 대해
Figure 112016120341046-pat00131
인 i
Figure 112016120341046-pat00132
의 집합을 Ej라고 가정한다. 이때, 모든 j
Figure 112016120341046-pat00133
,
Figure 112016120341046-pat00134
에 대해
Figure 112016120341046-pat00135
이면, P는 T에 대해 거리가 d인
Figure 112016120341046-pat00136
-근사주기라고 정의한다. 또한, 모든
Figure 112016120341046-pat00137
,
Figure 112016120341046-pat00138
에 대해
Figure 112016120341046-pat00139
를 만족하면, P는 T에 대해 거리가 d인
Figure 112016120341046-pat00140
-근사주기라 정의한다. String
Figure 112016120341046-pat00128
Wow
Figure 112016120341046-pat00129
When given, each
Figure 112016120341046-pat00130
About
Figure 112016120341046-pat00131
I
Figure 112016120341046-pat00132
Is assumed to be E j . At this time, all j
Figure 112016120341046-pat00133
,
Figure 112016120341046-pat00134
About
Figure 112016120341046-pat00135
, P is the distance d to T
Figure 112016120341046-pat00136
- Define an approximation cycle. Also,
Figure 112016120341046-pat00137
,
Figure 112016120341046-pat00138
About
Figure 112016120341046-pat00139
, P is the distance d to T
Figure 112016120341046-pat00140
- It is defined as an approximate cycle.

도 1 및 도 2를 참고하면, 예를 들면, T=(17, 12, 21, 16, 14, 20, 23, 7, 25, 19, 15)가 주어질 수 있다. 이때, P=(17, 13, 20)은 T에 대해 거리가 6인

Figure 112016120341046-pat00141
-근사주기이며, P=(19, 11, 22)는 T에 대해 거리가 4인
Figure 112016120341046-pat00142
-근사주기이다. 1 and 2, for example, T = (17, 12, 21, 16, 14, 20, 23, 7, 25, 19, 15) can be given. At this time, P = (17, 13, 20)
Figure 112016120341046-pat00141
- the approximate cycle, and P = (19, 11, 22)
Figure 112016120341046-pat00142
- Approximate cycle.

또한, P=(19, 11, 22)는 T에 대해 거리가 27인

Figure 112016120341046-pat00143
-근사주기이며, P=(18, 13, 21)은 T에 대해 거리가 24인
Figure 112016120341046-pat00144
-근사주기이다. 문자열(T)만 주어졌을 때 문자열(T)에 대하여 복수의
Figure 112016120341046-pat00145
-근사주기 및
Figure 112016120341046-pat00146
-근사주기가 존재할 수 있다. 문자열(T)의
Figure 112016120341046-pat00147
-근사주기들 중 거리가 최소이고, 가장 짧은 문자열을 T에 대한 최소
Figure 112016120341046-pat00148
-근사주기라고 정의하며, T의
Figure 112016120341046-pat00149
-근사주기들 중 거리가 최소이고, 길이가 가장 짧은 문자열을 T에 대한 최소
Figure 112016120341046-pat00150
-근사주기라고 정의한다. Further, P = (19, 11, 22) has a distance of 27
Figure 112016120341046-pat00143
- the approximate cycle, and P = (18, 13, 21)
Figure 112016120341046-pat00144
- Approximate cycle. When a string (T) is given, a plurality of
Figure 112016120341046-pat00145
- Approximate cycles and
Figure 112016120341046-pat00146
- Approximate cycles may exist. Of the string (T)
Figure 112016120341046-pat00147
- the minimum distance between the approximate cycles and the shortest string to T
Figure 112016120341046-pat00148
- an approximation cycle, and T
Figure 112016120341046-pat00149
- the minimum distance between the approximate cycles and the shortest string to the minimum for T
Figure 112016120341046-pat00150
- Define an approximation cycle.

도 3은 일 실시예에 따른 길이가 m이고 거리 d가 최소인

Figure 112016120341046-pat00151
-근사주기를 계산하는 방법을 설명하기 위한 예이고, 도 4는 일 실시예에 따른 길이가 m이고 거리 d가 최소인
Figure 112016120341046-pat00152
-근사주기를 계산하는 방법을 설명하기 위한 예이다.FIG. 3 is a cross-sectional view of an embodiment in which the length is m and the distance d is minimum
Figure 112016120341046-pat00151
Fig. 4 is an example for explaining a method of calculating an approximate period, and Fig.
Figure 112016120341046-pat00152
- This is an example to explain how to calculate the approximate cycle.

아래의 설명에서는 문제 1 내지 4를 해결하는 알고리즘들을 제시할 수 있다. 단, 는 유한한 정수문자집합으로 가정한다. In the following description, algorithms for solving Problems 1 to 4 can be suggested. However, Σ is assumed to be a finite integer character set.

주어진 문자열 T(|T|=n)를 길이 m으로 분할했을 때 생성되는 부분문자열들을 주기 블록이라 하고, 각

Figure 112016120341046-pat00153
Figure 112016120341046-pat00154
에서 시작하는 k번째 주기블록을 T k 라고 하자.
Substrings generated when a given string T (| T | = n) is divided by a length m are called periodic blocks,
Figure 112016120341046-pat00153
Figure 112016120341046-pat00154
The k-th block period that begins on Let T k.

문제 1. 주어진

Figure 112016120341046-pat00155
의 최소
Figure 112016120341046-pat00156
-근사주기
Figure 112016120341046-pat00157
찾기.Problem 1. given
Figure 112016120341046-pat00155
Minimum of
Figure 112016120341046-pat00156
- approximate cycle
Figure 112016120341046-pat00157
find.

도 5를 참고하면, 최소

Figure 112016120341046-pat00158
-근사주기를 계산하는 방법을 설명하기 위한 흐름도로서, 단계(510 내지 530)을 수행할 수 있다. 이때, 근사주기 계산 시스템에 의하여 최소
Figure 112016120341046-pat00159
-근사주기가 계산될 수 있다. Referring to FIG. 5,
Figure 112016120341046-pat00158
As a flow chart for explaining the method of calculating the approximate cycle, steps 510 to 530 may be performed. At this time, by the approximate period calculation system,
Figure 112016120341046-pat00159
- Approximate cycles can be calculated.

단계(510)에서 근사주기 계산 시스템은 정수문자로 구성된 길이가 n인 문자열(T)에 대하여 길이가 n/2인 배열 각각을 생성할 수 있다. In step 510, the approximate period calculation system may generate each of the arrays of length n / 2 for a string T of length n consisting of integer characters.

단계(520)에서 근사주기 계산 시스템은 길이가 m

Figure 112016120341046-pat00160
인 문자열(T)의
Figure 112016120341046-pat00161
-근사주기들 중 최소
Figure 112016120341046-pat00162
-근사주기와 관련된 문자열(P)의 길이와 거리(d)를 계산할 수 있다. In step 520, the approximate period calculation system calculates the approximate period
Figure 112016120341046-pat00160
Of the character string (T)
Figure 112016120341046-pat00161
- minimum of approximate cycles
Figure 112016120341046-pat00162
The length and distance d of the string P related to the approximation cycle can be calculated.

단계(530)에서 근사주기 계산 시스템은 문자열(T)의 최소

Figure 112016120341046-pat00163
-근사주기와 관련된 문자열(P)를 획득할 수 있다. In step 530, the approximate period calculation system determines the minimum
Figure 112016120341046-pat00163
- obtain a string (P) related to the approximation period.

단계(510 내지 단계530)에 대한 설명은 아래의 설명을 통하여 더욱 상세하게 설명하기로 한다. The description of steps 510 to 530 will be described in more detail with reference to the following description.

문제 1은 알고리즘 1을 이용하여 해결할 수 있다. 알고리즘 1은

Figure 112016120341046-pat00164
-근사주기의 길이를 1부터 n/2까지 증가시켜가면서, ComputeDeltaAP 함수를 이용하여 상기 길이에 대한
Figure 112016120341046-pat00165
-근사주기를 계산한다. Problem 1 can be solved using Algorithm 1. Algorithm 1
Figure 112016120341046-pat00164
- Increasing the length of the approximation period from 1 to n / 2, using the ComputeDeltaAP function,
Figure 112016120341046-pat00165
- Calculate the approximate cycle.

Figure 112016120341046-pat00166

Figure 112016120341046-pat00166

Figure 112016120341046-pat00167
-근사주기의 각 문자
Figure 112016120341046-pat00168
를 계산하기 위해, ComputeDeltaAP 함수는 문자열(T)와 근사주기의 길이 m이 주어지면,
Figure 112016120341046-pat00169
Figure 112016120341046-pat00170
들의 오차를 최소화하기 위해 최소값과 최대값의 산술평균을 이용하여 길이가 m일 때, 최소의 거리(
Figure 112016120341046-pat00171
)와
Figure 112016120341046-pat00172
-근사주기를 계산한다.
Figure 112016120341046-pat00167
- Each character in the approximation cycle
Figure 112016120341046-pat00168
, The ComputeDeltaAP function returns the string T and the length m of the approximate period,
Figure 112016120341046-pat00169
Figure 112016120341046-pat00170
When the length is m using the arithmetic mean of the minimum value and the maximum value to minimize the error,
Figure 112016120341046-pat00171
)Wow
Figure 112016120341046-pat00172
- Calculate the approximate cycle.

구체적으로,

Figure 112016120341046-pat00173
에서
Figure 112016120341046-pat00174
(주기블록
Figure 112016120341046-pat00175
,
Figure 112016120341046-pat00176
,
Figure 112016120341046-pat00177
)로부터 최소값과 최대값을 각각 A[j], B[j]에 저장한다(1번째 줄부터 9번째 줄). 각 P[j]는 (A[j] + B[j])/2로,
Figure 112016120341046-pat00178
Figure 112016120341046-pat00179
로 계산될 수 있다(10번째 줄부터 12번째 줄). Specifically,
Figure 112016120341046-pat00173
in
Figure 112016120341046-pat00174
(Periodic block
Figure 112016120341046-pat00175
,
Figure 112016120341046-pat00176
,
Figure 112016120341046-pat00177
) Are stored in A [j] and B [j], respectively, from the 1st line to the 9th line. Each P [j] is (A [j] + B [j]) / 2,
Figure 112016120341046-pat00178
The
Figure 112016120341046-pat00179
(10th to 12th lines).

예를 들면, 도 3을 참고하면, T=(17, 12, 21, 16, 14, 20, 23, 7, 25, 19, 15)이고, m=3일 때, T1=(17, 12, 21), T2=(16, 14, 20), T3=(23, 7, 25), T4=(9, 15)이고, A=(16, 7, 20), B=(23, 15, 25) 이고,

Figure 112016120341046-pat00180
-근사주기 P=(19.5, 11, 22.5),
Figure 112016120341046-pat00181
=4가 된다. 알고리즘 1은 크기가 n/2인 배열 A, B, P를 할당하고, ComputeDeltaAP 함수를 이용하여 최소
Figure 112016120341046-pat00182
-근사주기의 거리(
Figure 112016120341046-pat00183
)와 길이(m')를 계산한다(6번째 줄부터 10번째 줄). m'이 계산됨에 따라 m'을 이용하여 최소
Figure 112016120341046-pat00184
-근사주기를 다시 계산한다(11번째 줄). 최소
Figure 112016120341046-pat00185
-근사주기는 정수문자로 구성되어야 하므로 각 문자 P[j]의 소수부분을 올림하거나 내림한 정수로 변환하여 출력한다. 이때, 정수 조건이 없으면 변환하지 않은 상태로 출력한다. 앞서 설명한 바와 같이, m'=3이며, 최소
Figure 112016120341046-pat00186
-근사주기는 정수 변환전(19.5, 11, 22.5)이며, 변환 후(19, 11 22), (20, 11, 22), (19, 11, 23), (20, 11, 23) 중 적어도 하나가 출력될 수 있다. 알고리즘 1은
Figure 112016120341046-pat00187
시간에 수행되는 ComputeDeltaAP함수를(n/2)+1번 호출하기 때문에
Figure 112016120341046-pat00188
시간에 수행될 수 있다.
For example, referring to Figure 3, wherein T = (17, 12, 21 , 16, 14, 20, 23, 7, 25, 19, 15), m = time 3 days, T 1 = (17, 12 , 21), T 2 = ( 16, 14, 20), T 3 = (23, 7, 25), T 4 = (9, 15) and, a = (16, 7, 20), B = (23 , 15, 25)
Figure 112016120341046-pat00180
- approximate cycle P = (19.5, 11, 22.5),
Figure 112016120341046-pat00181
= 4. Algorithm 1 allocates arrays A, B, and P with size n / 2, and computes the minimum
Figure 112016120341046-pat00182
- the distance of the approximate cycle (
Figure 112016120341046-pat00183
) And the length (m ') (from line 6 to line 10). As m 'is calculated, m'
Figure 112016120341046-pat00184
- Recalculate the approximate cycle (line 11). at least
Figure 112016120341046-pat00185
- Since the approximation cycle should consist of integer characters, convert the fractional part of each character P [j] to an integer that rounds up or down. At this time, if there is no integer condition, it is output without conversion. As described above, m '= 3 and minimum
Figure 112016120341046-pat00186
The approximation period is 19.5, 11, and 22.5 before the integer transformation, and at least (19, 11, 22), 20, 11, 22, 19, 11, 23, One can be output. Algorithm 1
Figure 112016120341046-pat00187
(N / 2) + 1 times the ComputeDeltaAP function performed at
Figure 112016120341046-pat00188
Lt; / RTI >

문제 2. 주어진

Figure 112016120341046-pat00189
의 최소
Figure 112016120341046-pat00190
-근사주기
Figure 112016120341046-pat00191
찾기.Problem 2. Given
Figure 112016120341046-pat00189
Minimum of
Figure 112016120341046-pat00190
- approximate cycle
Figure 112016120341046-pat00191
find.

도 6을 참고하면, 최소

Figure 112016120341046-pat00192
-근사주기를 계산하는 방법을 설명하기 위한 흐름도로서, 단계(610 내지 630)을 수행할 수 있다. 이때, 근사주기 계산 시스템에 의하여 최소
Figure 112016120341046-pat00193
-근사주기가 계산될 수 있다. Referring to FIG. 6,
Figure 112016120341046-pat00192
As a flow chart for explaining the method of calculating the approximate cycle, steps 610 to 630 may be performed. At this time, by the approximate period calculation system,
Figure 112016120341046-pat00193
- Approximate cycles can be calculated.

단계(610)에서 근사주기 계산 시스템은 정수문자로 구성된 길이가 n인 문자열(T)에 대하여 길이가 n/2인 배열을 생성할 수 있다. In step 610, the approximate period calculation system may generate an array of length n / 2 for a string T of length n consisting of integer characters.

단계(620)에서 근사주기 계산 시스템은 길이가 m

Figure 112016120341046-pat00194
인 문자열(T)의
Figure 112016120341046-pat00195
-근사주기들 중 최소
Figure 112016120341046-pat00196
-근사주기와 관련된 문자열(P)의 길이와 거리(d)를 계산할 수 있다. In step 620, the approximate period calculation system calculates the approximate period
Figure 112016120341046-pat00194
Of the character string (T)
Figure 112016120341046-pat00195
- minimum of approximate cycles
Figure 112016120341046-pat00196
The length and distance d of the string P related to the approximation cycle can be calculated.

단계(630)에서 근사주기 계산 시스템은 문자열(T)의 최소

Figure 112016120341046-pat00197
-근사주기와 관련된 문자열(P)를 획득할 수 있다. In step 630, the approximate period calculation system determines the minimum
Figure 112016120341046-pat00197
- obtain a string (P) related to the approximation period.

단계(610 내지 단계630)에 대한 설명은 아래의 설명을 통하여 더욱 상세하게 설명하기로 한다. The description of steps 610 to 630 will be described in more detail with reference to the following description.

문제 2는 알고리즘 2를 이용하여 해결할 수 있다. 알고리즘 2는

Figure 112016120341046-pat00198
-근사주기의 길이를 1부터 n/2까지 증가시키면서, ComputeGammaAP 함수를 이용하여 상기 길이에 대한
Figure 112016120341046-pat00199
-근사주기를 계산할 수 있다. Problem 2 can be solved using Algorithm 2. Algorithm 2
Figure 112016120341046-pat00198
- ComputeGammaAP function, increasing the length of the approximation period from 1 to n / 2,
Figure 112016120341046-pat00199
- Approximate cycles can be calculated.

Figure 112016120341046-pat00200

Figure 112016120341046-pat00200

Figure 112016120341046-pat00201
-근사주기의 각 문자 P[i]
Figure 112016120341046-pat00202
를 계산하기 위하여, ComputeGammaAP 함수는 문자열(T)와 근사주기의 길이 m이 주어지면,
Figure 112016120341046-pat00203
Figure 112016120341046-pat00204
들의 오차의 합을 최소화하기 위해 중앙값(Median)을 이용하여, 길이가 m일 때 최소의 거리(
Figure 112016120341046-pat00205
)와
Figure 112016120341046-pat00206
-근사주기를 계산할 수 있다. 중앙값은 t개의 정수들을 오름차순으로 정렬했을 때, t가 홀수일 때는
Figure 112016120341046-pat00207
번째의 값, t가 짝수일 때는 t/2 번째와 (t/2)+1번째 값의 산술평균이다. t개의 실수들로 구성된 집합 S에 대해
Figure 112016120341046-pat00208
가 S의 중앙값이면,
Figure 112016120341046-pat00209
는 최소이다. 구체적으로 i
Figure 112016120341046-pat00210
에서 주기블록
Figure 112016120341046-pat00211
Figure 112016120341046-pat00212
들의 중앙값을 계산한다. 각 P[i]는 ComputeMedian 함수를 통해 계산되며(1번째 줄부터 2번째 줄),
Figure 112016120341046-pat00213
Figure 112016120341046-pat00214
으로 계산될 수 있다(3번째 줄). 예를 들면, 도 4를 참고하면, T=(17, 12, 21, 16, 14, 20, 23, 7, 25, 19, 15)이고 m=3일 때, P[1]은 (17, 16, 23, 19)의 중앙값인 18, P[2]는 (12, 14, 7, 15)의 중앙값인 13, P[3]은 (21, 20, 25)의 중앙값인 21이 된다. 이에 따라
Figure 112016120341046-pat00215
-근사주기 P=(18, 13, 21)이고,
Figure 112016120341046-pat00216
=24가 된다.
Figure 112016120341046-pat00201
- each letter P [ i ]
Figure 112016120341046-pat00202
, The ComputeGammaAP function returns the string T and the length m of the approximate period,
Figure 112016120341046-pat00203
Figure 112016120341046-pat00204
(Median) is used to minimize the sum of the errors of the length (m) and the minimum distance
Figure 112016120341046-pat00205
)Wow
Figure 112016120341046-pat00206
- Approximate cycles can be calculated. The median is the number of t integers sorted in ascending order, and when t is odd
Figure 112016120341046-pat00207
The second value, when t is an even number il t / 2-th and (t / 2) + 1-th value of the arithmetic mean. For set S consisting of t real numbers
Figure 112016120341046-pat00208
Is a median value of S,
Figure 112016120341046-pat00209
Is minimal. Specifically, i
Figure 112016120341046-pat00210
In the periodic block
Figure 112016120341046-pat00211
Figure 112016120341046-pat00212
Lt; / RTI > Each P [ i ] is computed through the ComputeMedian function (first to second)
Figure 112016120341046-pat00213
silver
Figure 112016120341046-pat00214
(The third line). For example, with reference to FIG. 4, P [1] is (17, 12, 21, 16, 14, 20, 23, 7, 25, 19, 18, P [2] is the median value of (12, 14, 7, 15), and P [3] is the median value of (21, 20, 25) Accordingly
Figure 112016120341046-pat00215
- the approximate cycle P = (18, 13, 21)
Figure 112016120341046-pat00216
= 24.

알고리즘 2는

Figure 112016120341046-pat00217
-근사주기를 저장할 크기가 n/2인 배열 P를 할당하고, ComputeGammaAP 함수를 이용하여 최소
Figure 112016120341046-pat00218
-근사주기의 거리(
Figure 112016120341046-pat00219
)와 길이(m')를 계산한다(6번째 줄부터 10번째 줄). m'이 계산됨에 따라 m'를 이용하여 최소
Figure 112016120341046-pat00220
-근사주기를 다시 계산한다(11번째 줄). 최소
Figure 112016120341046-pat00221
-근사주기는 정수문자로 구성되어야 하므로 각 문자 P[j]의 소수부분을 올림하거나 내림한 정수로 변환하여 출력할 수 있다. 이때, 정수 조건이 없으면 변환하지 않고 그대로 출력하면 된다. 앞서 설명한 것과 같이 m'=3이고, 최소
Figure 112016120341046-pat00222
-근사주기는 (18, 13, 21)이다.Algorithm 2
Figure 112016120341046-pat00217
- Assign an array P of size n / 2 to store the approximate period, and use ComputeGammaAP function to set the minimum
Figure 112016120341046-pat00218
- the distance of the approximate cycle (
Figure 112016120341046-pat00219
) And the length (m ') (from line 6 to line 10). As m 'is calculated, m'
Figure 112016120341046-pat00220
- Recalculate the approximate cycle (line 11). at least
Figure 112016120341046-pat00221
- Since the approximate cycle must consist of integer characters, the fractional part of each character P [j] can be converted to an integer that rounds up or down. At this time, if there is no integer condition, it can be output without conversion. As described above, m '= 3 and minimum
Figure 112016120341046-pat00222
- The approximate cycle is (18, 13, 21).

알고리즘 2의 복잡도를 분석하면 다음과 같다. ComputeMedian 함수에서 중앙값은 정렬알고리즘을 이용하여

Figure 112016120341046-pat00223
시간에 계산할 수 있다. ComputeGammaAP 함수의 시간복잡도는 ComputeMedian 함수를 m번 호출하기 때문에
Figure 112016120341046-pat00224
이다. 알고리즘 2는 m
Figure 112016120341046-pat00225
에 대해 ComputeGammaAP 함수를 n/2번 호출한다(6번째 줄부터 10번째 줄). 이에 따라 알고리즘 2의 시간복잡도는
Figure 112016120341046-pat00226
이며, 아래의 과정에 의하여
Figure 112016120341046-pat00227
임을 알 수 있다. The complexity of algorithm 2 is analyzed as follows. In the ComputeMedian function, the median is calculated using a sorting algorithm
Figure 112016120341046-pat00223
It can be calculated in time. The time complexity of the ComputeGammaAP function calls the ComputeMedian function m times
Figure 112016120341046-pat00224
to be. Algorithm 2 is m
Figure 112016120341046-pat00225
Call the ComputeGammaAP function n / 2 times (from line 6 to line 10). Thus, the time complexity of Algorithm 2 is
Figure 112016120341046-pat00226
, And by the process below
Figure 112016120341046-pat00227
.

수학식 1:Equation 1:

Figure 112016120341046-pat00228
Figure 112016120341046-pat00228

stirling의 근사에 의해,

Figure 112016120341046-pat00229
이다.
Figure 112016120341046-pat00230
이므로,
Figure 112016120341046-pat00231
이다. By approximating stirling,
Figure 112016120341046-pat00229
to be.
Figure 112016120341046-pat00230
Because of,
Figure 112016120341046-pat00231
to be.

따라서,

Figure 112016120341046-pat00232
이므로 양변에 log를 취하면,
Figure 112016120341046-pat00233
이다.therefore,
Figure 112016120341046-pat00232
If you take a log on both sides,
Figure 112016120341046-pat00233
to be.

수학식 2:Equation 2:

Figure 112016120341046-pat00234
Figure 112016120341046-pat00234

수학식 2를 수학식 1에 대입하면, 수학식 3으로 도출될 수 있다.Substituting Equation (2) into Equation (1), Equation (3) can be derived.

수학식 3: Equation (3)

Figure 112016120341046-pat00235
Figure 112016120341046-pat00235

만약, ComputeMedian 함수에서 정렬알고리즘이 아닌, 선택알고리즘(Selection Algorithm)을 이용하면, 알고리즘 2의 시간복잡도가

Figure 112016120341046-pat00236
임을 보다 쉽게 판단할 수 있다. ComputeMedian 함수에서 중앙값은 선택알고리즘을 이용할 경우,
Figure 112016120341046-pat00237
시간에 계산할 수 있다. If we use the Selection Algorithm instead of the sort algorithm in the ComputeMedian function,
Figure 112016120341046-pat00236
Can be more easily judged. In the ComputeMedian function, the median, when using a selection algorithm,
Figure 112016120341046-pat00237
It can be calculated in time.

이에 따라 ComputeGammaAP 함수의 시간복잡도는

Figure 112016120341046-pat00238
이고, 알고리즘 2는 ComputeGammaAP 함수를 (n/2)+1번 호출하기 때문에, 시간복잡도는
Figure 112016120341046-pat00239
이다.Thus the time complexity of the ComputeGammaAP function is
Figure 112016120341046-pat00238
And Algorithm 2 calls the ComputeGammaAP function (n / 2) + 1 times, the time complexity is
Figure 112016120341046-pat00239
to be.

더 나아가, 문제 1 및 문제 2를 해결하는 알고리즘에 기반하여 시간복잡도의 증가없이 문제 3 및 문제 4를 해결할 수 있다. Furthermore, Problem 3 and Problem 4 can be solved without increasing the time complexity based on the algorithm solving Problem 1 and Problem 2.

문제 3. 주어진

Figure 112016120341046-pat00240
의 최소
Figure 112016120341046-pat00241
-근사주기
Figure 112016120341046-pat00242
찾기.Problem 3. Given
Figure 112016120341046-pat00240
Minimum of
Figure 112016120341046-pat00241
- approximate cycle
Figure 112016120341046-pat00242
find.

문제 4. 주어진

Figure 112016120341046-pat00243
의 최소
Figure 112016120341046-pat00244
-근사주기
Figure 112016120341046-pat00245
찾기.
Problem 4. Given
Figure 112016120341046-pat00243
Minimum of
Figure 112016120341046-pat00244
- approximate cycle
Figure 112016120341046-pat00245
find.

문제 3의 경우, ComputeDeltaAP 함수를 ComputeDeltaAPwithDC 함수로 변경하여 무관문자를 고려한 최소

Figure 112016120341046-pat00246
-근사주기를 획득할 수 있다. 마찬가지로, 문제 4의 경우, T[i]가 ★인 경우, 중앙값 및
Figure 112016120341046-pat00247
계산에서 제외하기 위하여 ComputeMedian 함수와 ComputeGammaAP 함수를 ComputeMedianwithDC 함수와 ComputeGammaAPwithDC 함수로 변경하여 무관문자를 고려한 최소
Figure 112016120341046-pat00248
-근사주기를 획득할 수 있다.For problem 3, change the ComputeDeltaAP function to the ComputeDeltaAPwithDC function to set the minimum
Figure 112016120341046-pat00246
- Approximate cycles can be obtained. Likewise, in the case of Problem 4, if T [i] is & cir &, the median and
Figure 112016120341046-pat00247
ComputeMedian function and ComputeGammaAP function are changed to ComputeMedianwithDC function and ComputeGammaAPwithDC function in order to exclude from calculation.
Figure 112016120341046-pat00248
- Approximate cycles can be obtained.

Figure 112016120341046-pat00249

Figure 112016120341046-pat00249

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be embodyed temporarily. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (6)

근사주기 계산 방법에 있어서,
정수문자로 구성된 길이가 n인 문자열(T)에 대하여, 길이가 n/2인 배열을 생성하는 단계;
상기 길이가 m
Figure 112018029098876-pat00250
인 문자열(T)의
Figure 112018029098876-pat00251
-근사주기 또는
Figure 112018029098876-pat00252
-근사주기를 계산하는 단계; 및
상기
Figure 112018029098876-pat00253
-근사주기 또는
Figure 112018029098876-pat00254
-근사주기와 관련된 문자열(P)을 획득하는 단계
를 포함하고,
상기 문자열
Figure 112018029098876-pat00316
Figure 112018029098876-pat00317
가 주어졌을 때,
Figure 112018029098876-pat00318
에 대해
Figure 112018029098876-pat00319
i
Figure 112018029098876-pat00320
의 집합을 Ej 라고 하면,
상기
Figure 112018029098876-pat00321
-근사주기는, 모든 j
Figure 112018029098876-pat00322
,
Figure 112018029098876-pat00323
에 대해
Figure 112018029098876-pat00324
이면, 상기 문자열(P)는 상기 문자열(T)에 대해 거리가 d인
Figure 112018029098876-pat00325
-근사주기라고 정의하는 것을 의미하고,
상기
Figure 112018029098876-pat00326
-근사주기는, 모든
Figure 112018029098876-pat00327
,
Figure 112018029098876-pat00328
에 대해
Figure 112018029098876-pat00329
를 만족하면, 상기 문자열(P)는 상기 문자열(T)에 대해 거리가 d인
Figure 112018029098876-pat00330
-근사주기라고 정의하는 것을 의미하는
근사주기 계산 방법.
In the approximate period calculation method,
Generating an array of length n / 2 for a string T of length n consisting of integer characters;
If the length is m
Figure 112018029098876-pat00250
Of the character string (T)
Figure 112018029098876-pat00251
- Approximate cycle or
Figure 112018029098876-pat00252
Calculating an approximation period; And
remind
Figure 112018029098876-pat00253
- Approximate cycle or
Figure 112018029098876-pat00254
- obtaining a string (P) associated with the approximate cycle
Lt; / RTI >
The string
Figure 112018029098876-pat00316
Wow
Figure 112018029098876-pat00317
When given,
Figure 112018029098876-pat00318
About
Figure 112018029098876-pat00319
I
Figure 112018029098876-pat00320
Let E j be the set of
remind
Figure 112018029098876-pat00321
- The approximate cycle, all j
Figure 112018029098876-pat00322
,
Figure 112018029098876-pat00323
About
Figure 112018029098876-pat00324
, The character string (P) has a distance d to the character string (T)
Figure 112018029098876-pat00325
- means to define an approximate cycle,
remind
Figure 112018029098876-pat00326
- Approximate cycles, all
Figure 112018029098876-pat00327
,
Figure 112018029098876-pat00328
About
Figure 112018029098876-pat00329
, The character string (P) has a distance d with respect to the character string T
Figure 112018029098876-pat00330
- which means defining an approximation cycle
Approximate period calculation method.
삭제delete 제1항에 있어서,
상기 길이가 m
Figure 112018029098876-pat00268
인 문자열(T)의
Figure 112018029098876-pat00269
-근사주기 또는
Figure 112018029098876-pat00270
-근사주기를 계산하는 단계는,
상기 길이가 m
Figure 112018029098876-pat00271
인 문자열(T)의
Figure 112018029098876-pat00272
-근사주기들 중 최소
Figure 112018029098876-pat00273
-근사주기와 관련된 문자열(P)과 거리(d)를 계산하거나 상기 길이가 m
Figure 112018029098876-pat00274
인 문자열(T)의
Figure 112018029098876-pat00275
-근사주기들 중 최소
Figure 112018029098876-pat00276
-근사주기와 관련된 문자열(P)과 거리(d)를 계산하는 단계
를 포함하고,
상기 문자열(T)에 대한 최소
Figure 112018029098876-pat00277
-근사주기는, 상기 문자열(T)의
Figure 112018029098876-pat00278
-근사주기들 중 거리가 최소이고 길이가 가장 짧은 문자열을 의미하고, 상기 문자열(T)에 대한 최소
Figure 112018029098876-pat00279
-근사주기는, 상기 문자열(T)의
Figure 112018029098876-pat00280
-근사주기들 중 거리가 최소이고, 길이가 가장 짧은 문자열을 의미하는 것
을 포함하는 근사주기 계산 방법.
The method according to claim 1,
If the length is m
Figure 112018029098876-pat00268
Of the character string (T)
Figure 112018029098876-pat00269
- Approximate cycle or
Figure 112018029098876-pat00270
Calculating the approximate period comprises:
If the length is m
Figure 112018029098876-pat00271
Of the character string (T)
Figure 112018029098876-pat00272
- minimum of approximate cycles
Figure 112018029098876-pat00273
- Calculate the string (P) and distance (d) associated with the approximation cycle or if the length is m
Figure 112018029098876-pat00274
Of the character string (T)
Figure 112018029098876-pat00275
- minimum of approximate cycles
Figure 112018029098876-pat00276
Calculating a string (P) and a distance (d) associated with the approximation cycle;
Lt; / RTI >
The minimum value for the string (T)
Figure 112018029098876-pat00277
- the approximate cycle is a function of the (T)
Figure 112018029098876-pat00278
- means a character string having a minimum distance and a shortest length among the approximate cycles,
Figure 112018029098876-pat00279
- the approximate cycle is a function of the (T)
Figure 112018029098876-pat00280
- means a string with the shortest distance and the shortest length among approximate cycles
/ RTI >
제3항에 있어서,
상기 길이가 m
Figure 112016120341046-pat00281
인 문자열(T)의
Figure 112016120341046-pat00282
-근사주기 또는
Figure 112016120341046-pat00283
-근사주기를 계산하는 단계는,
상기 문자열 T(|T|=n)를 길이 m으로 분할했을 때 생성되는 부분문자열들을 주기 블록이라 하고, 각
Figure 112016120341046-pat00284
Figure 112016120341046-pat00285
에서 시작하는 k번째 주기블록을 T k 라고 할 때,
상기
Figure 112016120341046-pat00286
-근사주기의 길이를 1부터 n/2까지 증가시켜가면서, ComputeDeltaAP 함수를 이용하여 상기 길이에 대한
Figure 112016120341046-pat00287
-근사주기를 계산하는 단계
를 포함하고,
상기 ComputeDeltaAP 함수는 상기 문자열(T)와 근사주기의 길이 m이 주어지면,
Figure 112016120341046-pat00288
Figure 112016120341046-pat00289
들의 오차를 최소화하기 위해 최소값과 최대값의 산술평균을 이용하여 길이가 m일 때, 최소의 거리(
Figure 112016120341046-pat00290
)와
Figure 112016120341046-pat00291
-근사주기를 계산하는, 근사주기 계산 방법.
The method of claim 3,
If the length is m
Figure 112016120341046-pat00281
Of the character string (T)
Figure 112016120341046-pat00282
- Approximate cycle or
Figure 112016120341046-pat00283
Calculating the approximate period comprises:
Substrings generated when the string T (| T | = n) is divided by the length m are called periodic blocks,
Figure 112016120341046-pat00284
Figure 112016120341046-pat00285
The k-th block period, starting from when said T k,
remind
Figure 112016120341046-pat00286
- Increasing the length of the approximation period from 1 to n / 2, using the ComputeDeltaAP function,
Figure 112016120341046-pat00287
- calculating the approximate cycle
Lt; / RTI >
The ComputeDeltaAP function, given the length m of the string (T) and the approximate period,
Figure 112016120341046-pat00288
Figure 112016120341046-pat00289
When the length is m using the arithmetic mean of the minimum value and the maximum value to minimize the error,
Figure 112016120341046-pat00290
)Wow
Figure 112016120341046-pat00291
- Approximate period calculation method for calculating approximate period.
제3항에 있어서,
상기 길이가 m(1)인 문자열(T)의
Figure 112016120341046-pat00292
-근사주기 또는
Figure 112016120341046-pat00293
-근사주기를 계산하는 단계는,
상기 문자열 T(|T|=n)를 길이 m으로 분할했을 때 생성되는 부분문자열들을 주기 블록이라 하고, 각
Figure 112016120341046-pat00294
Figure 112016120341046-pat00295
에서 시작하는 k번째 주기블록을 T k 라고 할 때,
상기
Figure 112016120341046-pat00296
-근사주기의 길이를 1부터 n/2까지 증가시키면서, ComputeGammaAP 함수를 이용하여 상기 길이에 대한
Figure 112016120341046-pat00297
-근사주기를 계산하는 단계
를 포함하고,
상기 ComputeGammaAP 함수는, 상기 문자열(T)와 근사주기의 길이 m이 주어지면,
Figure 112016120341046-pat00298
Figure 112016120341046-pat00299
들의 오차의 합을 최소화하기 위해 중앙값(Median)을 이용하여, 길이가 m일 때 최소의 거리(
Figure 112016120341046-pat00300
)와
Figure 112016120341046-pat00301
-근사주기를 계산하는 근사주기 계산 방법.
The method of claim 3,
(T) having the length m (1)
Figure 112016120341046-pat00292
- Approximate cycle or
Figure 112016120341046-pat00293
Calculating the approximate period comprises:
Substrings generated when the string T (| T | = n) is divided by the length m are called periodic blocks,
Figure 112016120341046-pat00294
Figure 112016120341046-pat00295
The k-th block period, starting from when said T k,
remind
Figure 112016120341046-pat00296
- ComputeGammaAP function, increasing the length of the approximation period from 1 to n / 2,
Figure 112016120341046-pat00297
- calculating the approximate cycle
Lt; / RTI >
The ComputeGammaAP function, when given the length m of the approximate period and the string T,
Figure 112016120341046-pat00298
Figure 112016120341046-pat00299
(Median) is used to minimize the sum of the errors of the length (m) and the minimum distance
Figure 112016120341046-pat00300
)Wow
Figure 112016120341046-pat00301
- Approximate cycle calculation method for calculating approximate cycle.
제5항에 있어서,
상기 중앙값은 t개의 정수들을 오름차순으로 정렬했을 때, t가 홀수일 때
Figure 112016120341046-pat00302
번째의 값, t가 짝수일 때 t/2 번째와 (t/2)+1번째 값의 산술평균인 근사주기 계산 방법.
6. The method of claim 5,
The median may be expressed as t integers sorted in ascending order, when t is odd
Figure 112016120341046-pat00302
The second value, t / 2-th and (t / 2) cycle method, the approximate arithmetic average of the calculated second value +1 when t is an even one.
KR1020160166451A 2016-12-08 2016-12-08 A METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS KR101893661B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160166451A KR101893661B1 (en) 2016-12-08 2016-12-08 A METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160166451A KR101893661B1 (en) 2016-12-08 2016-12-08 A METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS

Publications (2)

Publication Number Publication Date
KR20180065496A KR20180065496A (en) 2018-06-18
KR101893661B1 true KR101893661B1 (en) 2018-08-30

Family

ID=62768155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160166451A KR101893661B1 (en) 2016-12-08 2016-12-08 A METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS

Country Status (1)

Country Link
KR (1) KR101893661B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240127655A (en) * 2023-02-16 2024-08-23 삼성전자주식회사 Electronic device and method for transmitting string data with guaranteed privacy in the electronic device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
C. S. Iliopoulos, T. Lecroq, L. Mouchard, and Y. J. Pinzon, "Computing Approximate Repetitions in Musical Sequences", In Proceedings of Prague Stringology Club Workshop PSCW’00, 2000.

Also Published As

Publication number Publication date
KR20180065496A (en) 2018-06-18

Similar Documents

Publication Publication Date Title
CN105719001B (en) Large scale classification in neural networks using hashing
US11372929B2 (en) Sorting an array consisting of a large number of elements
Ekim et al. A randomized parallel algorithm for efficiently finding near-optimal universal hitting sets
CN104346629A (en) Model parameter training method, device and system
KR101893661B1 (en) A METHOD OF COMPUTING δ-APPROXIMATE PERIODS AND γ-APPROXIMATE PERIODS OF STRINGS OVER INTEGER ALPHABETS
US20210027121A1 (en) Machine Learning-Based Techniques for Representing Computing Processes as Vectors
KR102560778B1 (en) Method and device to extract data
JP6367959B2 (en) Partial character string position detection apparatus, partial character string position detection method, and program
JP7020555B2 (en) Information processing equipment, information processing methods, and programs
Hwang et al. Limit distribution of the coefficients of polynomials with only unit roots
KR101771352B1 (en) Method for summarizing graph in dynamic environment and apparatus using the method
US11244156B1 (en) Locality-sensitive hashing to clean and normalize text logs
Cazaux et al. Practical lower and upper bounds for the shortest linear superstring
KR20140108017A (en) Method and apparatus for pattern discoverty in sequence data
KR101523468B1 (en) Method and Apparatus for Approximate Pattern Matching Using Polynomial Multiplication
US20130226904A1 (en) Determining distance between data sequences
Rodionov Speeding up computation of the reliability polynomial coefficients for a random graph
KR101626721B1 (en) An efficient algorithm for boxed mesh permutation pattern matching
KR101322123B1 (en) Method for parallel computation of extended edit distance including swap operation
Tchernykh et al. Cryptographic Primitives Optimization Based on the Concepts of the Residue Number System and Finite Ring Neural Network
KR102158317B1 (en) An order-preserving pattern matching algorithm using fingerprint of secondary q-grams
Cho et al. Deduplication on finite automata and nested duplication systems
KR102288282B1 (en) Method and Apparatus for An Order-Preserving Pattern Matching based on the Horspool Algorithm using Binary Encoding
CN117170686B (en) Method and computing device for neural network compilation optimization
US20230419145A1 (en) Processor and method for performing tensor network contraction in quantum simulator

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right