KR101595189B1 - 압축된 문자열에 대한 Boyer-Moore-Horspool 알고리즘 기반 패턴매칭 방법 - Google Patents

압축된 문자열에 대한 Boyer-Moore-Horspool 알고리즘 기반 패턴매칭 방법 Download PDF

Info

Publication number
KR101595189B1
KR101595189B1 KR1020140158852A KR20140158852A KR101595189B1 KR 101595189 B1 KR101595189 B1 KR 101595189B1 KR 1020140158852 A KR1020140158852 A KR 1020140158852A KR 20140158852 A KR20140158852 A KR 20140158852A KR 101595189 B1 KR101595189 B1 KR 101595189B1
Authority
KR
South Korea
Prior art keywords
pattern
character
text
matching
pattern matching
Prior art date
Application number
KR1020140158852A
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 KR1020140158852A priority Critical patent/KR101595189B1/ko
Application granted granted Critical
Publication of KR101595189B1 publication Critical patent/KR101595189B1/ko

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

일 실시예에 따른 압축패턴매칭 방법은 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 단계; 및 상기 계산된 이동 거리에 기초하여 압축된 텍스트 문자와 압축패턴매칭을 수행하는 단계를 포함할 수 있다.

Description

압축된 문자열에 대한 Boyer-Moore-Horspool 알고리즘 기반 패턴매칭 방법{A METHOD OF PATTERN MATCHING ON COMPRESSED TEXTS BASED ON BOYER-MOORE-HORSPOOL ALGORITHM}
아래의 설명은 압축패턴매칭 문제를 해결하기 위한 알고리즘에 관한 것으로, Boyer-Moore-Horspool 알고리즘 기반의 패턴매칭 방법에 관한 것이다.
문자열매칭문제(String Matching Problem)는 텍스트
Figure 112015099076854-pat00001
와 패턴
Figure 112015099076854-pat00002
가 주어질 때, T안에 발생하는 모든 P의 위치를 찾는 문제이다. 이 문제를 해결하기 위한 알고리즘으로 Boyer-Moore 알고리즘, KMP 알고리즘, Rabin-Karp 알고리즘 등이 있다.
압축패턴매칭 문제(Compressed Pattern Matching Problem)는 원본 텍스트 T를 압축한 압축 텍스트
Figure 112015099076854-pat00006
와 패턴
Figure 112015099076854-pat00007
가 주어질 때, T안에 발생하는 모든 P의 위치를 찾는 문제이다. LZ78이나 LZW로 압축된 텍스트 Z와 패턴 P가 주어질 때, Boyer-Moore 알고리즘을 변형하여
Figure 112015099076854-pat00012
인 텍스트에 대해 종래의 기술보다 빠른 속도로 압축패턴매칭 문제를 해결하는 방법을 제안하기로 한다.
본 발명은 Boyer-Moore-Horspool 알고리즘을 이용하여 압축패턴매칭 문제를 해결하는 방법을 제공할 수 있다.
일 실시예에 따른 압축패턴매칭 방법은, 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 단계; 및 상기 계산된 이동 거리에 기초하여 압축된 텍스트 문자와 압축패턴매칭을 수행하는 단계를 포함할 수 있다.
일측에 따르면, 상기 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 단계는, 오문자 이동 규칙을 이용하여 이동 거리를 계산하는 단계를 포함하고, 상기 오문자(Bad Character)는, 패턴의 마지막 문자와 매치되는 텍스트의 문자일 수 있다.
또 다른 일측에 따르면, 상기 오문자 이동 규칙을 이용하여 이동 거리를 계산하는 단계는, 상기 텍스트 문자와 패턴의 문자가 불일치함에 따라 마지막 텍스트 문자를 오문자에 매칭되도록 패턴을 이동시키는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 단계는, 패턴에 텍스트 문자가 존재하지 않은 경우에 패턴의 길이 m(m은 정수)만큼 상기 패턴을 이동시키는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 계산된 이동 거리에 기초하여 압축된 텍스트 문자와 패턴매칭을 수행하는 단계는, 상기 패턴을 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 비교하여 매칭을 수행하는 단계; 및 상기 패턴을 상기 압축된 텍스트 문자의 오른쪽부터 비교하여 매칭을 수행하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 계산된 이동 거리에 기초하여 압축된 텍스트 문자와 패턴매칭을 수행하는 단계는, 상기 압축된 텍스트 문자를 상기 패턴과 비교하여 매칭을 수행하는 중에 불일치가 발생하였을 경우, 이동 규칙에 따라 패턴을 이동시키는 과정을 상기 압축된 텍스트 문자와 상기 패턴이 일치할 때까지 반복하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 계산된 이동 거리에 기초하여 압축된 텍스트 문자와 패턴매칭을 수행하는 단계는, 상기 압축된 텍스트에 매치되지 않는 패턴에 대한 매칭을 수행하는 과정과 상기 압축된 텍스트에 매치되는 패턴에 대한 매칭을 수행하는 과정을 분류하여 수행하는 단계를 포함할 수 있다.
일 실시예에 따른 압축패턴매칭 장치는, 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 전처리부; 및 상기 계산된 이동 거리에 기초하여 압축된 텍스트 문자와 압축패턴매칭을 수행하는 패턴매칭부를 포함할 수 있다.
본 발명은 Boyer-Moore 기반 알고리즘의 패턴매칭 방식을 변형하여
Figure 112015099076854-pat00013
인 텍스트에 대해 기존에 비해 최대 30% 빠른 속도로 압축패턴매칭 문제를 해결할 수 있다.
도 1은 일 실시예에 따른 압축패턴매칭 장치의 구성을 나타낸 블록도이다.
도 2는 일 실시예에 따른 압축패턴매칭 장치의 압축 방식을 나타낸 도면이다.
도 3은 일 실시예에 따른 LZW로 압축된 텍스트에 패턴매칭을 위해 압축을 해제하는 영역을 나타낸 도면이다.
도 4는 일 실시예에 따른 LZW 압축패턴매칭 알고리즘(CBM)의 매칭 순서를 나타낸 도면이다.
도 5는 일 실시예에 따른 보이어-무어-호스풀 알고리즘의 매칭 순서를 나타낸 도면이다.
도 6은 일 실시예에 따른 압축패턴매칭 장치의 압축패턴매칭 방법을 나타낸 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 일 실시예에 따른 압축패턴매칭 장치의 구성을 나타낸 블록도이다.
압축패턴매칭 장치(100)는 압축패턴매칭 문제를 해결하기 위한 장치로서, 전처리부(110) 및 패턴매칭부(120)를 포함할 수 있다.
압축패턴매칭 장치(100)는 LZ78 또는 LZW로 압축된 텍스트와 패턴을 보이어-무어-호스풀(Boyer-Moore-Horspool) 기반의 알고리즘을 이용하여 압축패턴매칭을 수행할 수 있다. 압축패턴매칭 장치(100)는 LZ78 또는 LZW로 압축된 텍스트 중 압축되지 않은 마지막 문자와 비교하여 매칭을 수행할 수 있다. 이때, 패턴이 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 매칭되지 않을 경우, 오문자를 이용하여 압축패턴매칭을 수행하고, 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 매칭되는 경우, 압축된 텍스트 문자에 대하여 압축을 푼 다음 압축이 해제된 문자와 매칭을 수행할 수 있다.
전처리부(110)는 보이어-무어-호스풀 알고리즘을 이용하여 패턴에 대한 이동 규칙에 따른 이동 거리를 계산할 수 있다. 전처리부(110)는 오문자 이동 규칙을 이용하여 이동 거리를 계산할 수 있다. 이때, 오문자(Bad Character)는 패턴의 마지막 문자와 매치되는 텍스트 문자일 수 있다. 오문자 이동 규칙은 텍스트의 문자와 패턴의 문자가 불일치함에 따라 마지막 텍스트 문자를 오문자에 매칭되도록 패턴을 이동시킬 수 있다. 전처리부(110)는 패턴에 텍스트 문자가 존재하지 않은 경우, 패턴의 길이 m(m은 정수)만큼 패턴을 이동시킬 수 있다.
패턴매칭부(120)는 계산된 이동 거리에 기초하여 압축된 텍스트 문자와 패턴매칭을 수행할 수 있다. 패턴매칭부(120)는 패턴을 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 비교하여 매칭을 수행할 수 있다. 패턴매칭부(120)는 패턴을 압축된 텍스트 문자의 오른쪽부터 비교하여 매칭을 수행할 수 있다. 패턴매칭부(120)는 압축된 텍스트 문자를 패턴과 비교하여 매칭을 수행하는 중에 불일치가 발생하였을 경우, 이동 규칙에 따라 패턴을 이동시키는 과정을 압축된 텍스트 문자와 패턴이 일치할 때까지 반복할 수 있다.
패턴매칭부(120)는 압축된 텍스트에 매치되지 않는 패턴에 대한 매칭을 수행하는 과정과 압축된 텍스트에 매치되는 패턴에 대한 매칭을 수행하는 과정을 분류하여 수행할 수 있다. 예를 들면, 패턴매칭부(120)는 패턴을 압축된 텍스트 중 압축되지 않은 마지막 문자와 비교하여 매칭을 수행할 수 있고, 압축된 텍스트에 매칭이 안될 경우 오문자를 이용하여 매칭을 수행할 수 있다.
도 2는 일 실시예에 따른 압축패턴매칭 장치의 압축 방식을 나타낸 도면이다.
도 2a를 참고하면, LZ78은 사전 기반 압축 방식으로, 압축 파일에 이전에 사전에 저장된 블록의 번호 s 와 압축되지 않은 문자 c로 구성된 블록을 기록하는 방식으로 압축을 수행할 수 있다. 이때, s를 압축된 영역, c를 압축되지 않은 영역, s가 가리키는 블록의 압축된 텍스트의 길이를 ls라 하자. 텍스트
Figure 112015099076854-pat00020
의 접두사
Figure 112015099076854-pat00021
에 대한 압축된 텍스트가
Figure 112015099076854-pat00022
이라고 할 때, 압축된 텍스트에 기록되는 블록은
Figure 112015099076854-pat00023
이 되고, Zr+1이 사전에 추가된다. 이 때, Zr+1의 s는
Figure 112015099076854-pat00027
의 접두사와 가장 길게 일치하는 블록의 번호를 의미한다. 예를 들어, 텍스트
Figure 112015099076854-pat00028
를 LZ78로 압축을 하게 되면 압축 텍스트
Figure 112015099076854-pat00029
Figure 112015099076854-pat00030
가 된다.
도 2b를 참고하면, LZ78로 압축된 텍스트의 압축을 해제할 때에는 압축된 텍스트로 사전을 생성하면서 압축된 블록들을 원문 텍스트로 만들게 된다. 예를 들어 압축된 텍스트
Figure 112015099076854-pat00031
Figure 112015099076854-pat00032
까지 압축을 해제한 텍스트가
Figure 112015099076854-pat00033
일 때, 다음으로 블록
Figure 112015099076854-pat00034
의 압축을 해제하기 위해서
Figure 112015099076854-pat00035
Figure 112015099076854-pat00036
Figure 112015099076854-pat00037
과 같이 블록의 문자열 순서의 역순으로 참조관계가 나타나는 것을 이용하여 압축을 해제한다.
도 2c를 참고하면, LZW는 사전 기반 압축 방식으로, 압축 파일에 이전에 사전에 저장된 블록의 번호 s를 기록하는 방식으로 압축을 수행한다. 텍스트
Figure 112015099076854-pat00039
의 접두사
Figure 112015099076854-pat00040
에 대한 압축된 텍스트가
Figure 112015099076854-pat00041
이라고 할 때, 압축된 텍스트에 기록되는 블록은 Zr+1 = s이 되고,
Figure 112015099076854-pat00043
를 의미하는 블록이 사전에 추가된다. 이 때, Zr+1의 s는
Figure 112015099076854-pat00046
의 접두사와 가장 길게 일치하는 블록의 번호를 의미한다. 예를 들어, 텍스트
Figure 112015099076854-pat00047
($는 텍스트의 끝을 나타내는 종결문자)를 LZW로 압축을 하게 되면 압축 텍스트
Figure 112015099076854-pat00049
가 된다.
도 2d를 참고하면, LZW로 압축된 텍스트의 압축을 해제할 때에는 압축된 텍스트로 사전을 생성하면서 압축된 블록들을 원문 텍스트로 만들게 된다. 예를 들어 압축된 텍스트
Figure 112015099076854-pat00050
Figure 112015099076854-pat00051
까지 압축을 해제한 텍스트가
Figure 112015099076854-pat00052
일 때, 다음으로 블록 Zr+1 = s의 압축을 해제하기 위해서 각 블록의 사전정보가 블록의 문자열 순서의 역순으로 참조관계가 나타나는 것을 이용하여 압축을 해제한다.
도 3은 일 실시예에 따른 LZW로 압축된 텍스트에 패턴매칭을 위해 압축을 해제하는 영역을 나타낸 도면이다.
보이어-무어(Boyer-Moore)알고리즘과 보이어-무어-호스풀(Boyer-Moore-Horspool)알고리즘은 문자열매칭 문제를 해결할 수 있는 휴리스틱 알고리즘으로서, 전처리 과정과 패턴매칭 과정으로 나눌 수 있다. 보이어-무어 알고리즘과 보이어-무어-호스풀 알고리즘은 전처리 과정을 통해 패턴에 대한 이동 규칙에 따른 이동 거리를 계산한 후에 이를 활용하여 패턴매칭 과정을 수행하는 방식으로 진행될 수 있다.
보이어-무어 알고리즘은 오문자 이동규칙(Bad character Rule)과 순접미사이동규칙(Good Suffix Rule)을 사용하며, 보이어-무어-호스풀 알고리즘은 오문자 이동규칙을 이용하여 이동 거리를 계산한다. 오문자 이동규칙은 불일치가 발생했을 때, 패턴의 문자를 오문자(Bad Character)에 매칭되도록 이동시킨다. 만약 패턴에 해당 문자가 존재 하지 않을 경우에는 패턴의 길이 m만큼 패턴을 이동시킨다. 보이어-무어 알고리즘에서는 매치에서 불일치된 텍스트의 문자를 오문자라 하고, 오문자가 a일 때 패턴에서 가장 마지막으로 나타나는 a가 오문자와 매치되도록 패턴을 이동시킨다. 이때, 계산된 패턴의 이동 거리가 0이나 음수가 될 경우에는, 패턴의 이동 거리를 1로 한다. 보이어-무어-호스풀 알고리즘에서는 패턴의 마지막 문자와 매치되는 텍스트의 문자를 오문자로 정의하고, 오문자가 a일 때,
Figure 112015099076854-pat00060
에서 가장 마지막으로 나타나는 a가 오문자와 매치되도록 패턴을 이동시킨다.
패턴매칭 과정에서는 오른쪽부터 비교하여 매칭을 진행하다가 불일치가 발생했을 때, 전처리 과정에서 계산한 이동 규칙에 따라 패턴을 이동시키는 과정을 텍스트에서 패턴이 불일치가 발생하지 않을 때까지 반복한다.
도 4는 일 실시예에 따른 LZW 압축패턴매칭 알고리즘(CBM)의 매칭 순서를 나타낸 도면이다.
LZW 압축패턴매칭 알고리즘(CBM)은 압축된 텍스트로 사전을 생성해가면서 패턴매칭을 수행할 수 있다. 예를 들어, 패턴매칭시 패턴 P와 매치되는 Z의 블록들 중 마지막 블록을 Zt라 하자. Zt와 매치되는 P의 접미사를
Figure 112015099076854-pat00067
이라 하자.
Figure 112015099076854-pat00068
이 블록 Zt의 원본 텍스트 길이보다 짧게 매칭될 때, 압축된 블록을 풀고 매칭을 해야 하는 연산을 줄이기 위해, CBM은 압축된 블록들의 마지막 문자들에 대한 패턴매칭을 먼저 진행한다. 다음으로,
Figure 112015099076854-pat00070
에 매칭되는 블록들의 마지막 문자가 아닌 문자들에 대한 패턴매칭을 진행한 후에,
Figure 112015099076854-pat00071
에 대한 패턴매칭을 진행한다.
CBM은 보이어-무어 알고리즘을 기반으로 오문자 이동규칙만을 사용한다. 보이어-무어 알고리즘에서 사용하는 오문자 이동규칙을 그대로 사용하게 되면 계산된 패턴의 이동 거리가 음수가 되는 경우가 발생한다. 이를 개선하기 위해 CBM은 전처리 과정에서 패턴의 i번째 문자에서 텍스트의 문자가 c로 불일치가 발생할 때의 이동 거리를 다음과 같이 정의할 수 있다.
Figure 112015099076854-pat00074
도 5는 일 실시예에 따른 보이어-무어-호스풀 알고리즘의 매칭 순서를 나타낸 도면이다.
압축패턴매칭 알고리즘은 보이어-무어-호스풀 알고리즘의 오문자 이동규칙을 적용하되, 패턴매칭 과정에서 Zt에 매치되지 않은
Figure 112015099076854-pat00076
에 대한 매칭과 Zt에 매치되는
Figure 112015099076854-pat00078
에 대한 매칭으로 나누어 수행할 수 있다.
Figure 112015099076854-pat00079
에 대한 매칭과정 중에 불일치가 발생할 경우에 오문자 이동규칙을 그대로 적용하게 되면 pm에 매치되는 텍스트의 문자를 오문자로 하여 이동을 해야 하지만, 오문자가 Zt의 압축된 영역에 위치하기 때문에 압축을 해제하지 않으면 이동 거리를 결정할 수 없는 문제가 발생한다. 이를 피하기 위해, 불일치가 발생한 패턴을
Figure 112015099076854-pat00082
로 보고, pk에 매치되었던 텍스트의 문자를 오문자로 사용한다.
Figure 112015099076854-pat00084
와의 매칭 중에 불일치가 발생했을 때 오문자가 a일 경우의 패턴의 이동 거리를 위한 테이블 B를 다음과 같이 정의할 수 있다.
Figure 112015099076854-pat00087
Figure 112015099076854-pat00088
에 대한 패턴매칭과정 중에 불일치가 발생할 경우에는 pm에 매칭되는 문자를 오문자로 사용하여 패턴을 이동시킨다.
도 6은 일 실시예에 따른 압축패턴매칭 장치의 압축패턴매칭 방법을 나타낸 흐름도이다.
단계(610)에서 압축패턴매칭 장치는 보이어-무어-호스풀 알고리즘을 이용하여 패턴에 대한 이동 규칙에 따른 이동 거리를 계산할 수 있다. 압축패턴매칭 장치는 오문자 이동 규칙을 이용하여 이동 거리를 계산할 수 있다. 이때, 오문자(Bad Character)는 패턴의 마지막 문자와 매치되는 텍스트 문자일 수 있다. 오문자 이동 규칙은 텍스트의 문자와 패턴의 문자가 불일치함에 따라 마지막 텍스트 문자를 오문자에 매칭되도록 패턴을 이동시킬 수 있다. 압축패턴매칭 장치는 패턴에 텍스트 문자가 존재하지 않은 경우, 패턴의 길이 m(m은 정수)만큼 패턴을 이동시킬 수 있다.
단계(620)에서 압축패턴매칭 장치는 계산된 이동 거리에 기초하여 압축된 텍스트 문자와 압축패턴매칭을 수행할 수 있다. 압축패턴매칭 장치는 패턴을 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 비교하여 매칭을 수행할 수 있다. 압축패턴매칭 장치는 패턴을 압축된 텍스트 문자의 역방향으로부터 비교하여 매칭을 수행할 수 있다. 예를 들면, 압축패턴매칭 장치는 패턴을 압축된 텍스트 문자의 오른쪽부터 비교하여 매칭을 수행할 수 있다. 압축패턴매칭 장치는 압축된 텍스트 문자를 패턴과 비교하여 매칭을 수행하는 중에 불일치가 발생하였을 경우, 이동 규칙에 따라 패턴을 이동시키는 과정을 압축된 텍스트 문자와 패턴이 일치할 때까지 반복할 수 있다.
압축패턴매칭 장치는 압축된 텍스트에 매치되지 않는 패턴에 대한 매칭을 수행하는 과정과 압축된 텍스트에 매치되는 패턴에 대한 매칭을 수행하는 과정을 분류하여 수행할 수 있다.
일 실시예에 따른 압축패턴매칭 장치는 Boyer-Moore 기반 알고리즘의 패턴매칭 방식을 변형하여
Figure 112015099076854-pat00090
인 텍스트에 대해 기존에 비해 최대 30% 빠른 속도로 압축패턴매칭 문제를 해결할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (8)

  1. 압축패턴매칭 방법에 있어서,
    원본 텍스트(T), 패턴(P) 및 상기 원본 텍스트에 대하여 LZW, LZ78로 압축된 텍스트(Z)가 주어짐에 따라,
    전처리부에서 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 상기 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 단계; 및
    패턴매칭부에서 상기 계산된 이동 거리에 기초하여 상기 패턴을 상기 압축된 텍스트와 압축패턴매칭을 수행하는 단계
    를 포함하고,
    상기 패턴매칭부에서 상기 계산된 이동 거리에 기초하여 상기 패턴을 상기 압축된 텍스트와 압축패턴매칭을 수행하는 단계는,
    상기 패턴을 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 비교하여 매칭을 수행하되 상기 패턴을 상기 압축된 텍스트 문자의 역방향으로부터 비교하여 매칭을 수행하는 단계
    를 포함하고,
    상기 패턴매칭부에서 상기 계산된 이동 거리에 기초하여 상기 패턴을 상기 압축된 텍스트와 압축패턴매칭을 수행하는 단계는,
    상기 패턴이 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 매칭되지 않을 경우, 오문자 이동 규칙을 이용하여 압축패턴매칭을 수행하고,
    상기 패턴이 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 매칭되는 경우, 상기 압축된 텍스트 문자에 대하여 압축을 푼 다음 압축이 해제된 텍스트 문자와 매칭을 수행하는 단계
    를 더 포함하고,
    상기 오문자 이동 규칙은,
    상기 압축된 텍스트 문자와 압축패턴 매칭을 수행함에 따라 불일치가 발생하였을 경우, 상기 패턴의 문자를 오문자에 매칭되도록 이동시키는 것
    을 포함하는 압축패턴매칭 방법.
  2. 제1항에 있어서,
    상기 전처리부에서 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 상기 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 단계는,
    오문자 이동 규칙을 이용하여 상기 패턴의 이동 거리를 계산하는 단계를 포함하고,
    상기 오문자(Bad Character)는,
    패턴의 마지막 문자와 매치되는 텍스트의 문자인
    것을 특징으로 하는 압축패턴매칭 방법.
  3. 제1항에 있어서,
    상기 전처리부에서 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 상기 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 단계는,
    상기 압축된 텍스트 문자와 상기 패턴의 문자가 불일치함에 따라 마지막 텍스트 문자를 오문자에 매칭되도록 패턴을 이동시키는 단계
    를 포함하는 압축패턴매칭 방법.
  4. 제1항에 있어서,
    상기 전처리부에서 보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 상기 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 단계는,
    상기 패턴에 상기 압축된 텍스트 문자가 존재하지 않은 경우에 패턴의 길이 m(m은 정수)만큼 상기 패턴을 이동시키는 단계
    를 포함하는 압축패턴매칭 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 패턴매칭부에서 상기 계산된 이동 거리에 기초하여 상기 패턴을 상기 압축된 텍스트와 압축패턴매칭을 수행하는 단계는,
    상기 압축된 텍스트 문자를 상기 패턴과 비교하여 매칭을 수행하는 중에 불일치가 발생하였을 경우, 이동 규칙에 따라 패턴을 이동시키는 과정을 상기 압축된 텍스트 문자와 상기 패턴이 일치할 때까지 반복하는 단계
    를 포함하는 압축패턴매칭 방법.
  7. 제1항에 있어서,
    상기 패턴매칭부에서 상기 계산된 이동 거리에 기초하여 상기 패턴을 상기 압축된 텍스트와 압축패턴매칭을 수행하는 단계는,
    상기 압축된 텍스트에 매치되지 않는 패턴에 대한 매칭을 수행하는 과정과 상기 압축된 텍스트에 매치되는 패턴에 대한 매칭을 수행하는 과정을 분류하여 수행하는 단계
    를 포함하는 압축패턴매칭 방법.
  8. 압축패턴매칭 장치에 있어서,
    원본 텍스트(T), 패턴(P) 및 상기 원본 텍스트에 대하여 LZW, LZ78로 압축된 텍스트(Z)가 주어짐에 따라,
    보이어-무어-호스풀(Boyer-Moore-Horspool) 알고리즘을 이용하여 상기 패턴에 대한 이동 규칙에 따른 이동 거리를 계산하는 전처리부; 및
    상기 계산된 이동 거리에 기초하여 상기 패턴을 상기 압축된 텍스트와 압축패턴매칭을 수행하는 패턴매칭부
    를 포함하고,
    상기 패턴매칭부는,
    상기 패턴을 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 비교하여 매칭을 수행하되 상기 패턴을 상기 압축된 텍스트 문자의 역방향으로부터 비교하여 매칭을 수행하는 것
    을 포함하고,
    상기 패턴매칭부는,
    상기 패턴이 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 매칭되지 않을 경우, 오문자 이동 규칙을 이용하여 압축패턴매칭을 수행하고,
    상기 패턴이 상기 압축된 텍스트 중 압축되지 않은 마지막 문자와 매칭되는 경우, 상기 압축된 텍스트 문자에 대하여 압축을 푼 다음 압축이 해제된 텍스트 문자와 매칭을 수행하는 것
    을 더 포함하고,
    상기 오문자 이동 규칙은,
    상기 압축된 텍스트 문자와 압축패턴 매칭을 수행함에 따라 불일치가 발생하였을 경우, 상기 패턴의 문자를 오문자에 매칭되도록 이동시키는 것
    을 포함하는 압축패턴매칭 장치.
KR1020140158852A 2014-11-14 2014-11-14 압축된 문자열에 대한 Boyer-Moore-Horspool 알고리즘 기반 패턴매칭 방법 KR101595189B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140158852A KR101595189B1 (ko) 2014-11-14 2014-11-14 압축된 문자열에 대한 Boyer-Moore-Horspool 알고리즘 기반 패턴매칭 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140158852A KR101595189B1 (ko) 2014-11-14 2014-11-14 압축된 문자열에 대한 Boyer-Moore-Horspool 알고리즘 기반 패턴매칭 방법

Publications (1)

Publication Number Publication Date
KR101595189B1 true KR101595189B1 (ko) 2016-02-19

Family

ID=55448836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140158852A KR101595189B1 (ko) 2014-11-14 2014-11-14 압축된 문자열에 대한 Boyer-Moore-Horspool 알고리즘 기반 패턴매칭 방법

Country Status (1)

Country Link
KR (1) KR101595189B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060063591A (ko) * 2004-12-07 2006-06-12 한국전자통신연구원 패턴 매칭을 위한 데이터 스트림 전처리 방법 및 그 장치
JP2006522401A (ja) * 2003-03-13 2006-09-28 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. パターンマッチング方法及びシステム
KR20120063879A (ko) * 2010-12-08 2012-06-18 서울대학교산학협력단 다중 바이트 문자 집합 텍스트에서의 문자열 일치 검색 방법
KR20120093112A (ko) * 2007-01-24 2012-08-22 퍼듀 리서치 파운데이션 텍스트 이미지 코딩 및 디코딩 시스템에서의 심볼 매칭 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006522401A (ja) * 2003-03-13 2006-09-28 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. パターンマッチング方法及びシステム
KR20060063591A (ko) * 2004-12-07 2006-06-12 한국전자통신연구원 패턴 매칭을 위한 데이터 스트림 전처리 방법 및 그 장치
KR20120093112A (ko) * 2007-01-24 2012-08-22 퍼듀 리서치 파운데이션 텍스트 이미지 코딩 및 디코딩 시스템에서의 심볼 매칭 장치 및 방법
KR20120063879A (ko) * 2010-12-08 2012-06-18 서울대학교산학협력단 다중 바이트 문자 집합 텍스트에서의 문자열 일치 검색 방법

Similar Documents

Publication Publication Date Title
Jeż Approximation of grammar-based compression via recompression
US20170147946A1 (en) Method and apparatus for machine learning
JP6319740B2 (ja) データ圧縮を高速化する方法、並びに、データ圧縮を高速化するためのコンピュータ、及びそのコンピュータ・プログラム
KR101866151B1 (ko) 적응형 레이트 압축 해시 프로세싱 디바이스
EP4082119A1 (en) Systems and methods of data compression
CN108280513B (zh) 模型生成方法和装置
JP2015169951A (ja) 情報処理装置、情報処理方法、およびプログラム
CN110769263A (zh) 一种图像压缩方法、装置及终端设备
Bannai et al. Efficient LZ78 factorization of grammar compressed text
US9438271B2 (en) Data compression apparatus and method
JP2019521550A5 (ko)
KR101595189B1 (ko) 압축된 문자열에 대한 Boyer-Moore-Horspool 알고리즘 기반 패턴매칭 방법
WO2019092868A1 (ja) 情報処理装置、情報処理方法及びコンピュータ読み取り可能な記録媒体
KR102659349B1 (ko) 데이터 압축 장치 및 방법
KR102185668B1 (ko) 이미지 파일의 픽셀 변환을 통한 압축율 향상 방법 및 시스템
Milioris et al. Joint sequence complexity analysis: Application to social networks information flow
Tanaka et al. Computing convolution on grammar-compressed text
WO2021140639A1 (ja) 情報処理装置、文法圧縮後の文字列の予測方法、及び、そのプログラムが格納されたコンピュータ可読媒体
KR102074734B1 (ko) 시퀀스 데이터에서의 패턴 검색 방법 및 장치
Reyes Zambrano GPS trajectory compression algorithm
KR101909387B1 (ko) 고속 전송을 위한 데이터 압축 방법 및 장치
Štrbac et al. Upgraded Petri net model and analysis of adaptive and static arithmetic coding
TW202036391A (zh) 使用基於累積計數分佈之函數之用於模型參數之解壓縮之方法及處理器
KR102670516B1 (ko) 표면 부호의 기계학습 기반 복호 방법 및 그 장치
WO2023079723A1 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

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

Payment date: 20181121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5