글루시코프의 건설 알고리즘

Glushkov's construction algorithm

컴퓨터 과학 이론 - 특히 공식 언어 이론 - 빅토르 미하일로비치 글루시코프에 의해 발명된 글루시코프 건설 알고리즘은 주어진 정규식을 동등한 비계수적 유한 자동화(NFA)로 변환한다.따라서, 그것은 정규 표현과 비결정론적 유한 자동자 사이의 다리를 형성한다: 같은 종류의 형식 언어의 두 가지 추상적 표현이다.

텍스트 처리 유틸리티의 "찾아 바꾸기"와 같은 조작에서 고급 검색 패턴을 편리하게 설명하기 위해 정규식을 사용할 수 있다.글루시코프의 알고리즘은 NFA로 변환하는데 사용될 수 있는데, NFA는 상태 수가 정규식의 기호 수, 더하기 1과 같기 때문에 더 나아가 자연적으로도 작다.이후, NFA는 파워셋 구조에 의해 결정론적으로 만들어진 다음, 주어진 정규식에 해당하는 최적의 자동화를 얻기 위해 최소화될 수 있다.후자의 형식은 컴퓨터에서 실행하기에 가장 적합하다.

또 다른, 보다 이론적인 관점에서, 글루시코프의 알고리즘은 NFA와 정규 표현 모두 정확히 같은 언어, 즉 정규 언어를 수용한다는 증거의 일부분이다.글루시코프의 알고리즘의 역학은 유한한 자동자를 정규식으로 변환하는 클레네의 알고리즘이다.글루시코프의 건설로 얻은 오토매틱은 톰슨의 건설 알고리즘이 once-트랜스먼트가 제거되면 획득한 오토매틱과 동일하다.

건설

정규식 e를 주어, Glushkov Construction Algorithm은 e가 받아들인 ( 을 받아들이는 비결정론적 자동화를 생성한다.[1][2]: 59–61 이 건설에는 네 가지 단계가 사용된다.

1단계

표현식의 선형화.e 표현식에 나타나는 알파벳의 각 문자는 이름이 바뀌어서, 각 문자는 새 e e에서 최대 한 번에 발생하게 된다글러시코프의 구조는 기본적으로 e e이(가 지역 L (을 나타낸다는 사실에 의존한다 A를 옛 al.Phabet을 하고 B를 새것으로 한다.

스텝 2a

세트 ) 및 F e)}의 계산첫 번째 ) )의 첫 번째 문자로 발생하는 문자 집합이다두 번째, ) 은 L )의 단어를 끝낼 수 있는 문자 집합이다마지막 하나인 ) ) L의 단어로 발생할 수 있는 문자 쌍의 집합, L( ) L의 길이 2인자의 집합이다그 집합들은 수학적으로 정의된다.

)={ x x L ( ) } } } } } }}} {\ L\}}},
)={ y y y y yy } } } } } } } } } D BL(
)= {u u u u u L ( ) } }} } } }} {\\neq \neq \

이들은 아래에 설명된 바와 같이 표현의 구조에 대해 유도하여 계산한다.

스텝 2b

이 단어가 L )에 속하고, 그렇지 않으면 빈 집합인 e) 집합의 계산.형식적으로 = { ) 이며 여기서 은 빈말을 나타낸다.

3단계

그 지역 언어를 인식하고 순서 행동의 정의, 어느 단어의 P, D, F집합 그 지역 언어를 그 세트에 의해 정의됨으로써 계산, P(e′){P(e')\displaystyle}, D에 의해 정의되(e′){D(e')\displaystyle}, F(e′){F(e')\displaystyle}, Λ(e′){\displaystyle \Lambda(e')}..진 P의 편지에, D의 편지로 끝나고, F, 선택적으로 또한 빈 단어 등을 포함한 길이의 요인 2은, 즉 그것은 언어:.

L′)(PB∗ ∩ B∗ D∩ B∗ FB∗)∪ Λ(e′){\displaystyle L'=(PB^{*}B^ \cap{*}D\cap B^{*}FB^{*})\cup \Lambda(e')}.

그 automaton의 지역 언어 이linearised 표현에 의해 표시된에 대한 계산 공식적으로 Glushkov의 건설로 알려져 있다.그 automaton의 건설은 고전 건설 사업:연결, 교차로와 automaton 클레임을 사용하여 처리할 수 있다.

4단계.

A의 원래 편지에 의해 각 인덱싱 된 B는 linearisation을 제거하십시오

로봇 같은 Glushkov의 알고리즘에 의해 구성되어 선형 버전 –.
로봇 같은 Glushkov의 알고리즘-최종 버전에 의해 구성되어.

Consider[2]:60–61는 정규식 e)(a(b)∗)∗+(b는)∗{\displaystyle e=(a(농양)^{*})^ᆮ+(영혼).^{*}}.

  1. 선형화된 버전은
    =( ( )+ 4a ) ∗ ∗ ∗ ∗ { { { { { { { { { { { { {{{ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { {
    글자들은 색인을 추가하여 선형화되었다.
  2. 선형 표현식의 첫 번째 문자, 마지막 문자, 길이 2의 요인 중 P, D, F 세트는 각각 다음과 같다.
    P(e′)){1, b4}D(e′)){1, b35}F(e′)){12,11하나, 2b3b31, b32, b455b4}{\displaystyle{\begin{정렬}(e')&, =\{a_{1},b_{4}\}\\D(e')&, =\{a_{1},b_{3},a_{5}\}\\F(e')&amp을 말한다.=\{{1}a_}a_{1}a_{1}4
    빈 단어는 언어에 속하므로 )= {
  3. 지역 언어의 자동화
    알파벳의 다섯 글자 각각에 1과 1로 표시된 초기 상태를 포함한다.
    ={ a ,, , ,
    1에서 P의 두 상태로의 전환이 있고, [\에 대한 x에서 y로 전환이 있으며 D의 세 상태가 최종이며, 이것이 상태 1이다.문자 y로의 모든 전환은 문자 y에 레이블을 붙인다.
  4. 지수를 삭제하여 ( ) 에 대한 자동화를 얻으십시오.

문자 집합 계산

집합 P, D, F, λ계산은 정규식 을 통해 유도적으로 이루어진다.∅, ε(빈 언어와 빈 단어를 포함하는 싱글톤 언어의 기호), 문자, 그리고 연산 결과 + ,{, {,∗, ∗{\ +,\를 제공해야 한다.

  1. λ의 경우, has은 다음과 같다.
    ( )=
    () = {}} (\
    λ( )=
    ( + )= ∪( ) ∪ ( )∪ \ ( )
    ( e )= ⋅( ) ⋅ ( )⋅ \ ()
    ( )= {
  2. P의 경우, 한 사람이
    ( )= ()= P
    ( )={ 각 문자 a에 대해,
    ( + )= ( ) (f) P
    ( f)= P( ) () ()
    ( )= ( )

    D에도 동일한 공식이 사용되는데, 단, 다음 공식을 사용하는 제품은 제외한다.

    ( f)= ( f) D( ) ( ) (
  3. 길이 2의 요인 집합에 대해서는 다음과 같다.
    ( a ) =F ()= ( ) = F ()=
    ( + )= ( ) = ()
    ( )= F( ) = () ( ) () f
    ( )= ( ) D( ) ( e)

가장 비용이 많이 드는 연산은 F의 연산을 위한 세트 생산물이다.

특성.

획득한 오토마톤은 비결정론적이며, 정규식의 글자 수만큼의 상태와 1을 더한다.나아가 글루시코프의 오토매틱은 ε-트랜스먼트를 제거할 때 톰슨의 오토매틱과 동일한 것으로 나타났다[3]: 215 [4].

응용 프로그램 및 결정론적 표현식

표현식에 의한 자동 계산은 종종 발생한다; 그것은 검색 기능, 특히 Unix grep 명령에 의해 체계적으로 사용되어 왔다.마찬가지로, XML의 규격도 그러한 구조를 사용한다. 보다 효율을 높이기 위해 결정론적 표현이라고 불리는 특정 종류의 정규식이 연구되었다.[4][5]

참고 항목

참고 및 참조

  1. ^ V.M. Glushkov (1961). "The abstract theory of automata". Russian Mathematical Surveys (in Russian). 16 (5): 1–53. Bibcode:1961RuMaS..16....1G. doi:10.1070/rm1961v016n05abeh004112.
  2. ^ a b Jean-Éric Pin (Nov 2016). Mathematical Foundations of Automata Theory (PDF). Paris.
  3. ^ Jacques Sakarovitch (Feb 2003). Éléments de théorie des automates. Paris: Vuibert. ISBN 978-2711748075.
  4. ^ a b Jacques Sakarovitch (2009). Elements of Automata Theory. Cambridge: Cambridge University Press. ISBN 9780521844253.
  5. ^ Brüggemann-Klein, Anne (1993). "Regular Expressions into Finite Automata". Theoretical Computer Science. 12 (2): 197–213. doi:10.1016/0304-3975(93)90287-4.

외부 링크