Processing math: 92%

DFA NFA 변환, regular 연산의 Formal 표현

Every NFA has equivalent DFA

‘모든 NFA는 equivalent DFA가 존재한다’의 formal한 증명
Proof,LetN=(Q,,σ,q0,F)betheNFArecognizingsomelanguageA
이때 A를 인식하는 새로운 DFA M=(Q,,σ,q0,F) 를 정의한다.

  1. Q = P(Q), power set of Q
  2. = N과 같음
  3. σ(R,a)=qQqE(σ(r,a))forsomerRforRQanda
  4. q0=E(q0)
  5. F=RQRcontainsanacceptingstateofN

이때 E(R)이란, M의 어떤 state R에 대해서도 ϵ화살표만 따라가서 R의 memeber로 도달할 수 있는 state의 집합이다.

만약 w=0110ww=01ϵ1ϵ0ϵ처럼 쓸 수 있다.


레귤러 연산의 Formal한 표현

L1L2,L1L2,L1
각각의 L1,L2가 regular이면 연산 후에도 regular이다. 즉, 그것을 Accept하는 NFA/DFA가 존재한다. 그림으로는 다음과 같이 그릴 수 있다.

L1L2의 formal한 표현


L1L2또한 regular하다. 이를 formal하게 표현해보겠다.

LetN1=(Q1,,σ1,q1,F1)recognizeA1and
N2=(Q2,,σ2,q2,F2)recognizeA2.

ConstructN=(Q,,σ,q,F)

  1. Q=q0Q1Q2
  2. 은 모두 같음
  3. σ=
    σ1(q,a),qQ1
    σ2(q,a),qQ2
    q1,q2,a=ϵandq=q0
    ϕ,aϵandq=q0
  4. q=q0
  5. F=F1F2

L1L2의 formal한 표현


마찬가지로 L1L2또한 regular하며 formal하게 표현해보겠다.

LetN1=(Q1,,σ1,q1,F1)recognizeA1and
N2=(Q2,,σ2,q2,F2)recognizeA2

ConstructN=(Q,,σ,q,F)

  1. Q=Q1Q2
  2. 은 같음
  3. σ=
    σ1(q,a),qQ1andqF1,
    σ2(q,a),qQ2,
    σ1(q,a)q2,qF1anda=ϵ,
    σ1(q,a),qF1andaϵ
  4. q=q1
  5. F=F2

L의 formal한 표현


마찬가지로 L또한 regular하며 formal하게 표현해보겠다.

LetN1=(Q1,,σ1,q1,F1)recognizeA,
ConstructN=(Q,,σ,q,F)

  1. Q=q0Q1
  2. 은 같음
  3. σ=
    σ1(q,a),qQ1andqF1
    σ1(q,a)q1,qF1anda=ϵ
    q_1,q =q_0\,and\,a=ϵ
    \sigma_1(q,a),q \in F_1\,and\,a \neq \epsilon,
    \phi,q=q_0\,and\,a\neq \epsilon
  4. q=q_0
  5. F={q_0}\cup F_1