Chương 2. Biểu thức chính quy và ô tô mát hữu hạn
Download
Report
Transcript Chương 2. Biểu thức chính quy và ô tô mát hữu hạn
Chương 2:
ÔTÔMÁT HỮU HẠN VÀ BIỂU
THỨC CHÍNH QUY
Nội dung
Biểu thức chính quy
Ôtômat hữu hạn
Ôtômat hữu hạn tiền định
Ôtômat hữu hạn không tiền định
Sự tương đương giữa ô tô mát hữu hạn tiền định và
không tiền định
III. Sự tương đương giữa ô tô mát và biểu thức chính quy
IV. Văn phạm chính quy
V.
Các ngôn ngữ chính quy
Các tính chất đóng của các ngôn ngữ chính quy
Định lý “đùn”
I.
II.
I. Biểu thức chính quy (BTCQ)
Định nghĩa: Cho bộ chữ
là một BTCQ
ε là một BTCQ
a thì a là một BTCQ
, là các BTCQ(+), (.), (*) là các BTCQ
Chú ý:
Trong BTCQ chỉ có 3 phép toán và thứ tự ưu tiên là *,.,+
Toán tử ghép tiếp “.” có thể viết:
Giá trị của BTCQ
Một BTCQ trên biểu diễn một ngôn ngữ trên
L()= ; L(ε)= {ε}
L(a)={a} với a
L((+))=L()L()
L(())=L().L()
L((*))=(L())*
Ta gọi ngôn ngữ chính quy là mọi ngôn ngữ có thể
được chỉ định bởi một biểu thức chính quy.
Ví dụ về BTCQ và giá trị
Ví dụ:
BTCQ
00
(0+1)*
(0+1)*00(0+1)*
(1+10)*
Giá trị
{00}
{0,1}*
{x|x{0,1}* và x chứa 2 con 0 liên tiếp}
{x|x {0,1}* x có con 1 ở đầu và không
có hai con 0 liên tiếp}
Tính chất của BTCQ
Cho r, s, t là các BTCQ:
(1) r+s=s+r
(8) r+r=r
(2) r+(s+t)=(r+s)+t
(9) r(st)=(rs)t
(3) r(s+t)=rs+rt
(10) (r+s)t=rt+st
(4) rε= εr=r
(11) r=r=
(5) r+=r
(12) *= ε
(6) (ε+r)*=r*
(13) r+r*=r*
(7) (r*)*=r*
(14) (r*s*)*=(r+s)*
Ví dụ
Hãy mô tả bằng lời các tập hợp chỉ định bởi các biểu
thức chính quy sau:
(11+0)*(00+1)*
(1+01+001)*(ε+0+00)*
[00+11+(01+10)(00+11)*(01+10)]*
Cấu tạo của OHT
Cấu tạo:
Một băng vào: chứa xâu cần xử lý (xâu vào), mỗi ô chứa
một kí tự
Một đầu đọc: tại mỗi thời điểm trỏ vào một ô của băng vào
và cho phép đọc kí hiệu trong ô đó
Cái điều khiển (bộ chuyển trạng thái): tại mỗi thời điểm có
một trạng thái:
Các trạng thái là hữu hạn
Có một trạng thái đầu và các trạng thái thừa nhận
Một hàm dịch chuyển: cho phép xác định trạng thái tiếp theo
dựa và trạng thái và kí hiệu đọc được hiện tại
II. Ôtômát hữu hạn
Là máy đoán nhận ngôn ngữ
Có hai loại:
Ôtômát hữu hạn tiền định (đơn định)(ÔHT)
Ôtômát hữu hạn không tiền định(ÔHK)
Cấu tạo của OHT
Băng vào
1
0
0
1
1
1
0
Đầu đọc
q
Cái điều khiển
Hình. Ôtômát hữu hạn tiền định
Nguyên lý hoạt động
Ban đầu: OHT ở trạng thái đầu, đầu đọc trỏ vào kí hiệu đầu tiên
của xâu vào
Lặp:
ÔHT đọc kí hiệu trên băng, xác định trạng thái tiếp theo dựa
vào hàm dịch chuyển, đẩy đầu đọc sang phải một ô
OHT dừng khi đọc hết xâu vào, nếu trạng thái cuối là trạng
thái thừa nhận thì xâu và được thừa nhận (thuộc ngôn ngữ
mà ôtômát mô tả)
Ôtômát hữu hạn tiền định
Ví dụ: Cho ôtômát tiền
định M, trong đó:
Bộ chữ vào ={0,1}
Q={q0, q1, q2, q}, q0 là
trạng thái đầu
F={q0} là tập trạng thái
kết thúc
Hàm dịch chuyển : Q×
Q, cho bởi bảng bên
Xâu vào: 1001 , 11, 0110
0
1
q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2
Định nghĩa OHT
Định nghĩa: OHT là một bộ năm M=(,Q,,q0,F)
trong đó:
- tập hữu hạn các kí hiệu (bộ chữ vào)
Q – tập hữu hạn các trạng thái, Q=
:Q× Q là hàm dịch chuyển
q0 Q là trạng thái đầu
FQ là các trạng thái thừa nhận (trạng thái cuối)
Ôtômát tiền định
Hệ viết lại ngầm định của ôtômát M là W=(V,P), trong
đó:
V=Q
P: tập các sản xuất được xây dựng như sau:
Nếu (q,a)=p thì qap là một quy tắc trong P
Ngôn ngữ đoán nhận bởi M là:
L(M)={| *, q0*qF}
Biểu diễn đồ thị của OHT
Biểu diễn OHT bằng đồ thị:
Mỗi nút biểu diễn một trạng thái cụ thể:
Mỗi nút là một vòng tròn có tên trạng thái
Có bao nhiêu trạng thái thì có bấy nhiêu nút
Mỗi cung là một mũi tên chỉ hướng chuyển có kèm
kí hiệu gây ra sự chuyển
Nút trạng thái đầu có mũi tên chỉ vào
Nút trạng thái cuối vẽ bằng nét kép
Biểu diễn đồ thị của OHT
Ví dụ: M=(,Q,,q0,F)
={0,1}; Q={q0, q1, q2}; F={q1}
được cho bởi:
(q0, 0)=q0,
(q0, 1)=q1
(q1, 0)=q0,
(q1, 1)=q2
(q2, 0)=q2,
(q2, 1)=q1
ĐỒ thị chuyển trạng
thái tương ứng:
Ôtômát hữu hạn không tiền định
Định nghĩa: OHK là bộ 5 M=(,Q,,q0,F) trong
đó:
- bộ chữ vào
Q – tập hữu hạn các trạng thái, Q=
:Q×({ε})(Q) là hàm dịch chuyển
q0 Q là trạng thái đầu
FQ là các trạng thái thừa (trạng thái cuối)
Ôtômát hữu hạn không tiền định
Ví dụ: Sơ đồ chuyển trạng thái của một OHK
Ôtômát hữu hạn không tiền định
OHK khác OHT:
Từ một trạng thái gặp một kí hiệu được đọc vào có
thể chuyển sang một số trạng thái tiếp theo (hàm
chuyển là hàm đa trị)
Từ một trạng thái có thể không cần kí hiệu vào OHK
cũng chuyển trạng thái (dịch chuyển ε)
Sự tương đương giữa OHT và OHK
Ta gọi:
L(OHT) là lớp các ngôn ngữ được đoán nhận bởi
OHT
L(OHK) là lớp các ngôn ngữ được đoán nhận bởi
OHK
Ta chứng minh: L(OHT)=L(OHK) (tức là ngôn ngữ L
được đoán nhận bởi OHT L cũng được đoán nhận
bởi một OHK)
Sự tương đương giữa OHT và OHK
L được đoán nhận bởi OHT thì cũng được đoán nhận bởi một
OHK: Thêm một số trạng thái qi và một số bước chuyển sao cho:
Các qi không thể đến được đích F
Phá vỡ tính tiền định
Như vậy, OHT trở thành OHK và cũng đoán nhận ngôn ngữ L
L được đoán nhận bởi OHK thì cũng được đoán nhận bởi một
OHT:
Loại bỏ dịch chuyển
Loại bỏ các đặc tính không tiền định
Sự tương đương giữa OHT và OHK
Loại bỏ dịch chuyển –ε:
Định lý II.1: Nếu một ngôn ngữ được thừa nhận
bởi một ô tô mát hữu hạn thì nó cũng sẽ được thừa
nhận bởi một ô tô mát hữu hạn không có dịch
chuyển ε
(CM:Lý thuyết ngôn ngữ và tính toán – Nguyễn Văn
Ba)
Loại bỏ dịch chuyển
Cho OHK M= (, Q, , q0, F), dựng OH
M’=(’, Q’, ’, q0’, F’) không còn dc-
E(s)={qQ|s=>*q nhờ toàn dc - } (sQ, sE(s))
’= ; Q’=Q; q0’= q0
’: p’(q,a)rE(q) sao cho p(r,a)
F’=F{s Q|E(s)F}
Loại bỏ dịch chuyển
Ví dụ: cho OHK có sơ đồ dịch chuyển sau:
Tìm OH tương đương với OHK đã cho
Ví dụ
Loại bỏ dịch chuyển-ε:
OHK đã cho: M=(,Q,,p,F)
={0,1,2}
Q={p,q,r}
p- trạng thái đầu
F={r}
Ta cần tìm M’ =(,Q,’,p,F’) không còn dịch
chuyển - ε
Ví dụ
Tính E(s) cho mọi trạng thái s:
Tính F’:
E(p)={p,q,r}; E(q)={q,r}; E(r)={r}
F’={r} {sQ|rE(s)}={r} {p,q,r}={p,q,r}
Hàm ’:
p
q
r
0
{p}
1
{q}
{q}
2
{r}
{r}
{r}
Ví dụ
Ô tô mát hữu hạn không còn dịch chuyển
tương đương:
Sự tương đương giữa OHT và OHK
Loại bỏ tính không tiền định:
Định lý II.2: Nếu một ngôn ngữ được thừa nhận
bởi một ô tô mát hữu hạn không có dịch chuyển ε
thì nó cũng được thừa nhận bởi một ô tô mát hữu
hạn tiền định.
(CM:Lý thuyết ngôn ngữ và tính toán – Nguyễn Văn
Ba)
Loại bỏ tính không tiền định
Cho OHK M= (, Q, , q0, F) không còn dc- , dựng
OHT M’=(’, Q’, ’, q0’, F’)
’= ; q0’= q0
Q’=(Q) ( tập các tập con của Q)
’: ’(S,a)=U (s, a) với mọi SQ’, sS, a
F’= {S Q’|SF}
Sự tương đương giữa OHT và OHK
Ví dụ: Cho ôtômat hữu hạn M={,Q,,q0,F}
như sau:
Tìm Otomat hữu hạn tiền định tương đương
Sự tương đương giữa OHT và OHK
Loại bỏ tính không tiền định
OHK đã cho: M=(,Q,,p,F)
={0,1}
Q={p,q,r}
p- trạng thái đầu
F={r}
Sự tương đương giữa OHT và OHK
Ta cần tìm M’ =(,(Q),’,{p},F’) trong đó:
(S,a)=U(s,a) với S(Q), a
F’={S (Q)|SF}
Sự tương đương giữa OHT và OHK
Hàm dịch chuyển ’
được biểu diễn như
sau:
Đầu
Cuối
Cuối
Cuối
Cuối
(Q)
{p}
{q}
{r}
{p,q}
{p,r}
{q,r}
{p,q,r}
0
{p,q}
{r}
{p,q,r}
{p,q}
{r}
{p,q,r}
1
{p}
{p}
{p}
Sự tương đương giữa OHT và OHK
Ôtômat tiền định tương đương:
Sự tương đương giữa OHT và OHK
Định lý II.3:
Một ngôn ngữ được thừa nhận bởi một ô tô mát
hữu hạn khi và chỉ khi nó được thừa nhận bởi một
ô tô mát tiền định
(CM:Lý thuyết ngôn ngữ và tính toán – Nguyễn Văn Ba)
III. Sự tương đương giữa ô tô mát hữu hạn và
BTCQ
Từ biểu thức chính quy đến Ô tô mat hữu hạn
Từ ô tô mát hữu hạn tới ngôn ngữ chính quy
Từ biểu thức chính quy đến Ô tô mat hữu
hạn
Định lý II.4
Mọi ngôn ngữ chính quy trên đều là ngôn ngữ
trạng thái hữu hạn trên (ngôn ngữ được đoán
nhận bởi OH)
Chứng minh:
Giả sử có một ngôn ngữ được chỉ định bởi một
biểu thức chính quy
Ta đi xây dựng một ô tô mát hữu hạn không tiền
định thừa nhận ngôn ngữ đó.
Từ biểu thức chính quy đến Ô tô mat hữu
hạn
Thiết lập các ô tô mát tương ứng với các biểu
thức chính quy:
được đoán nhận bởi:
ε được đoán nhận bởi:
a được đoán nhận bởi:
( trạng thái đầu)
( trạng thái cuối)
Từ biểu thức chính quy đến Ô tô mat hữu
hạn
1, 2 lần lượt được đoán nhận bởi hai ô tô mát hữu
hạn M1 và M2:
Thì 1.2 được đoán nhận bởi:
Từ biểu thức chính quy đến Ô tô mat hữu
hạn
1* được đoán nhận bởi ô tô mát:
Từ biểu thức chính quy đến Ô tô mat
hữu hạn
1 +2
Từ ô tô mát hữu hạn tới ngôn ngữ chính
quy
Định lý II.5(Kleene)
Mọi ngôn ngữ trạng thái hữu hạn đều có thể phân
tích được thành các ngôn ngữ thành phần sao cho
khi kết hợp các ngôn ngữ thành phần đó lại bằng
các phép toán: hợp, ghép tiếp, ghép lặp(*).
(CM:Lý thuyết ngôn ngữ và tính toán – Nguyễn Văn Ba)
Từ ô tô mát
hữu hạn tới ngôn ngữ chính quy
Cho Ô tô mát hữu hạn M=(, {q1, q2, …, qn},, q1, F).
Gọi L(M) là ngôn ngữ được đoán nhận bởi M:
Đặt Rijk là tập các xâu trên cho phép M dịch chuyển từ
trạng thái qi đến qj mà chỉ đi qua các trạng thái ql (l≤k,
i,j có thể >k) (qix=>*qj):
k-1
Hoặc là M không đi qua qk=> xR
ij
Hoặc là M đi qua qk(một số lần)
Như vậy Rn1j chính là ngôn ngữ L (qj F)
Từ ô tô mát
hữu hạn tới ngôn ngữ chính quy
Nếu M đi qua trạng thái qk, x có thể cắt thành các xâu
con:
Một xâu dẫn M từ qi đến qk đầu tiên (Rk-1ik)
Một xâu dẫn M từ qk đến qk tiếp theo (Rk-1kk) (có thể không
có hoặc có nhiều xâu này)
Một xâu dẫn M từ qk cuối đến qj (Rk-1kj)
Như vậy: Rkij=Rk-1ijRk-1ik(Rk-1kk)*Rk-1kj
Sự tương đương giữa ô tô mát hữu hạn
và BTCQ
Định lý II.6:
Mọi ngôn ngữ trạng thái hữu hạn trên bộ chữ
đều là ngôn ngữ chính quy trên
Từ định lý II.4 và II.6 ta có Định lý II.7:
Một ngôn ngữ trên bộ chữ là một ngôn ngữ trạng
thái hữu hạn khi và chỉ khi nó là một ngôn ngữ
chính quy
Văn phạm chính quy
Văn phạm chính quy là văn phạm tuyến tính (trái hoặc
phải)
Văn phạm chính quy sinh ra ngôn ngữ chính quy
Ngôn ngữ chính quy có thể được ký hiệu đơn giản bằng
một biểu thức chính quy
Tập hợp các chuỗi được ký hiệu bởi một biểu thức
chính quy được gọi là tập hợp chính quy
Sự tương đương giữa VPTT và OH
Định lý II.8
Cho văn phạm tuyến tính phải G. Tồn tại một văn phạm
tuyến tính phải đơn G’ tương đương với G.
Định lý II.9
Mọi ngôn ngữ chính quy đều có thể được sản sinh bởi một
văn phạm tuyến tính phải
Định lý II.10
Mọi ngôn ngữ sản sinh từ văn phạm tuyến tính phải là ngôn
ngữ chính quy
Định lý II.11
Mọi ngôn ngữ được sản sinh bởi một văn phạm tuyến tính
phải khi và chỉ khi nó là chính quy
Sự tương đương
giữa VPTT phải đơn và FA
Định lý II.9:
Mọi ngôn ngữ chính quy đều có thể được sản
sinh bởi một văn phạm tuyến tính phải.
Chứng minh:
Cho một ngôn ngữ chính quy L được thừa
nhận bởi một Ô tô mát hữu hạn tiền định
M=(,Q,,q0,F).
Ta xây dựng văn phạm G=(,,S,P).
48
Sự tương đương
giữa VPTT phải đơn và FA
Xây dựng văn phạm G=(,,S,P) trong đó:
=Q; q0 là kí hiệu đầu (tiên đề);
P gồm:
qap nếu (q,a)=p;
q nếu qF.
49
Sự tương đương
giữa VPTT phải đơn và FA
Ví dụ 2: Cho DFA như sau:
Y/c: Tìm văn pham tuyến tính phải tương đương
với DFA đã cho.
50
Sự tương đương
giữa VPTT phải đơn và FA
DFA đã cho:
M=({0,1},{p, r},,p, {r}) trong đó gồm:
(p,1)=p; (p,0)=r; (r,0)=r.
Văn phạm tương đương với DFA:
G=({0, 1}, {p, r}, p, P) trong đó P gồm:
p1p;
p0r ;
r0r;
r.
51
Sự tương đương
giữa VPTT phải đơn và FA
Định lý II.10:
Mọi ngôn ngữ sinh từ văn phạm tuyến tính
phải đều là ngôn ngữ chính quy:
Chứng minh:
Cho L là một ngôn ngữ sinh bởi một văn phạm
tuyến tính phải (giả sử G đơn);
Ta lập một ô tô mát không tiền định M tương
đương với G thừa nhận L.
52
Sự tương đương
giữa VPTT phải đơn và FA
Xây dựng NFA:
M=(, {f}, , S, {f})
Trong đó:
f ;
(A,a)={B|(B và AaBP) hay (B=f và AaP)}
( với mọi a{} và với mọi A)
53
Sự tương đương
giữa VPTT phải đơn và FA
Ví dụ 3: Cho Văn phạm:
S|aS|bT|b
TbT|b
Y/c: Tìm Ô tô mát hữu hạn tương đương với văn
phạm đã cho.
54
Sự tương đương
giữa VPTT phải đơn và FA
Ô tô mát hữu hạn tương đương:
M=({a,b}, {S, T, f}, , S, {f}) trong đó gồm:
(S,)=f
(S,b)=f
(S,a)=S
(T,b)=T
(S,b)=T
(T,b)=f
Sơ đồ dịch chuyển của Ô tô mát:
55
Sự tương đương
giữa VPTT phải đơn và FA
Định lý II.11:
Một ngôn ngữ được sản sinh bởi một văn
phạm tuyến tính phải khi và chỉ khi nó là chính
quy.
Chứng minh:
Định lý là hệ quả trực tiếp từ các Định lý II.9
và II.10
56
V. Các ngôn ngữ chính quy
Các phương tiện xác định ngôn ngữ chính quy:
Biểu thức chính quy
Các ô tô mát hữu hạn tiền định
Các ô tôt mát hữu hạn không tiền định
Các văn phạm tuyến tính phải
Các tính chất đóng của NNCQ
L1, L2 là các ngôn ngữ chính quy thì:
L1L2 là ngôn ngữ chính quy
L1 L2 là ngôn ngữ chính quy
L1 . L2 là ngôn ngữ chính quy
L1* là ngôn ngữ chính quy
L1 =*-L1 là ngôn ngữ chính quy
Các bài toán quyết định trên NNCQ
Bài toán từ: Cho L là NNCQ và một từ x*. Phải
chăng xL
Bài toán ngôn ngữ rỗng: Cho L là NNCQ. Phải chăng
L=
Bài toán ngôn ngữ đầy: Cho L là NNCQ. Phải chăng
L=*
Bài toán bao hàm ngôn ngữ: L1 L2 là NNCQ. Phải
chăng L1 L2
Bài toán ngôn ngữ bằng nhau: L1 L2 là NNCQ. Phải
chăng L1 =L2
Định lý Đùn (Bổ đề Bơm)
Cho L là ngôn ngữ chính quy vô hạn và một xâu wL
sao cho w#Q (Q là tập các trạng thái của một ô tô mát
hữu hạn tiền định thừa nhận L). Khi đó tồn tại x,u,y
sao cho w=xuy (uε và |xu|#Q) và xuny L
Định lý đùn là điều kiện cần đối với các ngôn ngữ
chính quy, mọi ngôn ngữ không thỏa định lý đùn thì
không thể là ngôn ngữ chính quy
Một số ví dụ
L=an bn không là ngôn ngữ chính quy vì không
thể tìm thấy xâu xuy sao cho xunyanbn
L=an2 không là ngôn ngữ chính quy.