50 likes | 265 Views
Văn phạm TT-P sinh ra NNCQ. Định lý 3.3 Cho G = (V, T, S, P) là một VPTT-P. Thì L(G) là NNCQ. Chứng minh Thủ tục: G P to nfa Input: Văn phạm tuyến tính-phải G P = (V, T, S, P) Output: nfa M = (Q, Σ, δ, q0, F). Văn phạm TT-P sinh ra NNCQ.
E N D
Văn phạm TT-P sinh ra NNCQ • Định lý 3.3 Cho G = (V, T, S, P) là một VPTT-P. Thì L(G) là NNCQ. • Chứng minh • Thủ tục: GP to nfa Input: Văn phạm tuyến tính-phải GP = (V, T, S, P) Output: nfa M = (Q, Σ, δ, q0, F)
Văn phạm TT-P sinh ra NNCQ B1. Ứng với mỗi biến Vi của văn phạm ta xây dựng một trạng thái mang nhãn Vi cho nfa Tức là: Q ⊃ V. B2. Ứng với biến khởi đầu V0, trạng thái V0 của nfa sẽ trở thành trạng thái khởi đầu, Tức là: S = V0 B3. Nếu trong văn phạm có một luật sinh nào đó dạng Vi → a1a2…am Thêm vào nfa một và chỉ một trạng thái kết thúc Vf B4. Ứng với mỗi luật sinh của văn phạm có dạng Vi → a1a2…amVj Thêm vào nfa các chuyển trạng thái δ*(Vi, a1a2…am) = Vj B5. Ứng với mỗi luật sinh dạng Vi → a1a2…am Thêm vào nfa các chuyển trạng thái δ*(Vi, a1a2…am) = Vf
Văn phạm TT-P sinh ra NNCQ • Ví dụ 3.13 • Xây dựng một nfa chấp nhận ngôn ngữ của văn phạm sau: V0 → aV1 | ba V1 → aV1 | abV0 | b • NFA kết quả
Văn phạm TT-P cho NNCQ • Địnhlý 3.4 • Nếu L là 1 NNCQ trênbảngchữcáiΣ, thìtồntại 1 VPTT phải G = ( V, Σ, S, P) saocho L = L(G). • NFA sang VPTT: • Cho M = ( Q, Σ, δ, q0, F) là 1 NFA chấp nhận L. • Q = {q0, q1, q2, ..., qn} • Σ = {a1, a2, a3, ...., an} • Chuyển sang văn phạm tuyến tính phải G = ( V, Σ, S, P) như sau: B1: Mỗi trạng thái trong dfa trở thành biến trong văn phạm, V = Q, S = q0 B2: Với mỗi chuyển trạng thái δ(qi, aj) = qk của M ta xây dựng luật sinh TT phải tương ứng qi → ajqk. B3: Đối với mỗi trạng thái qf ∈ F chúng ta xây dựng luật sinh qf → λ.
Văn phạm TT-P cho NNCQ • Ví dụ: • Xây dựng VPTT phải cho ngôn ngữ L(aab*a) • Với ngôn ngữ, tao có sơ đồ nfa như sau • Chuyển đổi luật sinh, ta có luật sinh sau G : q0 → aq1 q1 → aq2 q2→ aqf| bq2 qf → λ Theo định lý 3.4, ta tìm được kết quả. Chuỗi aaba có thể được sinh ra bởi văn phạm q0aq1aaq2aabq2aabaqfaaba