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

ĐỀ TÀI Ô TÔ MÁT 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 (481.56 KB, 25 trang )

Đại Học Đà Nẵng
Trường Đại Học Sư Phạm
Khoa:Tin Học

GVHD:Trần Văn Hưng
SVTT: Nhóm 4
Lớp :11SPT

Ô- tô mát hữu hạn


Nội dung
1.
2.
3.
4.
5.
6.
7.

Định nghĩa ô-tô mát hữu hạn đơn định.
Mô tả không hình thức
Mô tả hình thức.
Xử lý xâu của OHD.
Các cách biểu diễn đơn giản của OHD.
Sự khác nhau giữa OHD và OHKD.
Hàm dịch chuyển mở rộng.


1.Định nghĩa ô-tô mát hữu hạn đơn định.


Ô-tô-mát hữu hạn đơn định là ô-tômát mà tại một thời điểm nó chỉ có thể ở
trong một trạng thái nhất định.


2.Mô tả không hình thức.
 Ô-tô-mát hữu hạn đơn định (deterministic finite automata) là một cái “máy” cho phép đoán nhận
xâu. Nó bao gồm các thành phần sau:

Here comes your footer  Page 4


- một băng vào được chia thành ô, dùng để ghi xâu vào, mỗi ký hiệu của xâu vào thuộc bảng chữ S
được ghi trên một ô.
- một đầu đọc, mỗi thời điểm đọc một ô trên băng vào.
- một bộ điều khiển Q, gồm một số hữu hạn các trạng thái, tại mỗi thời điểm nó có một trạng thái xác
định q ∈ Q.




Vd: Minh họa các thành phần của một ô-tô-mát hữu hạn.

0

0

1

1


0

1

0

1băng vào
1

Đầu đọc

Bộ điều khiển

q

1

0


 Hoạt động của ô-tô-mát được thực hiện theo từng bước. Mỗi bước như sau: tùy theo trạng
thái hiện thời của bộ điều khiển và ký hiệu mà đầu đọc đang đọc, ô-tô-mát chuyển sang một
trạng thái mới, đồng thời đầu đọc dịch chuyển sang phải một ô.


3.Mô tả hình thức.


Một ô-tô-mát hữu hạn đơn định được định nghĩa là một bộ năm
M = (Q, S, d, q0, F),


trong đó:
- Q là tập hữu hạn các trạng thái, Q = {q0, q1, …, qn};
- S là bảng chữ vào;
- d : Q x S ® Q là hàm dịch chuyển, d có thể được viết dưới
dạng d(q, a) = q’, nghĩa là ô-tô-mát đang ở trạng thái q và
đọc ký hiệu a thì nó sẽ chuyển sang trạng thái q’;
- q0 ∈ Q là trạng thái đầu;
- F ⊆ Q là tập các trạng thái cuối hay trạng thái thừa nhận.

 Để đơn giản, chúng ta viết ngắn gọn một ô-tô-mát hữu hạn đơn định là OHD.


4.Xử lý xâu của OHD.
 Giả sử w = a0a1...an là xâu vào. OHD sẽ bắt đầu với trạng thái q0, nó sẽ thực hiện dịch chuyển
δ(q0, a1), giả sử cho kết quả là trạng thái q1. OHD bây giờ ở trạng thái q1 và ký hiệu tiếp theo sẽ
đọc là a2, nó thực hiện dịch chuyển δ (q1, a2) giả sử cho cho kết quả là trạng thái q2. Nó cứ tiếp tục
như thế, cho đến khi đọc an thì sẽ chuyển sang trạng thái qn nào đó, nếu qn thuộc tập các trạng thái
cuối F thì OHD thừa nhận xâu vào w, ngược lại thì xâu vào sẽ không được thừa nhận.


Ví dụ 1:
Xây dựng OHD thừa nhận các xâu gồm chỉ các ký hiệu 0, 1 và chứa ít nhất một lần xâu 01, nghĩa là chúng ta có
thể mô tả ngôn ngữ L này như sau:
L = {x01y | x và y gồm các ký hiệu 0 và 1 bất kỳ}
Để xây dựng OHD thừa nhận L, OHD M cần ghi nhớ các khả năng sau:


1. OHD đã đọc xâu 01, như thế sau đó nó có thể thừa nhận xâu vào.
2. OHD chưa bao giờ đọc ký hiệu 0, nhưng nó đã đọc ít nhất một ký

hiệu 1, trong trường hợp này nó có thể tiếp tục đọc các ký hiệu 1
cho đến khi nào đọc một ký hiệu 0 đầu tiên, thì sau đó nó có thể
đọc một ký hiệu 1 đi liền sau.
3. OHD chưa đọc xâu 01, nhưng ngay trước đó nó đọc ít nhất một
ký hiệu 0, như thế nó có thể tiếp tục đọc ký hiệu 0 cho đến khi
gặp một ký hiệu 1 thì có thể chuyển sang thừa nhận xâu vào nếu
hết xâu.


5.Các cách biểu diễn đơn giản hơn của OHD.


Biểu đồ dịch chuyển (transition diagram)
Một biểu đồ dịch chuyển biểu diễn một OHD M = (Q, S, d, q0, F) là một đồ thị được định nghĩa như sau:

1.Mỗi trạng thái trong Q là một đỉnh.
2.Với mỗi trạng thái q ∈ Q và mỗi ký hiệu a ∈ S, có
δ(q, a) = p ∈ Q. Như thế, biểu đồ dịch chuyển có một cung đi từ
đỉnh q đến đỉnh p mang nhãn a, nếu có nhiều ký hiệu tạo ra dịch
chuyển từ q đến p thì chỉ cần biểu diễn một cung mang nhãn là
danh sách các ký hiệu đó.
3.Có một mũi tên đi vào đỉnh q0 để ký hiệu trạng thái đầu.
4.Các trạng thái kết thúc F là các đỉnh được biểu diễn bởi hai vòng
tròn.
5.Các trạng thái không thuộc F là các đỉnh được biểu diễn bởi chỉ
một vòng tròn.


Bảng dịch chuyển (transition table).
 Bảng dịch chuyển cho một OHD là một quy ước biểu diễn dạng bảng của một hàm với hai tham số các trạng thái và các ký hiệu vào - trả về giá trị là một trạng thái. Các hàng của bảng tương ứng với

các trạng thái, các cột tương ứng với các ký hiệu vào.

 Trạng thái đầu được đánh dấu bởi ký hiệu ‘
‘*’.

’, các trạng thái cuối sẽ được đánh dấu bởi các ký hiệu


Ví dụ 2. Dùng biểu đồ dịch chuyển trạng thái để
biểu diễn OHD được xây dựng trong ví dụ 1.
1
q1



0
q2

0.1
q3

OHD biểu diễn ngôn ngữ trong ví dụ 1

Here comes your footer  Page 15


Bảng dịch chuyển của OHD xây dựng trong ví dụ trên là
như sau:
δ


0

1

q0

q1

q0

q1

q1

q2

*q2

q2

q2


6.Sự khác nhau giữa OHD và OHKD
 Ô-tô-mát hữu hạn đơn định là ô-tômát mà tại một thời điểm nó chỉ có thể ở trong một trạng thái nhất định.

 Ô-tô-mát hữu hạn không đơn định (hay ô-tô-mát hữu hạn bất định) là ô-tô-mát mà tại mỗi thời điểm
có thể ở trong nhiều trạng thái khác
nhau.



Sự khác nhau giữa OHD và OHKD
 Sự khác nhau cơ bản giữa OHKD và OHD là định nghĩa của hàm dịch chuyển.
 Đối với OHKD, hàm dịch chuyển nhận tham số là một trạng thái, một ký hiệu vào và trả về một tập
hợp, có thể rỗng, các trạng thái.

 Trong khi đó OHD cũng nhận tham số là một trạng thái, một ký hiệu vào, tuy nhiên chỉ trả về đúng
một trạng thái.


7.Hàm dịch chuyển mở rộng.
 Định nghĩa: Hàm dịch chuyển mở rộng được định nghĩa đệ quy trên độ dài của xâu w như sau:
1. δ*(q, ε) = q, với mọi trạng thái q, nếu OHD không
đọc ký hiệu vào nào thì sẽ ở lại trạng thái đó.
2. δ*(q, w) = δ(δ*(q, x), a), với w = xa, x ∈ Σ* và
a ∈ Σ.


Ví dụ: Xây dựng OHD thừa nhận ngôn ngữ:
L = {w | w chỉ chứa các ký hiệu 0, 1 và luôn kết thúc bởi ký hiệu
1}.

 Ta xây dựng OHD như sau
- M = ({q0, q1}, {0, 1}, δ, q0, {q1}),
- trong đó, hàm dịch chuyển δ được định nghĩa:
−δ(q0, 0) =q0,
−δ(q0, 1) =q1,
−δ(q1, 0) =q0,
−δ(q1, 1) =q1.




 Chúng ta cũng có thể biểu diễn OHD dạng bảng dịch chuyển như sau:
δ 0
→ q0
* q1

1
q0

q1

q0

q1

Here comes your footer  Page 22


 Bây giờ, chúng ta sử dụng hàm dịch chuyển mở rộng để đoán nhận xâu
 w = 101101 của ngôn ngữ L.
 δ (q0, ε) = q0
 δ (q0, 1) = δ(δ*(q0, ε), 1) = δ(q0, 1) = q1
 δ (q0, 10) = δ(δ*(q0, 1), 0) = δ(q1, 0) = q0
 δ (q0, 101) = δ(δ*(q0, 10), 1) = δ(q0, 1) = q1
 δ (q0, 1011) = δ(δ*(q0, 101), 1) = δ(q1, 1) = q1
 δ (q0, 10110) = δ(δ*(q0, 1011), 0) = δ(q1, 0) = q0
 δ (q0, 101101) = δ(δ*(q0, 10110), 1) = δ(q0, 1) = q1
*


*

*

*

*

*

*

Here comes your footer  Page 23


 Do q1 là trạng thái cuối, nên xâu vào w = 101101 được thừa nhận bởi OHD.
 Chúng ta có thể biểu diễn quá trình đoán nhận một cách đơn giản hơn như sau:
- q0101101 ⇒ q101101 ⇒ q01101 ⇒ q1101 ⇒ q101 ⇒
q 01 ⇒ q 1 ∈ F

 Nhận xét: Đối với một xâu vào w, OHD chỉ cho một quá trình đoán nhận duy nhất.


Thank you!

Here comes your footer  Page 25


×