Chương 2:
ÔTÔMÁT HỮU HẠN VÀ BIỂU
THỨC CHÍNH QUY
Nội dung
I. Biểu thức chính quy
II. Ô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
I. Sự tương đương giữa ô tô mát và biểu thức chính quy
II. Văn phạm chính quy
III. 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. 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 Giá trị
00 {00}
(0+1)* {0,1}*
(0+1)*00(0+1)* {x|x∈{0,1}* và x chứa 2 con 0 liên tiếp}
(1+10)* {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
(2) r+(s+t)=(r+s)+t
(3) r(s+t)=rs+rt
(4) rε= εr=r
(5) r+φ=r
(6) (ε+r)*=r*
(7) (r*)*=r*
(8) r+r=r
(9) r(st)=(rs)t
(10) (r+s)t=rt+st
(11) φr=rφ= φ
(12) φ*= ε
(13) r+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
1 0 0 1 1 1 0
q
Cái điều khiển
Đầu đọc
Hình. Ôtômát hữu hạn tiền định
Băng vào
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={q
0
, q
1
, q
2
, q}, q
0
là trạng
thái đầu
F={q
0
} 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
q
0
q
2
q
1
q
1
q
3
q
0
q
2
q
0
q
3
q
3
q
1
q
2
Định nghĩa OHT
Định nghĩa: OHT là một bộ năm M=(∑,Q,δ,q
0
,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
q
0
∈Q là trạng thái đầu
F⊆Q 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)={ω| ω∈∑*, q
0
ω*q∈F}
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,δ,q
0
,F)
∑={0,1}; Q={q
0
, q
1
, q
2
}; F={q
1
}
δ được cho bởi:
δ(q
0
, 0)=q
0
, δ(q
0
, 1)=q
1
δ(q
1
, 0)=q
0
, δ(q
1
, 1)=q
2
δ(q
2
, 0)=q
2
, δ(q
2
, 1)=q
1
⇒
ĐỒ 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,δ,q
0
,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
q
0
∈Q là trạng thái đầu
F⊆Q 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 q
i
và một số bước chuyển sao cho:
Các q
i
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, δ,
q
0
, F), dựng OH
M’=(∑’, Q’, δ’,
q
0
’, F’) không còn dc-ε
E(s)={q∈Q|s=>*q nhờ toàn dc - ε } (∀s∈Q, s∈E(s))
∑’= ∑; Q’=Q; q
0
’= q
0
δ’: p∈δ’(q,a)∃r∈E(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 - ε