KR101105652B1 - 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법 - Google Patents
금지문자열 불포함 결정을 위한 방향 그래프 생성 방법 Download PDFInfo
- Publication number
- KR101105652B1 KR101105652B1 KR1020100017799A KR20100017799A KR101105652B1 KR 101105652 B1 KR101105652 B1 KR 101105652B1 KR 1020100017799 A KR1020100017799 A KR 1020100017799A KR 20100017799 A KR20100017799 A KR 20100017799A KR 101105652 B1 KR101105652 B1 KR 101105652B1
- Authority
- KR
- South Korea
- Prior art keywords
- string
- suffix
- node
- leaf
- prefix
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/137—Hierarchical processing, e.g. outlines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에 관한 것으로서, 보다 구체적으로는 (1) 금지문자열 집합의 부분 문자열을 표시한 일반화접미사트리의 모든 노드들에 대해 조상들 중 접미사 노드를 만족하는 가장 가까운 노드인 최근접 접미사 조상 노드를 계산하는 단계; (2) 상기 일반화접미사트리의 모든 리프의 문자열에 각 문자를 접두사로 형성한 문자열인 접두사문자열의 최장 접두사를 만족하는 리프를 정의하는 링크함수를 계산하는 단계; 및 (3) 상기 링크함수를 이용하여, 문자열을 통과시키는 경우 금지문자열 불포함 여부를 판단하는 방향 그래프를 생성하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에 따르면, 최근접 접미사 노드를 계산하는 단계, 및 링크함수를 계산하는 단계를 포함하여 방향 그래프를 생성함으로써, 주어진 문자열을 포함하지 않는 문자열 불포함 문제를 선형시간에 방향 그래프를 구성하여 능률적으로 해결할 수 있다.
본 발명에서 제안하고 있는, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에 따르면, 최근접 접미사 노드를 계산하는 단계, 및 링크함수를 계산하는 단계를 포함하여 방향 그래프를 생성함으로써, 주어진 문자열을 포함하지 않는 문자열 불포함 문제를 선형시간에 방향 그래프를 구성하여 능률적으로 해결할 수 있다.
Description
본 발명은 검색을 위한 방향 그래프 생성 방법에 관한 것으로서, 특히 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에 관한 것이다.
문자열 포함 문제는 주어진 문자열들의 공통 부분서열 중 가장 긴 서열(Longest Common Subsequence)을 찾는 문제와 공통 상위서열 중 가장 짧은 서열(Shortest Common Subsequence)을 찾는 문제 등이 연구되어 왔다. 한편, 주어진 문자열을 포함하지 않는 문자열 불포함 문제가 압축 알고리즘, 분자 생물학, 컴퓨터 보안 등 다양한 분야에서 필요성이 대두되어 진행되고 있다.
문자열 집합 F가 입력으로 주어졌을 때, 만약 문자열 x가 F 내의 모든 금지문자열 fi(1≤i≤m)를 포함하지 않으면, x를 F의 공통 비상위문자열(Common NonSuperString)이라 한다. 또한, 문자열 x가 유한길이이고, F의 공통 비상위문자열들 중 가장 긴 문자열이면, x를 F의 최장 공통 비상위문자열( Longest Common NonSuperString)이라 한다. 편의를 위하여, 상기 공통 비상위문자열과 최장 공통 비상위문자열을 각각 CNSS와 LCNSS라 나타낸다. 또한, F의 모든 문자열의 길이의 합을 ∥F∥로 표시하기로 한다.
최장 공통 비상위문자열 문제를 문자열들의 모든 적당한 접미사를 표시한 방향성 그래프를 구성하여 다항 시간에 풀 수 있는 것이 알려져 있으나, 시간이 오래 걸리는 등의 능률적이지 못한 문제점이 있다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 최근접 접미사 노드를 계산하는 단계, 및 링크함수를 계산하는 단계를 포함하여 방향 그래프를 생성함으로써, 주어진 문자열을 포함하지 않는 문자열 불포함 문제를 선형시간에 방향 그래프를 구성하여 능률적으로 해결하는 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법을 제공하는 것을 그 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법은,
금지문자열 집합의 부분 문자열을 표시한 일반화접미사트리의 모든 노드들에 대해 조상들 중 접미사 노드를 만족하는 가장 가까운 노드인 최근접 접미사 조상 노드를 계산하는 단계,
상기 일반화접미사트리의 모든 리프의 문자열에 각 문자를 접두사로 형성한 문자열인 접두사문자열의 최장 접두사를 만족하는 리프를 정의하는 링크함수를 계산하는 단계, 및
상기 링크함수를 이용하여, 문자열을 통과시키는 경우 금지문자열 불포함 여부를 판단하는 방향 그래프를 생성하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 최근접 접미사 조상 노드를 계산하는 상기 단계는,
노드가 상기 금지문자열 집합과 상기 금지문자열 집합의 진접미사 집합의 합집합에 속하는 접미사 노드인 경우에 자신이고, 노드가 접미사 노드가 아닌 경우에는 조상들 중 접미사 노드를 만족하는 가장 가까운 노드이므로 각 노드마다 상수 시간에 해결되어 선형시간에 계산할 수 있다.
바람직하게는, 링크함수를 계산하는 상기 단계는,
리프가 상기 최근접 접미사 조상 노드이면 상기 접두사문자열의 최장 접두사를 만족하는 리프가 상기 접두사문자열을 만족하는 리프일 수 있다.
바람직하게는, 링크함수를 계산하는 상기 단계는,
상기 접두사문자열이 접미사 노드이면 상기 접두사문자열의 최장 접두사를 만족하는 리프를 계산하고, 상기 접두사문자열이 접미사 노드가 아니면 부모 노드의 최근접 접미사 조상 노드를 계산하고 이의 최장 접두사를 만족하는 리프를 계산할 수 있다.
바람직하게는, 방향 그래프를 생성하는 상기 단계는,
상기 일반화접미사트리의 리프가 금지문자열 집합에 속하면 정점을 생성하지 않고, 리프가 진접미사 집합에 속하면 정점을 생성하는 단계; 및
상기 링크함수를 이용하여 최장 접두사가 금지문자열 집합에 속하면 간선을 생성하지 않고, 최장 접두사가 진접미사 집합에 속하면 상기 접두사문자열의 최장 접두사를 만족하는 리프로부터 기존 리프로 도달하는 간선을 생성하는 단계를 포함하여 방향 그래프를 선형 시간에 생성할 수 있다.
본 발명에서 제안하고 있는, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에 따르면, 최근접 접미사 노드를 계산하는 단계, 및 링크함수를 계산하는 단계를 포함하여 방향 그래프를 생성함으로써, 주어진 문자열을 포함하지 않는 문자열 불포함 문제를 선형시간에 방향 그래프를 구성하여 능률적으로 해결할 수 있다.
도 1은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법의 구성을 나타내는 도면.
도 2는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 최근접 접미사 조상 노드를 계산하는 단계의 세부 구성을 나타내는 도면.
도 3은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 일반화접미사트리를 나타내는 도면.
도 4는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 링크함수를 계산하는 단계의 세부 구성을 나타내는 도면.
도 5는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 링크함수를 나타내는 도면.
도 6은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 링크함수 계산 과정을 나타내는 도면.
도 7은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 방향 그래프를 생성하는 단계의 세부 구성을 나타내는 도면.
도 8은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 방향 그래프를 나타내는 도면.
도 2는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 최근접 접미사 조상 노드를 계산하는 단계의 세부 구성을 나타내는 도면.
도 3은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 일반화접미사트리를 나타내는 도면.
도 4는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 링크함수를 계산하는 단계의 세부 구성을 나타내는 도면.
도 5는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 링크함수를 나타내는 도면.
도 6은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 링크함수 계산 과정을 나타내는 도면.
도 7은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 방향 그래프를 생성하는 단계의 세부 구성을 나타내는 도면.
도 8은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 방향 그래프를 나타내는 도면.
이하에서는 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일 또는 유사한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법을 나타내는 도면이다. 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법은, 도 1에 도시된 바와 같이, 금지문자열 집합의 부분 문자열을 표시한 일반화접미사트리의 모든 노드들에 대해 조상들 중 접미사 노드를 만족하는 가장 가까운 노드인 최근접 접미사 조상 노드를 계산하는 단계(S100), 일반화접미사트리의 모든 리프의 문자열에 각 문자를 접두사로 형성한 문자열인 접두사문자열의 최장 접두사를 만족하는 리프를 정의하는 링크함수를 계산하는 단계(S200) 및 링크함수를 이용하여, 문자열을 통과시키는 경우 금지문자열 불포함 여부를 판단하는 방향 그래프를 생성하는 단계(S300)를 포함하여 구성될 수 있다. 방향 그래프에서 사이클의 여부를 검색해서 최장 공통 비상위문자열의 존재 여부를 판단하고, 방향 그래프가 사이클이 없는 유향 그래프(directed acyclic graph; DAG)이면, 방향 그래프의 최장 경로는 F의 최장 공통 비상위문자열과 대응된다. 방향 그래프의 최장 경로로부터 F의 최장 공통 비상위문자열은 최장 경로의 출발 정점으로부터 마지막 정점까지, 각 정점이 나타내는 문자열의 처음 문자를 순차적으로 연결시킴으로써 얻어진다. 만약 방향 그래프에 사이클이 존재한다면, 상기 방법에 따라 무한히 긴 공통 비상위문자열을 생성할 수 있으므로, 최장 공통 비상위문자열은 존재하지 않는다. 이와 같이, 본 발명에서는 최근접 접미사 노드를 계산하는 단계, 및 링크함수를 계산하는 단계를 포함하여 방향 그래프를 생성함으로써, 주어진 문자열을 포함하지 않는 문자열 불포함 문제를 선형시간에 방향 그래프를 구성하여 능률적으로 해결하고 있다.
도 2는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 최근접 접미사 조상 노드를 계산하는 단계의 세부 구성을 나타내는 도면이고, 도 3은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 일반화접미사트리를 나타내는 도면이다. 최근접 접미사 조상 노드를 계산하는 단계(S100)는, 도 2 및 도 3에 도시된 바와 같이, 노드가 금지문자열 집합과 금지문자열 집합의 진접미사 집합의 합집합에 속하는 접미사 노드인 경우에는 자신이고(S210), 노드가 접미사 노드가 아닌 경우에는 조상들 중 접미사 노드를 만족하는 가장 가까운 노드이므로(S220), 각 노드마다 상수 시간에 해결되어 선형시간에 계산할 수 있다.
두 문자열 α, β의 연결(concatenations)을 αβ 라고 표기하고, 문자열 α의 길이를 |α|로 표기하며, α의 i번째 문자는 α[i]로 나타내기로 하는 경우, 공백 문자열의 길이는 |ε|=0이다. 문자열 β가 α[i]α[i+1]…α[j]의 연결이라고 할 때, β를 α[i…j]라 표기하고, β를 α의 부분문자열(substring)이라 한다. 반대로 α를 β의 상위문자열(superstring)이라 한다. 문자열 α에서 i≤|α|일 때 α[ij]를 α의 접두사(prefix)라 하고, i<|α|일 때 α[i…j]를 α의 진접두사(proper prefix)라 한다. 유사하게 i≥1일 때 α[i…|α|]를 α의 접미사(suffix)라 하고, i>1일 때 α[i…|α|]를 α의 진접미사(proper suffix)라 한다.
단말 정점에 있는 숫자는 접미사의 인덱스이고, 간선에 표시된 문자열은 각 간선이 나타내는 부분 문자열로서 접미사 트리의 단말 정점은 각 접미사와 일대일 대응을 이룬다. 따라서 단말 정점의 개수는 접미사 개수의 수와 같다. 그리고 모든 내부 정점은 두 개 이상의 자식을 가지므로 전체 정점의 수는 접미사 개수의 2배를 넘지 않는다. 그리고 각 정점은 문자열을 표시하기 위해 시작과 끝 위치를 저장하므로 접미사 트리를 유지하기 위한 저장 공간은 문자열의 길이에 비례한다. 그러므로 일반화접미사트리는 선형 시간에 생성될 수 있으므로, 일반화접미사트리는 O(∥F∥)에 완료할 수 있다.
금지문자열로 구성된 집합 F={f1, f2, …, fm} 내의 모든 금지문자열 fi(1≤i≤m)의 진접미사 집합을 S라 하자. S에 n개의 서로 다른 원소가 있다고 가정하면 S={s1, …, sn}이다. 일반화접미사트리를 전위(preorder) 탐색하여 모든 노드들에 대해 최근접 접미사 조상 노드를 계산한다. 일반화접미사트리의 정점들의 최근접 접미사 조상 노드를 계산하는 단계(S100)에서, 일반화접미사트리에서 노드가 금지문자열 집합과 금지문자열 집합의 진접미사 집합의 합집합(S∪F)에 속하는 노드를 접미사 정점(suffix-node)이라 한다. 따라서 x가 접미사 노드이면 x의 자식(leaf) 노드 y에 대해 label(x,y)=$를 만족한다. 이때 리프 y를 x의 접미사 노드(suffix-node)라 한다. 정점 x의 최근접 접미사 조상(nearest suffix-ancestor) z는, x의 조상들 중 접미사 정점을 만족하는 가장 가까운 정점을 의미한다. 만약 노드가 접미사 노드이면 자신이 최근접 접미사 조상 노드이고(S110), 그렇지 않으면 부모의 최근접 접미사 조상 노드가 최근접 접미사 조상 노드가 된다(S220). 이 연산은 각 노드마다 상수 시간에 해결되므로 최근접 접미사 조상 노드의 계산은 O(∥F∥)의 선형 시간에 완료될 수 있다.
도 4는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 링크함수를 계산하는 단계의 세부 구성을 나타내는 도면이고, 도 5는 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 링크함수를 나타내는 도면이다. 링크함수를 계산하는 단계(S200)에서는, 도 4 및 도 5에 도시된 바와 같이, 리프가 최근접 접미사 조상 노드이면 접두사문자열의 최장 접두사를 만족하는 리프가 상기 접두사문자열을 만족하는 리프로 판단할 수 있다.
링크함수를 계산하는 단계(S200)에서, 일반화접미사트리의 각 리프 li와 각 문자 σ(∈Σ)의 쌍에 대해 link(li,σ)를 다음과 같이 정의한다. 문자열 σstr(li)의 접두사중 S∪F에 속하는 최장 접두사를 α라 할 때, str(lj)=α를 만족하는 리프 lj를 계산할 수 있다. 일반화접미사트리는 S∪F의 모든 문자열을 나타내므로 lj는 항상 존재한다. 이때, link(li,σ)=lj로 정의된다. 특히, 리프가 최근접 접미사 조상 노드이면 접두사문자열의 최장 접두사를 만족하는 리프가 상기 접두사문자열을 만족하는 리프로 판단할 수 있다.
도 6은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 링크함수를 계산하는 과정을 나타내는 도면이다. 링크함수를 계산하는 단계(S200)는, 도 6에 도시된 바와 같이, 접두사문자열이 접미사 노드이면 접두사문자열의 최장 접두사를 만족하는 리프를 계산하고(S210), 접두사문자열이 접미사 노드가 아니면 부모 노드의 최근접 접미사 조상 노드를 계산하고 이의 최장 접두사를 만족하는 리프를 계산함으로써(S220) 수행될 수 있다.
링크함수를 계산하는 단계(S200)에서는, 일반화접미사트리의 모든 리프의 문자열에 각 문자를 접두사로 형성한 문자열인 접두사문자열의 최장 접두사를 만족하는 리프를 정의한다. 접두사문자열이 S∪F에 속하는 경우에 대해서 link(li,σ)를 계산할 때, 접미사 리스트 sl(i)를 이용한다. sl(i)의 각 원소 중 q≠1인 <p,q>(∈sl(i))에 대해, str(li)=fp[q-1…|fp|]를 만족하는 리프 li를 계산한다. 접두사문자열이 S∪F에 속하지 않는 경우에 대해서 ink(li,σ)를 계산할 때, 다른 리프의 링크함수를 이용한다. 문자열 α를 str(li)의 진접두사 중 S∪F에 속하는 최장 문자열이라고 할 때, L(w)=α를 만족하는 접미사 노드 w를 구한다. w는 L(w)≠str(li)를 만족하는 li의 최근접 접미사 조상이다. 다음으로 li의 부모 노드 x를 계산한다. 만약 label(x,li)≠$이면, w가 최근접 접미사 조상 노드이고, 그렇지 않으면 부모 노드의 최근접 접미사 조상 노드로 계산된다. 이제 lk를 w의 접미사 리프라 하자. 최종적으로 link(li,σ)=link(lk,σ)를 통하여 계산된다.
도 7은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 방향 그래프를 생성하는 단계의 세부 구성을 나타내는 도면이고, 도 8은 본 발명의 일실시예에 따른 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법에서 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 방향 그래프를 나타내는 도면이다. 방향 그래프를 생성하는 단계(S300)는, 도 7 및 도 8에 도시된 바와 같이, 일반화접미사트리의 리프가 금지문자열 집합에 속하면 정점을 생성하지 않고, 리프가 진접미사 집합에 속하면 정점을 생성하는 단계(S310), 및 링크함수를 이용하여 최장 접두사가 금지문자열 집합에 속하면 간선을 생성하지 않고, 최장 접두사가 진접미사 집합에 속하면 접두사문자열의 최장 접두사를 만족하는 리프로부터 기존 리프로 도달하는 간선을 생성하는 단계(S320)를 포함하여 방향 그래프를 선형시간에 생성할 수 있다.
금지문자열 집합의 진접미사 집합으로 정점들을 표시하는 단계(S310)에서, F 내의 모든 금지문자열 fi(1≤i≤m)의 진접미사 집합을 S라 하고, S에 n개의 서로 다른 원소가 있다고 가정하면 즉, S={s1, …, sn}이면 정점 집합(set of vertices) V는 각 si∈S(1≤i≤n)에 대해, 새로운 정점 vi가 대응된다. 따라서 정점 집합 V와 진접미사 집합 S는 1:1 대응된다.
표시된 정점들 사이를 상기 접두사문자열의 최장 접두사를 만족하는 리프로부터 기존 리프로 도달하는 방향으로 간선을 생성하는 단계(S320)의 간선 집합(set of edges) E는 우선 각 si∈S(1≤i≤n)에 대해, Pi σ를 다음과 같이 정의한다. Pi σ={y|y∈S∪F이고 y는 σsi의 접두사이다} 또한, Pi σ의 원소 중 가장 긴 문자열이 sj(∈S)일 때, 대응되는 정점 vj에서 vi로 향하는 간선을 정의한다. 즉, 임의의 두 정점의 쌍 <vj,vi>에 대해서, vj에서 vi로 가는 간선이 존재한다 함은, Pi sj [1]의 원소 중 가장 긴 문자열이 sj임을 의미한다. 또한 Pi σ의 원소 중 가장 긴 문자열이 F에 속할 때, 어떠한 간선도 정의되지 않는다. 각 si∈S와 σ∈Σ에 대해, 하나의 간선만 정의되므로, 각 정점마다 기껏해야 |Σ|만큼의 들어오는 간선만 정의된다. 따라서 상수 크기 알파벳에서, 총 간선의 수는 O(∥F∥)에 바운드된다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
S100: 최근접 접미사 조상 노드를 계산하는 단계
S200: 링크함수를 계산하는 단계
S300: 방향 그래프를 생성하는 단계
S310: 리프가 진접미사 집합에 속하는 경우 정점을 생성하는 단계
S320: 최장 접두사가 진접미사 집합에 속하는 경우 간선을 생성하는 단계
S200: 링크함수를 계산하는 단계
S300: 방향 그래프를 생성하는 단계
S310: 리프가 진접미사 집합에 속하는 경우 정점을 생성하는 단계
S320: 최장 접두사가 진접미사 집합에 속하는 경우 간선을 생성하는 단계
Claims (5)
- 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법으로서, 컴퓨터 계산 알고리즘 엔진에 의해 실행되며,
(1) 금지문자열 집합의 부분 문자열을 표시한 일반화접미사트리의 모든 노드들에 대해 조상들 중 접미사 노드를 만족하는 가장 가까운 노드인 최근접 접미사 조상 노드를 계산하는 단계;
(2) 상기 일반화접미사트리의 모든 리프의 문자열에 각 문자를 접두사로 형성한 문자열인 접두사문자열의 최장 접두사를 만족하는 리프를 정의하는 링크함수를 계산하는 단계; 및
(3) 상기 링크함수를 이용하여, 문자열을 통과시키는 경우 금지문자열 불포함 여부를 판단하는 방향 그래프를 생성하는 단계를 포함하는 것을 특징으로 하는, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법.
- 제1항에 있어서, 최근접 접미사 조상 노드를 계산하는 상기 단계는,
노드가 상기 금지문자열 집합과 상기 금지문자열 집합의 진접미사 집합의 합집합에 속하는 접미사 노드인 경우에 자신이고, 노드가 접미사 노드가 아닌 경우에는 조상들 중 접미사 노드를 만족하는 가장 가까운 노드이므로 각 노드마다 수학적 연산시간이 주어진 입력 자료에 관계없이 일정한 연산 시간을 갖는 상수 시간에 해결되어 선형시간에 계산되는 것을 특징으로 하는, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법.
- 제1항에 있어서, 링크함수를 계산하는 상기 단계는,
리프가 상기 최근접 접미사 조상 노드이면 상기 접두사문자열의 최장 접두사를 만족하는 리프가 상기 접두사문자열을 만족하는 리프인 것을 특징으로 하는, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법.
- 제1항에 있어서, 링크함수를 계산하는 상기 단계는,
상기 접두사문자열이 접미사 노드이면 상기 접두사문자열의 최장 접두사를 만족하는 리프를 계산하고, 상기 접두사문자열이 접미사 노드가 아니면 부모 노드의 최근접 접미사 조상 노드를 계산하고 이의 최장 접두사를 만족하는 리프를 계산하는 것을 특징으로 하는, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법.
- 제1항에 있어서, 방향 그래프를 생성하는 상기 단계는,
상기 일반화접미사트리의 리프가 금지문자열 집합에 속하면 정점을 생성하지 않고, 리프가 진접미사 집합에 속하면 정점을 생성하는 단계; 및
상기 링크함수를 이용하여 최장 접두사가 금지문자열 집합에 속하면 간선을 생성하지 않고, 최장 접두사가 진접미사 집합에 속하면 상기 접두사문자열의 최장 접두사를 만족하는 리프로부터 기존 리프로 도달하는 간선을 생성하는 단계를 포함하는 것을 특징으로 하는, 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100017799A KR101105652B1 (ko) | 2010-02-26 | 2010-02-26 | 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100017799A KR101105652B1 (ko) | 2010-02-26 | 2010-02-26 | 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110098265A KR20110098265A (ko) | 2011-09-01 |
KR101105652B1 true KR101105652B1 (ko) | 2012-01-18 |
Family
ID=44951845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100017799A KR101105652B1 (ko) | 2010-02-26 | 2010-02-26 | 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101105652B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990015114A (ko) * | 1997-08-01 | 1999-03-05 | 구자홍 | 문자연결 정보를 이용한 문자인식기 |
JP2001034623A (ja) | 1999-07-19 | 2001-02-09 | Matsushita Electric Ind Co Ltd | 情報検索方法と情報検索装置 |
KR20080082700A (ko) * | 2007-03-09 | 2008-09-12 | (주)넷피아닷컴 | 키워드의 처리 방법 및 이를 실행하기 위한 프로그램을기록한 기록매체 |
KR20090106937A (ko) * | 2008-04-07 | 2009-10-12 | 삼성전자주식회사 | 철자 오류 보정 시스템 및 방법 |
-
2010
- 2010-02-26 KR KR1020100017799A patent/KR101105652B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990015114A (ko) * | 1997-08-01 | 1999-03-05 | 구자홍 | 문자연결 정보를 이용한 문자인식기 |
JP2001034623A (ja) | 1999-07-19 | 2001-02-09 | Matsushita Electric Ind Co Ltd | 情報検索方法と情報検索装置 |
KR20080082700A (ko) * | 2007-03-09 | 2008-09-12 | (주)넷피아닷컴 | 키워드의 처리 방법 및 이를 실행하기 위한 프로그램을기록한 기록매체 |
KR20090106937A (ko) * | 2008-04-07 | 2009-10-12 | 삼성전자주식회사 | 철자 오류 보정 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20110098265A (ko) | 2011-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gagie et al. | Wheeler graphs: A framework for BWT-based data structures | |
Bowe et al. | Succinct de Bruijn graphs | |
JP2008299867A (ja) | データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法 | |
US9619585B2 (en) | Fast, scalable dictionary construction and maintenance | |
Arnold et al. | Linear time algorithms for generalizations of the longest common substring problem | |
US8775457B2 (en) | Efficient string matching state machine | |
Belazzougui et al. | Bidirectional variable-order de Bruijn graphs | |
Set | Dynamic programming | |
Ann et al. | Efficient algorithms for the block edit problems | |
Katsura et al. | Position heaps for parameterized strings | |
CN106599280A (zh) | 确定网页节点路径信息的方法及装置 | |
Sawada et al. | The lexicographically smallest universal cycle for binary strings with minimum specified weight | |
KR101105652B1 (ko) | 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법 | |
Allauzen et al. | Simple optimal string matching algorithm | |
Schram et al. | SAWdoubler: A program for counting self-avoiding walks | |
Lozano et al. | On the maximum common embedded subtree problem for ordered trees | |
US9165020B2 (en) | String substitution apparatus, string substitution method and storage medium | |
Caminiti et al. | A unified approach to coding labeled trees | |
JP2011244447A (ja) | ハフマン木の記憶方法及びアレイでデータデコーディングする方法 | |
Landau et al. | Two algorithms for LCS consecutive suffix alignment | |
Hendrian et al. | Online algorithms for constructing linear-size suffix trie | |
Duval et al. | Linear computation of unbordered conjugate on unordered alphabet | |
Landau et al. | Two algorithms for LCS consecutive suffix alignment | |
Goto et al. | Speeding up q-gram mining on grammar-based compressed texts | |
Köppl | Computing lexicographic parsings |
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 | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20141204 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161220 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20171213 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |