Tải bản đầy đủ (.docx) (8 trang)

Đáp án đề thi automata và ngôn ngữ hình thức

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (143.28 KB, 8 trang )

Đáp án đề thi Automata và ngôn ngữ hình thức
Câu 1:
a. Định nghĩa văn phạm chính quy và cho ví dụ?
* Định nghĩa:
Văn phạm chính quy (hay còn gọi là văn phạm loại 3 theo phân loại Chomsky) là văn phạm có
cấu trúc G gồm 4 thành phần G = (N, T, S, P), trong đó:
+ N: là tập các biến. Ví dụ: A, B, C,
+ T: là tập ký hiệu kết thúc (T N = ). Ví dụ: a, b, c,
+ S: là ký hiệu bắt đầu (start; S N).
+ P là tập luật sinh. Mỗi luật sinh trong P đều có dạng tuyến tính trái: A > wB | w hoặc có
dạng tuyến tính phải A > Bw | w với w là xâu ký tự thuộc T.
Ví dụ:
Văn phạm G = (N, T, S, P)
N = {S, A},
T = {a, b}
S = {S}
P: S > aS| aA|a
A -> aA| a| b
b. Cho văn phạm G = (N, T, S, P)
P: S −−> aSa | aa
Cho biết ngôn ngữ của văn phạm trên? Văn phạm trên là văn phạm gì? Tại sao?
* Ngôn ngữ của văn phạm
Xét một suy dẫn của S ta có:
S > aSa > aaSaa > aaaaaa = a
6
=> L(G) = {a
n
| n >= 2}
* Văn phạm trên là văn phạm phi ngữ cảnh hay văn phạm loại 2 theo phân loại văn phạm Chomsky
vì: văn phạm có cấu trúc G gồm 4 thành phần G = (N, T, S, P), trong đó:
+ N: là tập các biến. Ví dụ: A, B, C,


+ T: là tập ký hiệu kết thúc (T N = ). Ví dụ: a, b, c,
+ S: là ký hiệu bắt đầu (start; S N).
+ P là tập luật sinh. Mỗi luật sinh trong P đều có dạng tuyến tính trái: A > với A là một
biến và là xâu ký tự thuộc (N T)*
S > aSa => A = S; = aSa
S > aa => A = S; = aa
Câu 2:
a, Xây dựng FA đoán nhận xâu chỉ chứa 0, 1 và có 00 bắt đầu. Kiểm nghiệm xâu w = 00101 có
được đoán nhận bởi FA vừa xây dựng?
* Xây dựng FA
FA đoán nhận xâu chỉ chứa 0, 1 và có 00 bắt đầu
=> L(M) = {00w | w (0, 1)*}
Để xây FA thỏa mãn điều kiện, ta có nhận xét sau:
- Nếu xâu bắt đầu là 1 thì FA không đoán nhận xâu.
- Nếu xâu bắt đầu là 0 và ký tự thứ 2 là 1 thì FA không đoán nhận xâu.
- Nếu xâu bắt đầu bởi 00 thì FA đoán nhận mặc dù các ký hiệu sau xâu là 0 hay 1
Từ các nhận xét trên ta có thể xây dựng các hàm chuyển đổi như sau:
- δ(q0, 1) =
- δ(q0, 0) = q1
δ(q1, 1) =
- δ(q0, 0) = q1
δ(q1, 0) = q2
δ(q2, 0) = q2
δ(q2, 1) = q2
Vậy ta có FA như sau:
M = (Q, Σ, , q0, F)

0 1
-> q0 q1
q1 q2

* q2 q2 q2

* Kiểm nghiệm xâu w = 00101
(q0, 0) = q1
(q1, 0) = q2
(q2, 1) = q2
(q2, 0) = q2
(q2, 1) = q2
q2 F => w = 00101 L(M)

b. Cho NFA M = (Q, Σ, δ, q0, F)
a b
−−>q0
{q0, q1}
*q1 q1 q0

Xây dựng DFA tương đương
Gọi M’ = (Q’, Σ, ’, q0’, F’) là DFA tương đương cần xây dựng
Áp dụng thuật toán chuyển đổi NFA sang DFA, ta có
Q’ = {q0}
’ = φ
’(q0, a) = (q0, a) = [q0, q1]
=> Q’ = {q0. [q0, q1]}
’ = { ’(q0, a)}
’(q0, b) = (q0, b) =
=> Q’ = {q0. [q0, q1]}
’ = { ’(q0, a)}
’([q0, q1], a) = (q0, a) (q1, a) = [q0, q1]
=> Q’ = {q0. [q0, q1]}
’ = { ’(q0, a); ’([q0, q1], a)}

’([q0, q1], b) = (q0, b) (q1, b) = q0
=> Q’ = {q0. [q0, q1]}
’ = { ’(q0, a); ’([q0, q1], a); ’([q0, q1], b)}
F’ = F Q’ = {[q0, q1]}
Vậy DFA cần xây dựng là M’ = (Q’, Σ, ’, q0’, F’)
a b
−−>q0
[q0, q1]
*[q0, q1] [q0, q1] q0

Đặt A = q0; B = [q0, q1] => DFA M’ = (Q’, Σ, δ’, q0’, F’) là

a b
−−>A
B
*B B A

c. Xây dựng FA đoán nhận biểu thức chính quy: r = (01 + 1)*1
* Phân tích r:
r = (01 + 1)*1 = r1r2 với r1 = (01 + 1)* và r2 = 1
r1 = r3* với r3 = (01 + 1)
r3 = r4 + r5 với r4 = 01 và r5 = 1
r4 = r6r7 với r6 = 0 và r7 = 1
* Xây dựng FA
- r6 = 0:

- r7 = 1
- r4 = r6r7:

- r5 = 1:


- r3 = r4 + r5:
- r1 = r3*

- r2 = 1:
r = r1r2:

Câu 3:
Cho G = (N, T, S, P)
P: S −−> bA | A | AB
A −−> AAa | b
B −−> BBb | BA
Đưa văn phạm về dạng chuẩn Chomsky
Gọi G’ = (N’, T, S, P’) là văn phạm ở chuẩn Chomsky
1. Loại bỏ luật sinh rỗng
Không có luật sinh rỗng
2. Loại bỏ luật sinh đơn vị
- Ta có:
S
= {S, A}=> Thêm vào P’ các luật sinh sau:
S > bA | AAa | b | AB
- Ta có
A
= {A}=> Thêm vào P’ các luật sinh sau:
A > AAa | b
- Ta có
B
= {B}=> Thêm vào P’ các luật sinh sau:
B > BBb | BA
=> P’:

S > bA | AAa | b | AB
A > AAa | b
B > BBb | BA
3. Loại bỏ ký hiệu vô ích
3.1. Loại bỏ ký hiệu vô sinh
Gọi N
kvs
là tập ký hiệu không vô sinh => N
kvs
=
S > b => N
kvs
= {S}
A > b => N
kvs
= {S, A}
=> Tập ký hiệu vô sinh là: N/N
kvs
= {B} => Loại ký hiệu B bằng cách loại bỏ các luật liên quan tới B.
=> P’:
S > bA | AAa | b
A > AAa | b
3.2. Loại bỏ ký hiệu không đạt đến được
Gọi N
dd
là tập ký hiệu đạt đến được => N
dd
= {S}
S > bA và A > b => Ndd = {S, A}
=> Không có ký hiệu không đạt đến được

=> P’ sau khi loại bỏ ký hiệu vô ích là:
S > bA | AAa | b
A > AAa | b
4. Chuẩn hóa
S > bA => S > C
b
A
C
b
> b
S > AAa => S > DC
a

D > AA
C
a
> a
A > AAa => A > EC
a

E > AA
C
a
> a
=> P’ sau chuẩn hóa:
S > C
b
A | DC
a
| b

D > AA
C
b
> b
C
a
> a
A > EC
a
| b
E > AA.

Vậy, G’ = (N’, T, S, P’) ở chuẩn Chomsky
N’ = {S, A}
T = {b}
S = {S}
P’:
S > C
b
A | DC
a
| b
D > AA
C
b
> b
C
a
> a
A > EC

a
| b
E > AA.



Thứ 7, ngày 28 - 11 - 2009

×