* <math>q_{start}</math> is a "source".<ref>해당 상태에 대해 들어오는 간선이 없다는 것을 의미한다.</ref>
* <math>q_{start}</math> is a "source".<ref>해당 상태에 대해 들어오는 간선이 없다는 것을 의미한다.</ref>
* <math>q_{end}</math> is a "sink".<ref>해당 상태에서 출발하는 간선이 없다는 것을 의미한다.</ref>
* <math>q_{end}</math> is a "sink".<ref>해당 상태에서 출발하는 간선이 없다는 것을 의미한다.</ref>
* <math>q_{start},\,\, q_{end}</math> 외의 모든 상태 쌍 <math>(q, r)</math>에 대해 전이는 하나의 정규표현식으로 라벨링된다.
* <math>q_{start},\,\, q_{end}</math> 외의 모든 상태 쌍 <math>(q, r)</math>에 대한 전이는 하나의 정규표현식으로 라벨링된다.
* 예외적으로, 어떤 GNFA에 대해 <math>Q = \{q_{start},\,\, q_{end}\}</math>라면, <math>q_{start} \rightarrow q_{accept}</math> 사이의 전이에 대한 라벨이 정규표현식 R이며, 이에 대한 언어는 L(R)이다.
* 예외적으로, 어떤 GNFA에 대해 <math>Q = \{q_{start},\,\, q_{end}\}</math>라면, <math>q_{start} \rightarrow q_{accept}</math> 사이의 전이에 대한 라벨이 정규표현식 R이며, 이에 대한 언어는 L(R)이다.
GNFA는 기본적으로 전이가 정규표현식으로 라벨링된 NFA일 뿐이므로, NFA가 주어지면 그와 동치인 GNFA로 치환할 수 있다. 이때 치환을 하는 절차는 아래와 같다.
GNFA는 기본적으로 전이가 정규표현식으로 라벨링된 NFA일 뿐이므로, NFA가 주어지면 그와 동치인 GNFA로 치환할 수 있다. 이때 치환을 하는 절차는 아래와 같다.
# GNFA는 반드시 하나의 source와 하나의 sink를 가져야 하므로, <math>q_{start}</math>와 <math>q_{accept}</math>를 추가한다.
# [[파일:Figure 2. DFA to GNFA.png|섬네일|Figure 2. DFA to GNFA|250x250픽셀]]GNFA는 반드시 하나의 source와 하나의 sink를 가져야 하므로, <math>q_{start}</math>와 <math>q_{accept}</math>를 추가한다.
# <math>q_{start}</math>와 원래의 시작 상태에 대해 ε-transition을 한다.
# <math>q_{start}</math>와 원래의 시작 상태에 대해 ε-transition을 한다.
#* 이는 <math>\delta(q_{start}, q_0)</math>와 같이 표현되며, 다른 상태로는 전이되지 않는다.
#* 이는 <math>\delta(q_{start}, q_0)</math>와 같이 표현되며, 다른 상태로는 전이되지 않는다.