Generalized NFA: 두 판 사이의 차이
youngwiki
| 28번째 줄: | 28번째 줄: | ||
*# <math>w_i \in L(R_i)\,\,s.t.\,\, R_i = \delta(q_{i-1}, q_i)</math> | *# <math>w_i \in L(R_i)\,\,s.t.\,\, R_i = \delta(q_{i-1}, q_i)</math> | ||
즉, 이는 전이가 단순 문자 대신 정규표현식 <math>R_i</math>로 라벨링되어 있기 때문에, 해당 전이를 통과할 때는 입력 문자열 조각 <math>w_i</math>가 반드시 그 정규표현식이 표현하는 언어 안에 있어야 한다. | 즉, 이는 전이가 단순 문자 대신 정규표현식 <math>R_i</math>로 라벨링되어 있기 때문에, 해당 전이를 통과할 때는 입력 문자열 조각 <math>w_i</math>가 반드시 그 정규표현식이 표현하는 언어 안에 있어야 한다. | ||
==NFA to GNFA== | |||
GNFA는 기본적으로 전이가 정규표현식으로 라벨링된 NFA일 뿐이므로, NFA가 주어지면 그와 동치인 GNFA로 치환할 수 있다. 이때 치환을 하는 절차는 아래와 같다. | |||
# GNFA는 반드시 하나의 source와 하나의 sink를 가져야 하므로, <math>q_{start}</math>와 <math>q_{accept}</math>를 추가한다. | |||
# <math>q_{start}</math>와 원래의 시작 상태에 대해 ε-transition을 한다. | |||
#* 이는 <math>\delta(q_{start}, q_0)</math>와 같이 표현되며, 다른 상태로는 전이되지 않는다. | |||
# <math>q_{accept}</math>와 원래의 accept 상태 <math>q_j \in F</math>에 대해 ε-transition을 한다. | |||
#* 이는 <math>\forall q_j \in F.\,\,\delta(q_{start}, q_j)</math>와 같이 표현되며, 다른 상태로는 전이되지 않는다. | |||
# 중복 전이 제거: 같은 두 상태 사이에 전이가 여러개 있으면 합집합(<math>\cup</math>)으로 묶어서 하나로 만든다. | |||
# 존재하지 않는 전이는 <math>\empty</math>와 같이 표현한다. | |||
==각주== | ==각주== | ||
2025년 9월 29일 (월) 01:25 판
상위 문서: Finite Automata
개요
Generalized NFA(GNFA)는 전이(transit)을 의미하는 화살표가 단일 문자 대신 정규표현식으로 라벨링된 NFA를 의미한다.
Definition of GNFA
GNFA는 NFA를 확장한 개념이며, 아래와 같은 5-tuple로 정의된다:
- : 유한한 상태 집합
- : 입력 알파벳
- : 전이함수, 이때 전이는 정규 표현식을 통해 라벨링된다.
- : 시작 상태
- : 종료 상태
이때, 아래와 같은 제약이 존재한다고 가정하자:
- is a "source".[1]
- is a "sink".[2]
- 외의 모든 상태 쌍 에 대해 전이는 하나의 정규표현식으로 라벨링된다.
- 예외적으로, 어떤 GNFA에 대해 라면, 사이의 전이에 대한 라벨이 정규표현식 R이며, 이에 대한 언어는 L(R)이다.
Acceptance by a GNFA
GNFA가 를 인식한다는 것은 아래의 조건을 만족하는 경우이다:
- 문자열 를 와 같이 분해할 수 있다.
- 경로 가 존재하여
즉, 이는 전이가 단순 문자 대신 정규표현식 로 라벨링되어 있기 때문에, 해당 전이를 통과할 때는 입력 문자열 조각 가 반드시 그 정규표현식이 표현하는 언어 안에 있어야 한다.
NFA to GNFA
GNFA는 기본적으로 전이가 정규표현식으로 라벨링된 NFA일 뿐이므로, NFA가 주어지면 그와 동치인 GNFA로 치환할 수 있다. 이때 치환을 하는 절차는 아래와 같다.
- GNFA는 반드시 하나의 source와 하나의 sink를 가져야 하므로, 와 를 추가한다.
- 와 원래의 시작 상태에 대해 ε-transition을 한다.
- 이는 와 같이 표현되며, 다른 상태로는 전이되지 않는다.
- 와 원래의 accept 상태 에 대해 ε-transition을 한다.
- 이는 와 같이 표현되며, 다른 상태로는 전이되지 않는다.
- 중복 전이 제거: 같은 두 상태 사이에 전이가 여러개 있으면 합집합()으로 묶어서 하나로 만든다.
- 존재하지 않는 전이는 와 같이 표현한다.