비결정론적 유한 오토마톤

Nondeterministic finite automaton
(0 *1) 1 (0 31)의 NFA.
해당 언어의 DFA에는 적어도 16개의 상태가 있습니다.

오토마타 이론에서, 유한 상태 기계는 결정론적 유한 오토마톤(DFA)이라고 불린다.

  • 각각의 전이는 소스 상태와 입력 기호에 의해 고유하게 결정된다.
  • 각 상태 전환에는 입력 기호를 읽어야 합니다.

Non-deterministic finite automaton(NFA; 비결정적 유한 오토마톤) 또는 비결정적 유한 상태 기계는 이러한 제약사항을 따를 필요가 없습니다.특히, 모든 DFA는 NFA이기도 합니다.NFA라는 용어는 DFA가 아닌 NFA를 가리켜 좁은 의미로 사용되는 경우가 있지만 이 문서에서는 사용되지 않습니다.

서브셋 구성 알고리즘을 사용하여 각 NFA를 동등한 DFA, 즉 동일한 형식 [1]언어를 인식하는 DFA로 변환할 수 있습니다.DFA와 마찬가지로 NFA는 정규 언어만 인식합니다.

NFA는 1959년 마이클 O. 라빈과 다나 [2]스콧에 의해 도입되었으며, 그들은 또한 DFA와 동등함을 보여주었다.NFA는 정규 표현의 구현에 사용됩니다.Thompson의 구성은 문자열 패턴 매칭을 효율적으로 수행할 수 있는 NFA에 정규식을 컴파일하는 알고리즘입니다.반대로, Kleene의 알고리즘을 사용하여 NFA를 정규식으로 변환할 수 있습니다(입력 오토마톤에서는 일반적으로 크기가 기하급수적입니다).

NFA는 여러 가지 방법으로 일반화되었다. 예를 들어, θ-moves, 유한 상태 변환기, 푸시다운 오토마타, 교대 오토마타, θ-오토마타확률론적 오토마타이다.DFA 외에 NFA의 다른 알려진 특별한 경우로는 모호하지 않은 유한 오토마타(UFA)와 자기 검증 유한 오토마타(SVFA)가 있다.

비공식 소개

NFA의 동작을 설명하는 방법은 두 가지가 있으며, 두 가지 모두 동일합니다.첫 번째 방법은 NFA라는 이름으로 비결정론을 이용한다.각 입력 기호에 대해 NFA는 모든 입력 기호가 소비될 때까지 새 상태로 전환됩니다.각 단계에서 자동화는 비결정적으로 적용 가능한 전환 중 하나를 "선택"입력을 완전히 소비한 후 수용 상태로 이어지는 일련의 선택과 같은 적어도 하나의 "행운의 실행"이 존재하는 경우, 수락됩니다.그렇지 않으면, 즉 선택 시퀀스가 모든 입력을[3] 소비하여 수용 상태로 이어질 수 없는 경우 입력은 [4]: 19 [5]: 319 거부됩니다.

두 번째 방법으로 NFA는 입력 심볼의 열을 하나씩 소비합니다.각 단계에서 두 개 이상의 전환이 적용될 때마다 자신을 적절한 수의 복사본으로 "클론화"하고 각 복사본은 서로 다른 전환에 따릅니다.적용할 수 있는 전환이 없는 경우 현재 복사본은 막다른 골목에 있으며 "디지"합니다.입력 전체를 소비한 후 복사본 중 하나가 승인 상태가 되면 입력이 받아들여지고 그렇지 않으면 [4]: 19–20 [6]: 48 [7]: 56 거부됩니다.

형식적 정의

정식 정의에 대한 보다 기본적인 소개는 오토마타 이론을 참조하십시오.

오토마톤

NFA5개의 태플 로 정식으로 표현되며 다음과 같이 됩니다.

  • 유한 Q Q
  • 입력 기호(\유한 세트.
  • 함수 { \ : × P () \ Q \ \ \\{
  • 초기(또는 시작) 0{ _ { } \ Q} 。
  • F또는 최종) 구별되는 일련의 F(\ F

여기서 P {style { Qdisplaystyle 의 파워셋을 나타냅니다.

인식된 언어

M ( ,、 、、 、 , F ) { M = ( Q , \ , \ signa , q, F )}display display display 、 displaydisplay 、 、 L ( ) 、 L( Mdisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplay L ( M )로 정의됩니다.

의 비공식적인 설명에 느슨하게 대응하여 w 2. . \ w=_ {_ {2} ...에는 몇 가지 동등한 공식 정의가 있습니다.는) M { M에 의해 받아들여집니다.

  • {\ w 과 같은 일련의 r ,. . , n { r , r _ { , _{ n Q { { Q } 에 하는 경우 허용됩니다.
    1. i + , a + 1) { r {} \ display ( _ { , a { + } ,\ i =, \ , n- 1
    2. nF { _ { }\ in F 。
즉, 첫 번째 조건은 기계가 시작 0에서 시작된다는 것입니다.두 번째 조건에서는 w {\ w의 각 문자가 지정되면 머신은 {\에 따라 상태 간에 이행합니다.마지막 조건에서는 w{\w}의 입력으로 인해 m이 발생할 경우 w{\ w 허용됩니다.accepting 상태 중 하나에서 정지합니다.Ww가 MM에 허용되기 는 모든 상태 시퀀스가 허용 상태로 종료될 필요가 없으며, 허용 상태이면 충분합니다.그렇지 않으면 w 에 따라에서 F 상태로 이행하는 것이 전혀 불가능할 경우 오토마톤은 문자열을 거부한다고 합니다.M M에서 사용할 수 있는 M(\ M에서 인식되는 언어이며이 언어는 L)(\ L[5]: 320 [6]: 54 됩니다.
  • 「」(0 w )가 F \F\ =\인 경우 w w 받아들여집니다. × \\display \ 다음과 같이 재귀적으로 정의됩니다.
    1. "r" { }({ \displaystyle r\}) "\ \ilon }은빈 문자열입니다.
    2. A에 a r ( , x ),a){ \ displaystyle ^ { * } ( r , )=\ _ { ' \ \ \ r * * * ( r , x ) \ cupr , a )
r {\\)}은 x{\ x를 소비함으로써 상태 r{\ r에서 도달 가능한 모든 상태의 집합입니다. ww}는[4]: 21 [7]: 59 ww를 으로써F\F의 허용 상태에 시작 0(\0})에서 도달할 수 있는 경우에 사용할 수 있습니다.

초기 상태

위의 자동 정의에서는 단일 초기 상태를 사용하며, 이는 필요하지 않습니다.NFA는 초기 상태 세트로 정의되는 경우가 있습니다.여러 초기 상태를 가진 NFA를 단일 초기 상태를 가진 NFA로 변환하는 간단한 구성이 있으며, 이를 통해 편리한 표기가 제공됩니다.

M상태 다이어그램.상태 p에서 1을 읽으면 p 또는 q로 이어질 수 있으므로 확정적이지 않습니다.
입력 문자열 "10"에서 가능한 모든 M 실행.
입력 문자열 "1011"에서 가능한 모든 M 실행.
레이블: 입력 기호, 노드 레이블: 상태, 녹색: 시작 상태, 빨간색: 수락 상태.

자동 이진 포함)은 입력이1로 끝나는지 여부를 결정합니다. M = ( { p, , { , , ", , { q ) { M ( \ { p , \ , \ { , \ , \ , \ , {} )} ) 여기서 전환은 합니다.왼쪽 위 그림):

입력
0 1

( ,) { p , ) 에는 복수의 상태가 포함되어 있기 에 M{ M}은 확정적이지 않습니다.M M 언어는 정규 표현에서 주어진 정규 언어로 설명할 수 있습니다. (0 1)*1.

입력 문자열 "1011"에 대해 가능한 모든 상태 시퀀스가 아래 그림에 표시됩니다.하나의 상태 시퀀스가 위의 정의를 충족하기 때문에 문자열은 M{\ M 의해 받아들여집니다.다른 시퀀스가 실패해도 상관없습니다.이 그림은 두 가지 방법으로 해석할 수 있습니다.

  • 의 "lucky-run" 설명과 관련하여, 그림의 각 경로는 M의 선택 순서를 나타냅니다.
  • "복제" 설명의 경우, 각 세로 열은 특정 시점에 클론을 나타내며, 노드에서 나오는 여러 개의 화살표는 복제를 나타내며, "복제"를 나타내는 화살표가 없는 노드는 클론의 죽음을 나타냅니다.

같은 그림을 두 가지 방법으로 읽을 수 있는 가능성은 위의 두 가지 설명의 동등성을 나타낸다.

  • 의 공식 정의 중 첫 번째를 고려할 때 "1011"은 M {\ M 시퀀스 , , , r 3, r 4 , ,q{\ { \ \ displayle 0 , r _ , r _ 1 , r _ r _ _ 4할 수 있기 때문에 허용됩니다.tions 1 ~3 。
  • 두 번째 공식 정의에 대해 상향식 계산에서는 ( p , ) { ( \ \^ { * ( , \ \ { p \ ( , ) ( , ) { , 、 { p ( \ \ ^ { p } ) ( 1 、 p ( ) ( ()=\{ cup \{\cup "" ( "" (p,101) { { \display () 이 세트는 { {에서 분리되지 않으므로 문자열 "1011"이 허용됩니다.

반면 문자열 "10"은 마지막 0 기호를 읽는 것으로 유일한 허용 q {q에 도달할 수 없기 때문에 M{ M 거부됩니다(그 입력에 대해 가능한 모든 상태 시퀀스가 오른쪽 상단에 표시됩니다).번째 "1"을 한 후q\displaystyle q에 도달할 수 , 이는 입력 "10"을 받아들이는 것이 아니라 입력 문자열 "1"을 받아들이는 것을 의미합니다.

DFA와의 동등성

결정론적 유한 오토마톤(DFA)은 각 상태와 심볼에 대해 전이 함수가 정확히 하나의 상태를 갖는 특수한 종류의 NFA로 볼 수 있다.따라서, DFA에 의해 인정될 수 있는 모든 공식 언어가 NFA에 의해 인정될 수 있다는 것은 분명하다.

반대로 각 NFA에는 동일한 공식 언어를 인식할 수 있는 DFA가 있습니다.DFA는 파워셋 구조를 사용하여 구성할 수 있습니다.

이 결과는 NFA가 추가적인 유연성에도 불구하고 일부 DFA에서 인식할 수 없는 언어를 인식할 수 없음을 보여준다.구축이 용이한 NFA를 보다 효율적으로 실행 가능한 DFA로 변환하는 것도 실무에서 중요하다.단, NFA가 n개의 상태를 갖는 경우 결과 DFA는 })의 상태를 가질 수 있으며, 이로 인해 대규모 NFA에서는 구축이 실용적이지 않을 수 있습니다.

µ-moves가 있는 NFA

γ-moves(NFA-)를 갖는 비결정론적 유한 오토마톤은 NFA에 대한 추가적인 일반화이다.이러한 오토마톤에서는 빈 문자열θ에 전이함수를 추가 정의한다.입력 기호를 소비하지 않는 천이를 θ-트랜지션이라고 하며 상태 다이어그램에 "θ"라는 화살표로 나타냅니다. θ-트랜지션은 현재 상태를 정확하게 알 수 없는 시스템을 모델링하는 편리한 방법을 제공합니다. 즉, 시스템을 모델링하고 현재 상태(입력 처리 후)가 명확하지 않은 경우string)은 q 또는 q'이어야 합니다.그러면 이 두 상태 사이에 '트랜지션'을 추가할 수 있기 때문에 자동화가 동시에 두 상태에 놓입니다.

형식적 정의

NFA-tuple5개의 태플 로 정식으로 표현되며 다음과 같이 됩니다.

  • 상태 Q Q
  • 알파벳(\라고 하는 입력 기호 집합
  • 전이 함수 :× ( { } ) (Q )\ \
  • 초기(또는 시작) Q { _ { 0} \ Q }
  • F또는 최종) 구별되는 일련의 F(\ F

여기서 P { {P Q Q)의 파워셋을 나타내고 denotes는 빈 문자열을 나타냅니다.

상태 또는 상태 집합의 폐쇄

경우E는 트랜지션 함수 의 트랜지션(하는 경우에서 도달 가능한 상태 세트를 ,. ., k ( \ {1} , , { k } )이렇게 되어 있습니다.

  • 1 q { _ {1} q} ,
  • for each , and
  • k { _ {k } =} 。

{ E {displaystyleq엡실론 폐쇄('-closure'라고도 합니다.

NFA 상태의 P(\ P 폐쇄는 전환 후에 PP) 내의 상태에서 도달 가능한 상태의 집합으로 정의됩니다.정식으로 P Q\ P \ E( )q P E ( q ) \ E ( P ) \ cup \ cup _ \ P }E )를 정의합니다.

확장 전환 기능

"-moves"가 없는 NFA와 마찬가지로 NFA-"의 전이 함수 문자열로 확장할 수 있습니다.비공식적으로 \ 에서 시작하여 읽었을 때 자동이 도달했을 가능성이 있는 모든 상태의 집합을 나타냅니다 w { * } } 。 다음과 같이 재귀적으로 정의할 수 있습니다.

  • \\displaystyleq 상태 Q,\Q,\E는 엡실론 폐쇄를 나타냅니다.
비공식: 빈 문자열을 읽으면 qq qdisplaystyle q.의 엡실론 닫힘 상태가 될 수 있습니다.
  • a ) )E(, a) 、 { \ ^ { * (q , w ) = \ { \ \ display { * , w ) } ( \) 。
비공식적으로 읽으면 재귀적으로 계산된 집합 ( ( ,w )의 상태에서 r ( , w )로 자동화할 수 있습니다.그 후, \^{* (q , )를 읽으면, \ a가 할 수 있습니다 r(를 닫힘의 임의의 상태로 만듭니다 ( , )

자동화는 다음과 같은 경우 w w 수신할 수 있습니다.

즉, w 하여 읽으면 자동이 상태.\0에서.\F의 허용 상태로 구동됩니다.[4]: 25

M상태 다이어그램

M(\ M2진수 알파벳을 사용하여 짝수 0 또는 짝수 1 중 어느 것을 입력에 포함시킬지 결정하는 NFA-θ로 .0 오카렌스는 짝수 오카렌스이기도 합니다.

표기법에서는 M ({ 0 , 1, S, , S , { , , , 0, { , ){ M = ( \ { , { 1 , S _ , S _ { ) 。

입력
0 1 ε
S0 {} {} {S1, S3}
S1 {S2} {S1} {}
S2 {S1} {S2} {}
S3 {S3} {S4} {}
S4 {S4} {S3} {}

M2개의 DFA의결합으로볼 수 있습니다.하나는 가 { 이고 다른 하나는 상태가{ \{입니다.(\ M정규 1 0 10 ) ( 10 1) ( \ style (^ * ) ^ { * 0 ( ^ { * } ^ { * 1 * )^*} } 。을 사용하여 합니다.「-」를 사용해 출력합니다.

NFA와의 동등성

NFA-θ가 NFA와 동등함을 나타내기 위해 먼저 NFA는 NFA-θ의 특수한 경우이므로 모든 NFA-θ에 대해 동등한 NFA가 존재함을 보여 줍니다.

엡실론이 ( , , ,) ,{ M = ( Q , \ , \ , \ , q _ { , F} )인 NFA는 M (, 、 , 0, )를 정의합니다

그리고.

,a ) , a) 、 \ \ } 、、 ∗ 、 \ a \

M 디스플레이 의 전환 기능을 해야 합니다에 대한 확장자는displaystyle\displaystyle\displaystyleBy construction, has no ε-transitions.

의 길이에 w에 대해q ) 0 )= display = \ w 인덕션으로 할 수 있습니다

이를 바탕으로 w)\F'\() ( 0 F {\ styleta을 표시할 수 있습니다

  • w 、 { w = \ 인 경우 이는 F . { F에 따릅니다.
  • 그렇지 않으면 v a{\va ( \ v \ \ Sigma { * } ) . \a \ \ Sigma} 로 합니다.
0 ) 0, w ) q 0 ) =\style \w) =\ } 및 { F' F 그래도 방향을 표시해야 합니다.
  • 0) {(가) { { F\{ { 상태일 경우 {가)를 포함합니다.
  • 0) {{ \0}(() q0 { 0F {}\ F {^*}(하는 경우 포함됩니다
  • 만약 δ∗(q0, w){\displaystyle\delta '^{*}(q_{0}일 경우 ,w)′}}그때 E(q0)∩ F{\displaystyle E(q_{0})\cap F}[ 밝히다]의 상태에 있어야 합니다 0,{\displaystyle q_{0},}과qq 0∉ F,{\displaystyle q_{0}\not \in F,가 들어 있δ ∗(q0, w))⋃ r∈ δ ∗(q, v)E(δ(r,.a)). [4]: 26–27

NFA는 DFA와 같기 때문에 NFA-γ도 DFA와 같다.

닫힘 속성

특정 NFA N(s) 및 N(t)의 언어 조합을 받아들이는 NFA 구성.언어연합의 입력문자열 w에 대해 합성오토마톤은 적절한 서브오토마톤(N(s) 또는 N(t))의 시작상태(좌측색원)로의 θ-전이를 따르며, w에 따라 허용상태(우측색원)에 도달하면 다른 θ-전이에 의해 상태 f에 도달할 수 있다.γ-변화에 의해 N(s)과 N(t)모두 DFA라고 해도 구성 NFA는 결정적이지 않다.반대로, 조합 언어(DFA 2개라도)의 DFA를 구축하는 것은 훨씬 복잡하다.

NFA에 의해 인식된 언어 세트는 다음 조작으로 닫힙니다.이러한 폐쇄 연산은 정규식으로 NFA를 구성하는 Thompson의 구성 알고리즘에서 사용됩니다.또한 NFA가 정규 언어를 정확하게 인식한다는 것을 증명하기 위해 사용될 수 있다.

  • Union(그림 참조), 즉 언어1 L이 일부 NFA A1일부2 A2 의해 받아들여지면 언어1 L∪L2 받아들이는 NFAu A를 구축할 수 있다.
  • 교집합. 마찬가지로 A22 A에서1 LfaLi1 받아들이는 NFA A를 구성할 수 있다.
  • 연결
  • 부정. 마찬가지로 A에서1 δ*\L1 받아들이는 NFAn A를 구성할 수 있습니다.
  • 클린 클로저

NFA는 γ-moves(NFA-θ)를 갖는 비결정론적 유한 오토마톤에 해당하므로 위의 폐색성은 NFA-θ의 폐색 특성을 사용하여 증명된다.

특성.

시스템은 지정된 초기 상태에서 시작하여 알파벳에서 일련의 기호를 읽습니다.자동화는 상태 전이 함수 δ를 사용하여 현재 상태를 사용하여 다음 상태를 판별합니다.기호는 방금 읽었거나 빈 문자열입니다.단, NFA의 다음 상태는 현재 입력 이벤트뿐만 아니라 임의의 수의 후속 입력 이벤트에 따라 달라집니다.이러한 후속 이벤트가 발생할 때까지 기계가 어떤 상태인지 판단할 수 없습니다."[8]자동화가 판독을 종료했을 때, NFA는 문자열을 받아들인다고 하고, 그렇지 않으면 문자열을 거부한다고 합니다.

NFA가 받아들이는 모든 문자열의 집합은 NFA가 받아들이는 언어입니다.이 언어는 정규 언어입니다.

모든 NFA에 대해 동일한 언어를 받아들이는 결정론적 유한 오토마톤(DFA)을 찾을 수 있습니다.따라서 (아마도) 더 단순한 머신을 구현하기 위해 기존 NFA를 DFA로 변환할 수 있습니다.는 파워셋 구조를 사용하여 수행할 수 있으며, 이로 인해 필요한 상태의 수가 기하급수적으로 증가할 수 있습니다.파워셋 구성에 대한 공식적인 증거는 파워셋 구성 문서를 참조하십시오.

실행

NFA를 실장하는 방법에는 여러 가지가 있습니다.

  • 동등한 DFA로 변환합니다.경우에 따라서는, 이 때문에,[9] 상태수가 기하급수적으로 증가하는 일이 있습니다.
  • NFA가 현재 있을 수 있는 모든 상태의 데이터 구조를 유지합니다.입력 심볼을 사용할 때 모든 현재 상태에 적용되는 전환 함수의 결과를 통합하여 다음 상태 집합을 가져옵니다. "-move"가 허용될 경우 이러한 이동("-closure")에 의해 도달 가능한 모든 상태를 포함합니다.각 단계에는 최대 계산2(s는 NFA의 상태 수)이 필요합니다.마지막 입력 기호를 사용할 때 현재 상태 중 하나가 최종 상태일 경우 기계는 문자열을 받아들입니다.길이 n의 [7]: 153 문자열은 시간 O(ns2) 및 공간 O(s)로 처리할 수 있다.
  • 여러 복사본을 만듭니다.NFA는 각 n방향 결정에 대해 기계 복사본을 생성합니다.각각 다른 상태가 됩니다.마지막 입력 기호를 소비할 때 NFA의 복사본이 하나 이상 수락 상태에 있는 경우 NFA는 수락합니다.(각 NFA 상태에 대해 1대의 머신이 존재할 수 있기 때문에 이 경우에도 NFA 상태의 수에 관한 리니어 스토리지가 필요합니다).
  • NFA의 트랜지션 구조를 통해 토큰을 명시적으로 전파하고 토큰이 최종 상태에 도달할 때마다 일치시킵니다.이것은 NFA가 이행을 트리거한 이벤트에 대한 추가 컨텍스트를 인코딩해야 할 때 도움이 될 수 있습니다(이 기술을 사용하여 객체 참조를 추적하는 구현의 경우 Tracematches를 참조하십시오).[10]
  • PSPACE-complete는 NFA가 지정된 경우 범용인지, [11]즉 NFA가 수용하지 않는 문자열이 있는지 테스트합니다.포함 문제에서도 마찬가지다. 즉, 두 개의 NFA가 주어진 경우, 하나의 언어가 다른 언어의 하위 집합이다.

NFA 적용

NFA와 DFA는 언어가 NFA에 의해 인식되면 DFA에 의해 인식된다는 점에서 동등합니다.그러한 동등성의 확립은 중요하고 유용하다.특정 언어를 인식하기 위해 NFA를 작성하는 것이 해당 언어에 대한 DFA를 작성하는 것보다 훨씬 쉬울 수 있기 때문에 유용합니다.NFA는 계산 이론에서 많은 중요한 속성을 확립하기 위해 필요한 수학적 작업의 복잡성을 줄이기 위해 사용될 수 있기 때문에 중요하다.예를 들어, DFA보다 NFA를 사용하여 정규 언어의 폐쇄 특성을 증명하는 것이 훨씬 쉽습니다.

「 」를 참조해 주세요.

메모들

  1. ^ Martin, John (2010). Introduction to Languages and the Theory of Computation. McGraw Hill. p. 108. ISBN 978-0071289429.
  2. ^ Rabin, M. O.; Scott, D. (April 1959). "Finite Automata and Their Decision Problems". IBM Journal of Research and Development. 3 (2): 114–125. doi:10.1147/rd.32.0114.
  3. ^ 선택 시퀀스는 현재 입력 기호에 적용할 수 있는 전환이 없는 "막다른 골목"으로 이어질 수 있습니다. 이 경우 성공하지 못한 것으로 간주됩니다.
  4. ^ a b c d e John E. Hopcroft and Jeffrey D. Ullman (1979). Introduction to Automata Theory, Languages, and Computation. Reading/MA: Addison-Wesley. ISBN 0-201-02988-X.
  5. ^ a b Alfred V. Aho and John E. Hopcroft and Jeffrey D. Ullman (1974). The Design and Analysis of Computer Algorithms. Reading/MA: Addison-Wesley. ISBN 0-201-00029-6.
  6. ^ a b Michael Sipser (1997). Introduction to the Theory of Computation. Boston/MA: PWS Publishing Co. ISBN 0-534-94728-X.
  7. ^ a b c John E. Hopcroft and Rajeev Motwani and Jeffrey D. Ullman (2003). Introduction to Automata Theory, Languages, and Computation (PDF). Upper Saddle River/NJ: Addison Wesley. ISBN 0-201-44124-1.
  8. ^ FOLDOC 무료 온라인 컴퓨팅 사전 유한 상태 기계
  9. ^ http://cseweb.ucsd.edu/~ccalabro/fsa.pdf[베어 URL PDF]
  10. ^ Alan, C., Avgustinov, P., Christensen, A. S., Hendren, L., Kuzins, S., Lotak, O., de Moor, O., Sereni, D., Sittampalam, G. 및 Tible, 2005.Wayback Machine에서 AspectJ Archived 2009-09-18에 자유 변수를 사용한 트레이스 매칭을 추가합니다.오브젝트 지향 프로그래밍, 시스템, 언어 및 애플리케이션에 관한 제20회 ACM SIGPLAN 회의의 속행(2005년 10월 16일~20일)OPSLA '05년ACM, 뉴욕, 뉴욕, 345-364
  11. ^ 이력: 최신 프레젠테이션에 대해서는 [1]을 참조해 주세요.

레퍼런스

  • M.O. 라빈과 D.Scott, "Finite Automata and the Decision Problems", IBM Journal of Research and Development, 3:2(1959) 페이지 115–125.
  • 마이클 십서, 계산 이론 입문보스턴, PWS.1997. ISBN 0-534-94728-X. (섹션 1.2: 비결정론, 페이지 47-63 참조).
  • 존 E. 홉크로프트와 제프리 D.Ulman, 자동타 이론, 언어, 계산 입문, Adison-Wesley Publishing, Reading Massachusetts, 1979.ISBN 0-201-02988-X. (2장 참조)