Finite Automata
Language
Alphabets
문자의 유한집합. 예를 들어 ASCII, Unicode, {0, 1}, {a, b, c} 등이 있다.
∑로 나타낸다.
Strings
알파벳의 모음.
∑∗은 스트링의 집합이다.
∣s∣는 스트링 s의 길이를 의미한다.
ϵ은 빈 스트링을 의미한다. ∣ϵ∣ = 0.
예를 들어,
{0,1}∗ = {ϵ,0,1,00,01,10,11,000,001,...}
Language는 ∑∗의 부분집합이다.
DFA (Deterministic finite automata)
- Q : 상태 유한 집합
- ∑ : 인풋 알파벳
- δ : transition 함수
- q0 : 시작 상태
- F : final state 집합
Transition function
두 개의 인자를 갖는다. state와 input symbol.
δ(q,a) = DFA에서 상태 q가 a를 받았을 때 가는 상태값
그래프
노드는 상태를 가르킨다.
화살표는 transition function이며 화살표에 쓰여 있는 값이 input symbol(=알파벳)이다.
받는 화살표가 있는 노드가 "start" state.
final state는 동그라미가 두개인 노드이다. 여러개 가능.
- Q={X0,X1,X2,X3,X4}
- ∑={0,1}
- δ(X0,0)=X0
δ(X0,1)=X1
δ(X1,0)=X2
δ(X1,1)=X3 등등
- q0=X0
- F={X4}
테이블
transition table of DFA
State | 0 | 1 |
---|
→X0 | X0 | X1 |
X1 | X2 | X3 |
X2 | X4 | X0 |
X3 | X1 | X2 |
∗X4 | X3 | X4 |
화살표는 start state를 의미하고 *은 final state를 의미한다.
Language of a DFA
- 모든 오토마타는 language를 정의한다.
- A가 automaton이면
L(A)
는 language를 의미한다.
L(A)
는 start state에서 final state로 갈 수 있는 input 조합이다.