Tải bản đầy đủ (.ppt) (61 trang)

Biểu thức chính quy và automat hữu hạn

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 (762.69 KB, 61 trang )

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ì qap 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 - ε

×