Ôtômát và ngôn ngữ hình thức
63
CHƯƠNG 4. TẬP CHÍNH QUI VÀ VĂN PHẠM CHÍNH QUI
Chương bốn đề cp đến:
Tp chính qui và ôtômát hu hn trng thái,
B đề Bơm cho các tp chính qui và ng dng,
Quan h gia tập chính qui, văn phạm chính qui, ôtômát hu hn
4.1 Các biểu thức chính qui
Biu thc chính qui được s dng để biu din tp các xâu trong các cấu trúc đại
s. Biu thc chính qui mô t nhng ngôn ng đoán nhận được bi ôtômát hu hn
trng thái.
Định nghĩa. Biu thc chính qui trên bng ch được định nghĩa đệ qui như sau:
1. Mi ký hiu kết thúc a , (tp rng) đều là biu thc chính qui. Khi
mt hiu a
thì biu thc chính qui tương ng s đưc ký hiu là a.
2. Hp ca hai biu thc chính qui R1 R2, hiu là R1 + R2, cũng biểu
thc chính qui,
3. Ghép hai biu thc chính qui R1 R2, hiu R1.R2, cũng biểu thc
chính qui,
4. Bao đóng ca mt biu thc chính qui R, hiu R*, cũng là biểu thc
chính qui,
5. Nếu R là mt biu thc chính qui thì (R) cũng là biểu thc chính qui.
6. Biu thc chính qui trên bng ch
tp tt c các hng thức được xây
dng một cách đệ qui trên cơ s ch áp dng các qui tc t 1 5 nêu trên.
Chú ý:
(i) Chúng ta hiu x (in đậm) cho biu thức chính qui để phân bit vi ký
hiu (hoc xâu) x thông thường.
Ôtômát và ngôn ngữ hình thức
64
(ii) Cp ngoặc đơn ‘(‘ )’ trong qui tắc 5 được s dụng để xác định th t
thc hin các phép toán ca các biu thc chính qui.
(iii) Khi không các ngoặc đơn thì thứ t thc hin trong biu thc
chính qui được qui định như sau: Bao đóng, phép ghép rồi đến phép hp.
Định nghĩa. Tp biu din cho mt biu thức chính qui được gi tp chính qui.
Nếu a, b
thì
1. Biu thc chính qui a xác đnh tp {a}, nói cách khác tập {a} được biu din
bi a,
2. Biu thc chính qui a + b xác định tp {a, b}, hoặc {a, b} được biu din bi
biu thc a + b
3. Biu thc chính qui ab xác đnh tp {ab}, hoặc {ab} được biu din bi biu
thc ab
4. Biu thc chính qui a* xác đnh tp {, a, aa, aaa, ...}, hoc {, a, aa, aaa,
...} được biu din bi a*
5. Biu thc chính qui (a + b)* xác đnh tp {a, b}*, hoc tp {a, b}* được biu
din bi (a + b)*.
Để hiu n việc tính toán các biu thc chính qui chúng ta cn xét k hơn ba
phép toán nêu trên. Gi s R1 R2 là hai biu thc chính qui.
Một xâu trong R1 + R2 là xâu trong R1 hoặc R2.
Một xâu trong R1R2 là xâu trong R1 được ghép với xâu của R2.
Một xâu trong R* xâu được xây dựng tphép ghép n các phần tử của R, với n
0.
Tóm lại:
(i) Tập đưc biểu diễn bởi R1 + R2 là hợp của hai tp biểu diễn bởi R1 và bởi R2.
Tập được biểu diễn bởi R1R2 là ghép của hai tập biểu din bởi R1 và bởi R2.
Tập đưc biểu diễn bởi R* là {w1w2 ... wn | wi là tp con biểu diễn bởi R n 0}.
Ví d 4.1 c định các biu thc chính qui biu din cho các tp sau:
(ii) Tập {101} được biểu diễn bởi biểu thức 101,
(iii) {abba} được biểu diễn bởi biểu thức abba,
(iv) {01, 10} được biểu diễn bởi biểu thức 01 + 10,
(v) {, ab} được biểu diễn bởi biểu thức + ab,
(vi) {abb, a, b, bba} được biểu diễn bởi biểu thức abb + a + b + bba,
Ôtômát và ngôn ngữ hình thức
65
(vii) {, 0, 00, 000, ... } được biểu diễn bởi biểu thức 0*,
(viii) {1, 11, 111, ...} được biểu diễn bởi biểu thức 1(1)*.
Ví d 4.2 c định các biu thc chính qui biu din cho các tp (ngôn ng) sau:
(ix) L1 là tập tất cả các xâu chứa 0, 1 và kết thúc bằng 00,
(x) L2 là tập tất cả các xâu chứa 0, 1 được bắt đầu bằng 0 và kết thúc bằng 1,
(xi) L3 = {, 11, 1111, 111111, ...}
Gii:
(ix) Một xâu bất kỳ của L1 sẽ được xây dựng từ phép ghép của xâu xác định trên
{0, 1} vi xâu 00. {0, 1} biu diễn cho 0 + 1. Vậy, L1 được biểu diễn bởi
(0+1)*00.
(x) Mỗi phần tử của L2 đều nhận được từ phép ghép 0 với các xâu xác định tn
{0, 1} và ghép tiếp với 1, nên L2 sẽ được biểu diễn bởi 0(0+1)*1.
(xi) Mỗi phần tử của L3 hoặc là , hoặc xâu chứa chẵn lần các s1, nghĩa là
những xâu có dạng (11)n, n 0. Vậy L3 có thể được biểu diễn bởi (11)*.
4.2 Sự tương đương ca các biểu thức chính qui
Định nghĩa. Hai biu thc chính qui P, Q được gi tương đương, (ta viết P
= Q) nếu P Q cùng biu din cho cùng mt tp các xâu.
Các biu thc chính qui có các tính cht sau:
I1 + R = R
I2 R = R =
I3 R = R = R
I4 * = * =
I5 R + R = R
I6 R*R* = R*
I7 RR* = R*R
I8 (R*)* = R*
I9 + RR* = + R*R = R*
Ôtômát và ngôn ngữ hình thức
66
I10 (PQ)*P = P(QP)*
I11 (P + Q)* = (Q*P*)* = (P* + Q*)*
I12 (P + Q)R = PR + QR và R(P+Q) = RP + RQ
Lưu ý: Cần phân biệt với , hiu cho một xâu (từ) rỗng (một si liu
khác sử dụng để ký hiu cho xâu rỗng), còn hiệu của tập rỗng).
Định lý. nh Arden) Gi s P Q hai biu thc chính qui trên . Nếu P
không cha thì phương trình sau
R = Q + RP (4.1)
có nghim duy nht là R = QP*
Chứng minh: Thay R = QP* vào vế phải theo tính chất I9 chúng ta có
Q + (QP*)P = Q( + P*P) = QP*
Nghĩa là R = QP* tho mãn đẳng thc (4.1).
Để chng minh tính duy nht ca R, chúng ta hãy thế R bng Q + RP mt s ln
như sau.
Q + RP = Q + (Q + RP)P
= Q + QP + RPP
= Q + QP + RP2
. . .
= Q + QP + QP2 + . . . + QPi + RPi+1
= Q( + P + P2 + . . . + Pi) + RPi+1
Vy t (4.1) chúng ta
R = Q( + P + P2 + . . . + Pi) + RPi+1 (4.2)
Nếu R tho mãn (4.1) thì nó ng tho mãn (4.2). Gi s w là một xâu có đ dài là i trong
tp R. Khi đó w s thuc tp đưc xác định bi Q( + P + P2 + . . . + Pi ) + RPi+1. Bi vì
P không cha nên RPi+1 s không có c xâu có độ dài i. Do vy, w phi thuc
Q( + P + P2 + . . . + Pi ), nghĩa là thuộc QP*.
Ôtômát và ngôn ngữ hình thức
67
Ngưc li, xét xâu w thuc QP* , tc là w thuc QPk, vi k 0, t đó suy ra ng
thuc Q( + P + P2 + . . . + Pi).
Như vậy chúng ta đã chứng minh được là R và QP* biểu din cho ng một tập hp.
Điu này khẳng định tính duy nhất của lời giải phương trình (4.1).
4.3 Ôtômát hu hạn và biểu thức chính qui
Định nghĩa. Otomat M = (Q, , , q0, F) chp nhn (đoán nhận) xâu w trong *
nếu
(a) mt đường đi trên đ th trng thái, bắt đầu t một đnh khi đầu và kết
thúc ti một đnh kết thúc (đnh thuc F),
(b) Các nhãn trên các cung dọc đường đi đó ghép lại to thành w.
Định nghĩa. Ngôn ng đoán nhận đưc bi M = (Q, , , q0, F), hiu T(M),
là tp tt c các xâu đoán nhận được bi M.
T(M) = {w * | (q0, w) F }
T(M) tp tt c các y ký t vào, trên tt c các đường đi t một đnh bt đầu
đến một đnh kết thúc.
Ví d 4.5 Cho trước h chuyn trng thái được mô t như hình H4-1.
Hình H4-1 Đ th chuyn trng thái ca Otomat M
Trong đó Q0 = {q0, q1} và F = {q3}. D nhn thy h thng trên đoán nhận xâu
w = 1100, vì có đường đi t q0, q0, q2, q3 các nhãn ghép li thành w.
1
q0
q3
0
0
q1
q2
1
0
1
1