Tải bản đầy đủ (.pdf) (71 trang)

Một số tính chất và ứng dụng của ngôn ngữ chính quy

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 (1.03 MB, 71 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
—————————————

PHAN THỊ TUYẾT CHINH

MỘT SỐ TÍNH CHẤT VÀ ỨNG DỤNG
CỦA NGÔN NGỮ CHÍNH QUY

LUẬN VĂN THẠC SĨ TOÁN HỌC

HÀ NỘI - 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
—————————————

PHAN THỊ TUYẾT CHINH

MỘT SỐ TÍNH CHẤT VÀ ỨNG DỤNG
CỦA NGÔN NGỮ CHÍNH QUY

LUẬN VĂN THẠC SĨ TOÁN HỌC

Chuyên ngành: TOÁN ỨNG DỤNG
Mã số: 60 46 01 12

Người hướng dẫn khoa học: TS. Kiều Văn Hưng

HÀ NỘI - 2017




Lời cảm ơn
Luận văn được hoàn thành tại Trường Đại học Sư phạm Hà Nội 2 dưới
sự hướng dẫn của TS. Kiều Văn Hưng.
Tác giả xin bày tỏ lòng biết ơn sâu sắc nhất tới TS. Kiều Văn Hưng,
người thầy đã nhiệt tình giúp đỡ, trực tiếp chỉ bảo hướng dẫn để tác giả
hoàn thành luận văn này.
Tác giả xin bày tỏ lòng biết ơn chân thành tới phòng Sau đại học,
các thầy cô giáo dạy cao học chuyên ngành Toán ứng dụng trường Đại
học Sư phạm Hà Nội 2 đã giúp đỡ tác giả trong suốt quá trình học tập.
Cuối cùng tác giả xin gửi lời cảm ơn chân thành đến gia đình, bạn bè,
người thân đã luôn động viên và khuyến khích, tạo mọi điều kiện thuận
lợi cho tác giả trong quá trình học tập và hoàn thành luận văn.
Hà Nội, tháng 12 năm 2017
Học viên

Phan Thị Tuyết Chinh


Lời cam đoan
Tôi xin cam đoan, dưới sự hướng dẫn của TS. Kiều Văn Hưng, luận văn
“Một số tính chất và ứng dụng của ngôn ngữ chính quy” được
hoàn thành bởi sự nhận thức của bản thân tác giả, những số liệu và kết
quả nghiên cứu trong luận văn này là trung thực, không trùng lặp với
các luận văn khác.
Tôi cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận
văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã
được chỉ rõ nguồn gốc.
Hà Nội, tháng 12 năm 2017

Tác giả

Phan Thị Tuyết Chinh


Mục lục

Lời mở đầu

1

1 Một số kiến thức chuẩn bị

3

1.1

1.2

1.3

Các khái niệm cơ bản về ngôn ngữ hình thức . . . . . . .

3

1.1.1

Bảng chữ cái và từ . . . . . . . . . . . . . . . . .

3


1.1.2

Ngôn ngữ . . . . . . . . . . . . . . . . . . . . . .

4

Ngôn ngữ chính quy và biểu thức chính quy . . . . . . .

5

1.2.1

Ngôn ngữ chính quy . . . . . . . . . . . . . . . .

5

1.2.2

Biểu thức chính quy . . . . . . . . . . . . . . . .

5

Otomat hữu hạn . . . . . . . . . . . . . . . . . . . . . .

7

1.3.1

Định nghĩa otomat hữu hạn . . . . . . . . . . . .


8

1.3.2

Sự tương đương giữa otomat đơn định và không
đơn định . . . . . . . . . . . . . . . . . . . . . . .

1.3.3

13

Quan hệ giữa otomat hữu hạn với ngôn ngữ chính
quy . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Một số tính chất của ngôn ngữ chính quy

16
19

2.1

Bổ đề Bơm . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.2

Tính chất đóng của ngôn ngữ chính quy . . . . . . . . .


23

2.2.1
2.2.2

Tính chất đóng đối với các phép toán tập hợp đơn
giản . . . . . . . . . . . . . . . . . . . . . . . . .

24

Tính chất đóng đối với các phép toán khác . . . .

29

iii


MỤC LỤC

2.3

MỤC LỤC

Các bài toán quyết định . . . . . . . . . . . . . . . . . .
2.3.1

Sự chuyển đổi giữa các đại diện của ngôn ngữ chính
quy . . . . . . . . . . . . . . . . . . . . . . . . . .

41


2.3.2

Kiểm tra sự rỗng của các ngôn ngữ chính quy . .

43

2.3.3

Kiểm tra phần tử trong một ngôn ngữ chính quy

43

3 Một số ứng dụng của ngôn ngữ chính quy
3.1

3.2

41

45

Tổng quan ứng dụng của ngôn ngữ chính quy . . . . . .

45

3.1.1

Thiết kế và kiểm tra hoạt động của các mạch số .


46

3.1.2

Tìm kiếm từ trong văn bản . . . . . . . . . . . .

47

Ứng dụng vào phân tích từ vựng . . . . . . . . . . . . . .

52

3.2.1

Biểu thức chính quy trong UNIX . . . . . . . . .

53

3.2.2

Phân tích từ vựng . . . . . . . . . . . . . . . . .

56

Tài liệu tham khảo

63

iv



Danh sách hình vẽ
1.1

Mô tả quá trình đoán nhận từ w của otomat A . . . . .

8

1.2

Bảng chuyển trạng thái của otomat A . . . . . . . . . . .

10

1.3

Đồ thị chuyển của otomat A . . . . . . . . . . . . . . . .

10

1.4

Quá trình đoán nhận từ w của otomat A . . . . . . . . .

11

1.5

Bảng chuyển của otomat A . . . . . . . . . . . . . . . . .


11

1.6

Đồ thị chuyển của otomat A . . . . . . . . . . . . . . . .

12

1.7

Quá trình đoán nhận từ w của otomat A . . . . . . . . .

12

1.8

Bảng chuyển của otomat A . . . . . . . . . . . . . . . . .

12

1.9

Đồ thị chuyển của otomat A . . . . . . . . . . . . . . . .

13

1.10 Quá trình đoán nhận từ w1 của otomat A . . . . . . . .

13


1.11 Quá trình đoán nhận từ w2 của otomat A . . . . . . . .

13

2.1

Otomat đoán nhận ngôn ngữ L1 . . . . . . . . . . . . . .

26

2.2

Otomat đoán nhận ngôn ngữ L1 . . . . . . . . . . . . . .

26

2.3

Otomat đoán nhận ngôn ngữ L1 . . . . . . . . . . . . . .

27

2.4

Otomat đoán nhận ngôn ngữ L2 . . . . . . . . . . . . . .

27

2.5


Otomat M đoán nhận ngôn ngữ L1 ∩ L2 . . . . . . . . .

28

2.6

Otomat M đoán nhận ngôn ngữ L1 ∩ L2 . . . . . . . . .

28

2.7

Otomat A đoán nhận ngôn ngữ L1 . . . . . . . . . . . .

32

2.8

Otomat B đoán nhận ngôn ngữ L2 . . . . . . . . . . . .

32

2.9

Bảng chuyển của otomat M . . . . . . . . . . . . . . . .

33

2.10 Otomat M đoán nhận ngôn ngữ L1 − L2 . . . . . . . . .


33

v


DANH SÁCH HÌNH VẼ

DANH SÁCH HÌNH VẼ

2.11 Otomat M đoán nhận ngôn ngữ L1 − L2 . . . . . . . . .

33

2.12 Otomat A đoán nhận ngôn ngữ L1 . . . . . . . . . . . .

38

2.13 Otomat B đoán nhận ngôn ngữ L2 . . . . . . . . . . . .

39

2.14 Otomat đoán nhận ngôn ngữ L1 . . . . . . . . . . . . . .

40

2.15 Otomat đoán nhận ngôn ngữ L2 . . . . . . . . . . . . . .

40

2.16 Otomat đoán nhận ngôn ngữ L3 . . . . . . . . . . . . . .


40

2.17 Otomat đoán nhận ngôn ngữ L1 L−1
2 . . . . . . . . . . . .

40

2.18 Otomat đoán nhận ngôn ngữ L−1
3 L1 . . . . . . . . . . . .

40

2.19 Sự chuyển đổi giữa các đại diện của ngôn ngữ chính quy

41

3.1

Công tắc bật / tắt . . . . . . . . . . . . . . . . . . . . .

47

3.2

Otomat nhận ra từ khoá luck . . . . . . . . . . . . . . .

48

3.3


NFA tìm từ ab, bc và ca . . . . . . . . . . . . . . . . . .

50

3.4

DFA tìm từ ab, bc và ca . . . . . . . . . . . . . . . . . .

52

3.5

DFA tìm từ ebay và web . . . . . . . . . . . . . . . . . .

53

3.6

Một ví dụ về phần đầu vào lệnh lex

61

vi

. . . . . . . . . . .


Lời mở đầu


1. Lý do chọn đề tài
Từ rất sớm, các ngôn ngữ tự nhiên (tiếng Việt, tiếng Anh, tiếng Nhật,...)
đã được con người sử dụng để liên lạc với nhau. Do sự phát triển của
khoa học công nghệ, con người nảy ra nhu cầu tìm kiếm một loại ngôn
ngữ rộng lớn hơn, nó không chỉ phục vụ mục đích giao tiếp giữa con
người với con người mà còn là phương tiện giao tiếp giữa con người với
máy hay giữa máy với máy. Vì thế ngôn ngữ hình thức ra đời, nó có
thể định nghĩa được ngôn ngữ tự nhiên và hơn nữa nhờ các quy tắc ngữ
pháp nghiêm ngặt mà một từ hoặc một câu của nó chỉ có một nghĩa duy
nhất. Đấy chính là điểm mấu chốt giúp cho việc giao tiếp với máy dễ
dàng hơn. Ngôn ngữ hình thức được nhà ngôn ngữ học nổi tiếng Noam
Chomsky phân ra làm bốn loại: ngôn ngữ ngữ cấu (nhóm 0), ngôn ngữ
cảm ngữ cảnh (nhóm 1), ngôn ngữ phi ngữ cảnh (nhóm 2) và ngôn ngữ
chính quy (nhóm 3). Dựa vào sự phân loại trên, ngôn ngữ chính quy là
lớp ngôn ngữ nhỏ nhất được chứa bởi ba lớp ngôn ngữ còn lại. Không chỉ
vậy nó còn có các tính chất đặc biệt và được ứng dụng nhiều trong việc
thiết kế ngôn ngữ lập trình hay trong các nghiên cứu về chương trình
dịch... Với mong muốn tìm hiểu sâu hơn về lớp ngôn ngữ thú vị này và
dưới sự hướng dẫn của TS Kiều Văn Hưng, tôi quyết định chọn đề tài
nghiên cứu của mình là: “Một số tính chất và ứng dụng của ngôn
ngữ chính quy”.

2. Mục đích nghiên cứu
Tìm hiểu về một số tính chất và ứng dụng của ngôn ngữ chính quy.

1


3. Nhiệm vụ nghiên cứu
Trình bày một cách hệ thống lý thuyết về một số tính chất và ứng dụng

của ngôn ngữ chính quy.

4. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: tính chất và ứng dụng của ngôn ngữ chính quy.
Phạm vi nghiên cứu: tìm hiểu tổng quan về ngôn ngữ chính quy.

5. Giả thuyết khoa học
Hệ thống các kiến thức về một số tính chất và ứng dụng của ngôn ngữ
chính quy để góp phần làm phong phú hơn các kết quả, sự hiểu biết về
ngôn ngữ chính quy. Đồng thời, tôi hi vọng đây có thể là một tài liệu
hữu ích cho các bạn muốn tìm hiểu môn ngôn ngữ hình thức nói chung
và lớp ngôn ngữ chính quy nói riêng.

6. Phương pháp nghiên cứu
Tìm hiểu các tài liệu, sách, báo liên quan đến các kết quả đã có về ngôn
ngữ chính quy. Tổng hợp kiến thức và trình bày một cách hệ thống.

2


Chương 1
Một số kiến thức chuẩn bị
Trong chương này trình bày một số khái niệm cơ bản nhất liên quan đến
ngôn ngữ chính quy.

1.1
1.1.1

Các khái niệm cơ bản về ngôn ngữ hình thức
Bảng chữ cái và từ


Định nghĩa 1.1.1. Tập Σ khác rỗng gồm hữu hạn hay vô hạn các ký
hiệu được gọi là bảng chữ cái. Mỗi phần tử a ∈ Σ được gọi là một chữ
cái hay một kí hiệu.
Định nghĩa 1.1.2. Giả sử có bảng chữ cái hữu hạn Σ = {a1 , a2 , ..., am }.
Từ hay chuỗi là một dãy hữu hạn các chữ cái được chọn từ bảng chữ cái
đã cho. Đặc biệt, từ rỗng là từ mà không chứa bất kì chữ cái nào trong
bảng chữ cái và được kí hiệu là ε.
Định nghĩa 1.1.3. Độ dài từ w là tổng số các vị trí của các chữ cái
xuất hiện trong từ w, thường được kí hiệu là |w|.
Định nghĩa 1.1.4. Cho bảng chữ cái Σ, kí hiệu Σk là tập tất cả các từ
có độ dài k mà mỗi chữ cái của từ đều thuộc Σ. Quy ước rằng Σ0 = {ε}
và Σ∗ = Σ0 ∪ Σ1 ∪ Σ2 ∪ ...; Σ+ = Σ1 ∪ Σ2 ∪ Σ3 ...
Định nghĩa 1.1.5. Cho x = a1 a2 ...ai , y = b1 b2 ...bj là hai từ. Kí hiệu xy
là từ ghép của x và y, khi đó xy = a1 a2 ...ai b1 b2 ...bj .
3


Ví dụ 1.1.1. Cho bảng chữ cái Σ = {0, 1}. Ta có:
a. Hai từ x = 00101 và y = 110, lần lượt có độ dài từ |x| = 5, |y| = 3.
b. Từ ghép xy = 00101110 và |xy| = 8 .
c. Σ1 = {0, 1}, Σ2 = {00, 10, 01, 11},
Σ3 = {000, 001, 010, 011, 100, 101, 110, 111}.
d. Σ∗ = {ε, 0, 1, 00, 10, 01, 11, 000, 001, 010, 011, 100, 101, 110, 111, ...}.
e. Σ+ = {0, 1, 00, 10, 01, 11, 000, 001, 010, 011, 100, 101, 110, 111, ...}.
1.1.2

Ngôn ngữ

Định nghĩa 1.1.6. Cho bảng chữ cái Σ, mỗi tập con L ⊆ Σ∗ được gọi

là một ngôn ngữ hình thức (hay ngôn ngữ ) trên bảng chữ cái Σ.
Ví dụ 1.1.2.
a. L = {a, c, ac, abc, aa, ab, bcca} là một ngôn ngữ trên bảng chữ cái
Σ = {a, b, c}.
b. L1 = {0, 1, 00, 11, 000, 111, 0000, 1111} và L2 = {0n 1m } là các ngôn
ngữ trên bảng chữ cái Σ = {0, 1}.

Một số phép toán cơ bản
1. Phép hợp: Cho hai ngôn ngữ L1 , L2 trên bảng chữ cái Σ. Phép hợp
L1 với L2 là L1 ∪ L2 = w : w ∈ L1 hoặc w ∈ L2 .
2. Phép nhân ghép: Cho hai ngôn ngữ L1 , L2 trên bảng chữ cái Σ. Phép
nhân ghép L1 với L2 là L1 L2 = αβ : α ∈ L1 và β ∈ L2 .
3. Phép lặp: Với ngôn ngữ L trên bảng chữ cái Σ ta định nghĩa phép lặp
của L là L∗ =


n
n=0 L

= {ε} ∪ L1 ∪ L2 ∪ ... ở đây Ln = LL...L n lần .

4


1.2

Ngôn ngữ chính quy và biểu thức chính quy

1.2.1


Ngôn ngữ chính quy

Định nghĩa 1.2.1. Cho bảng chữ cái Σ = {a1 , a2 , ..., an }, khi đó ngôn
ngữ chính quy được định nghĩa đệ quy như sau:
(i) Các ngôn ngữ rỗng và ngôn ngữ gồm một phần tử {ai } với i = 1, n
được gọi là ngôn ngữ chính quy trên bảng chữ cái Σ.
(ii) Nếu L1 và L2 là hai ngôn ngữ chính quy trên bảng chữ cái Σ thì
L1 ∪ L2 , L1 L2 , L∗1 , L∗2 cũng là các ngôn ngữ chính quy trên bảng chữ
cái Σ.
(iii) Không có ngôn ngữ chính quy nào khác trên bảng chữ cái Σ ngoài
các ngôn ngữ chính quy được định nghĩa ở trên.
Định lý 1.2.1. Mọi ngôn ngữ chính quy trên bảng chữ cái Σ đều nhận
được từ các ngôn ngữ hữu hạn bằng cách áp dụng một số hữu hạn lần
các phép toán hợp, nhân và lặp.
Ví dụ 1.2.1.
a. {ε} là ngôn ngữ chính quy vì ∅∗ = {ε}.
b. L1 = a2 , ab = {a} {a, b} = {a} ({a} ∪ {b}) là ngôn ngữ chính quy.
c. L2 = a∗ b, b3 = {a∗ b} ∪ b3 là ngôn ngữ chính quy.
1.2.2

Biểu thức chính quy

Định nghĩa 1.2.2. Cho bảng chữ cái Σ = {a1 , a2 , ..., an }, khi đó biểu
thức chính quy được định nghĩa đệ quy như sau:
(i) ∅, ai (ai ∈ Σ) được gọi là biểu thức chính quy trên bảng chữ cái Σ
biểu diễn ngôn ngữ rỗng và ngôn ngữ {ai }.
(ii) Nếu l1 và l2 là hai biểu thức chính quy trên bảng chữ cái Σ thì l1 +l2 ,
l1 .l2 , l1∗ , l2∗ cũng là các biểu thức chính quy trên bảng chữ cái Σ biểu
diễn các ngôn ngữ L1 ∪ L2 , L1 L2 , L∗1 , L∗2 .
5



(iii) Không có biểu thức chính quy nào khác trên bảng chữ cái Σ ngoài
các biểu thức chính quy được định nghĩa ở trên.
Định nghĩa 1.2.3. Hai biểu thức chính quy l1 và l2 gọi là tương đương
nếu chúng biểu diễn cùng một ngôn ngữ, kí hiệu l1 = l2 .
Một số tính chất của biểu thức chính quy
Với l1 , l2 , l3 là các biểu thức chính quy trên Σ ta có các kết quả sau:
1. l1 + l2 = l2 + l1 .
2. (l1 + l2 ) + l3 = l1 + (l2 + l3 ).
3. l1 + l1 = l1 .
4. (l1 l2 ) l3 = l1 (l2 l3 ).
5. l1 (l2 + l3 ) = l1 l2 + l1 l3 ; (l1 + l2 ) l3 = l1 l3 + l2 l3 .
6. ∅∗ = {ε}.
7. (l1∗ )∗ = l1∗ ; l1+

+

= l1+ .

Định lý 1.2.2. Một ngôn ngữ trên bảng chữ cái Σ là chính quy khi và
chỉ khi nó được biểu diễn bằng môt biểu thức chính quy.
Ví dụ 1.2.2.
a. Biểu thức 01 biểu diễn ngôn ngữ chính quy {01}.
b. Biểu thức chính quy a.(a + b) biểu diễn ngôn ngữ chính quy
{a} ({a} ∪ {b}) = {a} {a, b} = a2 , ab .
c. Biểu thức chính quy (0 + 1)∗ 000 (0 + 1)∗ biểu diễn ngôn ngữ chính
quy {0, 1}∗ {000} {0, 1}∗ , tức ngôn ngữ đó gồm tất cả các từ có ba số 0
liên tiếp.
Ví dụ 1.2.3.

a. Ngôn ngữ L = {a, ba} có biểu thức chính quy là a + ba.
b. Ngôn ngữ L = {a}∗ {ba} có biểu thức chính quy là an .ba, ∀n ∈ N.
c. Ngôn ngữ L = {a, ε} . {bba} có biểu thức chính quy là abba + bba.

6


1.3

Otomat hữu hạn

Otomat hữu hạn là một mô hình tính toán thực sự hữu ích, nó được coi
như một máy trừu tượng để đoán nhận ngôn ngữ. Otomat hữu hạn được
chia làm hai loại là otomat hữu hạn đơn định và otomat hữu hạn không
đơn định. Chúng ta sẽ cùng đi tìm hiểu cách hoạt động và vai trò của
nó.
Mô tả hình thức
Otomat hữu hạn là máy đoán nhận từ gồm 3 thành phần:
+ Băng vào: gồm các ô, mỗi ô là một chữ cái.
+ Đầu đọc: mỗi thời điểm quan sát một ô trên băng vào.
+ Bộ điều khiển: có hữu hạn trạng thái, tại mỗi thời điểm có một trạng
thái.
Hoạt động của otomat hữu hạn
Otomat A = Q, Σ, δ, q0 , F khi cho từ w = a1 a2 ...an ∈ Σ∗ có thể được
mô tả như sau:
Khi bắt đầu làm việc otomat A ở trạng thái q0 và đầu đọc đang nhìn
vào ô có chữ a1 . Sau đó dưới tác động của chữ a1 , otomat chuyển sang
trạng thái mới δ (q0 , a1 ) = q1 ∈ Q và đầu đọc chuyển sang phải một ô,
tức là nhìn vào ô chữ a2 . Sau đó otomat A lại tiếp tục chuyển từ trạng
thái q1 nhờ hàm chuyển δ sang trạng thái mới

q2 = δ (q1 , a2 ) = δ ((q0 , a1 ) , a2 ) = δ (q0 , a1 a2 ) .
Lặp lại quá trình trên, otomat A sẽ gặp một trong các trường hợp
sau:
+ Trường hợp 1: Otomat A đọc hết từ w và δ (qn−1 , an ) = qn ∈ F thì ta
nói rằng otomat A đoán nhận từ w.
+ Trường hợp 2: Otomat A đọc hết từ w và δ (qn−1 , an ) = qn ∈
/ F thì ta
nói rằng otomat A không đoán nhận từ w.
+ Trường hợp 3: Otomat A đọc đến chữ ai (i ≤ n) và hàm δ (qi−1 , ai )
7


không xác định thì ta cũng nói otomat A không đoán nhận từ w.
Tập L (A) = {w : w ∈ Σ∗ | δ (q0 , w) ∈ F } được gọi là ngôn ngữ được đoán
nhận bởi otomat A.

Hình 1.1: Mô tả quá trình đoán nhận từ w của otomat A

1.3.1

Định nghĩa otomat hữu hạn

Định nghĩa 1.3.1. Một otomat hữu hạn (Finite Automata - FA) là một
bộ gồm năm thành phần A = Q, Σ, δ, q0 , F , trong đó:
+ Q là một tập khác rỗng các trạng thái.
+ Σ là một bảng chữ cái, được gọi là bảng chữ vào.
+ q0 ∈ Q được gọi là trạng thái bắt đầu.
+ F ⊆ Q được gọi là tập trạng thái kết thúc.
+ δ được gọi là hàm chuyển.
Otomat hữu hạn A được gọi là otomat hữu hạn đơn định (Deterministic Finite Automata - DFA) nếu hàm chuyển là ánh xạ δ : Q × Σ → Q,

tức δ(q, a) = p với q, p ∈ Q và a ∈ Σ.
Otomat A được gọi là otomat hữu hạn không đơn định (Nondeterministic Finite Automata - NFA) nếu hàm chuyển là ánh xạ δ : Q × Σ → 2Q ,
tức δ(q, a) = P với q ∈ Q, P ⊆ Q và a ∈ (Σ ∪ ε).
Trong trường hợp δ(q, a) xác định ∀q ∈ Q, ∀a ∈ Σ, ta nói otomat hữu
hạn A là otomat đầy đủ.
Định nghĩa 1.3.2. Hai otomat cùng đoán nhận một ngôn ngữ thì gọi
là hai otomat tương đương.
8


Các cách biểu diễn otomat hữu hạn.
Cho otomat hữu hạn A = Q, Σ, δ, q0 , F , với Q = (q0 , q1 , ..., qm ) và
Σ = (a1 , a2 , ..., an ).
1. Biểu diễn otomat bằng bảng chuyển
Dựa vào hàm chuyển của otomat hữu hạn A, ta lập bảng chuyển với các
δ (qi , aj ) , (qi , aj ) ∈ 2Q ;
ô (i, j) như sau: (i, j) =
∅,
(qi , aj ) ∈
/ 2Q .

Ta đánh dấu → trước trạng thái bắt đầu và trạng thái kết thúc kết
thúc được in đậm trong cột đầu tiên của bảng.
2. Biểu diễn otomat bằng đồ thị chuyển
Hàm chuyển của otomat A có thể được biểu diễn bằng một đồ thị chuyển
có hướng, có khuyên G được xây dựng như sau:
+ Tập đỉnh của G được gán nhãn bằng các trạng thái qi , với qi ∈ Q.
+ Một cung có hướng từ đỉnh qi sang đỉnh qj và trên cung được gán
nhãn a nếu có hàm chuyển δ (qi , a) = qj . Đối với otomat hữu hạn không
đơn định nếu có δ (qi , a) = {qj1 , qj2 , ..., qjk } thì ta có k cung đi từ đỉnh qi

sang đỉnh qj1 , qj2 ,..., qjk cùng được gán nhãn a.
+ Đỉnh vào của đồ thị G luôn là q0 . Các đỉnh có các trạng thái kết thúc
của đồ thị được vẽ bằng đường tròn nét đậm và các đỉnh còn lại được
vẽ bằng đường tròn nét mảnh.
Ví dụ 1.3.1.
9


a. Cho otomat hữu hạn đơn định A = Q, Σ, δ, q0 , {q3 } , trong đó Q =
(q0 , q1 , q2 , q3 ), Σ = {a, b} và các hàm chuyển δ (q0 , b) = q1 ; δ (q1 , b) = q2 ;
δ (q2 , a) = q3 ; δ (q3 , a) = q3 ; δ (q3 , b) = q3 .
Ta có bảng chuyển và đồ thị chuyển của otomat A được cho trong các
hình sau:

Hình 1.2: Bảng chuyển trạng thái của otomat A

Hình 1.3: Đồ thị chuyển của otomat A

Dãy trạng thái của otomat A đoán nhận từ w = bbabaa. Suy ra từ w
được đoán nhận bởi otomat A. Vậy ngôn ngữ được đoán nhận bởi otomat
A là L (A) = {bbaw | w ∈ {a, b}∗ }.
b. Cho otomat hữu hạn đơn định A = Q, Σ, δ, q0 , {q2 } , trong đó Q =
(q0 , q1 , q2 , q3 ), Σ = {0, 1} và δ (q0 , 1) = q1 ; δ (q1 , 1) = q2 ; δ (q2 , 0) = {q3 };
δ (q3 , 0) = q0 ; δ (q3 , 1) = q1 .
Ta có bảng chuyển và đồ thị chuyển của otomat A được cho trong các
hình sau:
10


Hình 1.4: Quá trình đoán nhận từ w của otomat A


Hình 1.5: Bảng chuyển của otomat A

Dãy trạng thái của otomat A trong quá trình đoán nhận từ w = 110110.
Vậy otomat A không đoán nhận từ w, hơn nữa otomat A đoán nhận
ngôn ngữ L (A) = {(110)n (011)m | n ≥ 1, m ≥ 1}.

11


Hình 1.6: Đồ thị chuyển của otomat A

Hình 1.7: Quá trình đoán nhận từ w của otomat A

Ví dụ 1.3.2. Cho otomat hữu hạn không đơn định A = Q, Σ, δ, q0 , {q0 } ,
trong đó Q = (q0 , q1 , q2 , q3 ), Σ = {0, 1} và δ (q0 , 1) = {q0 , q1 }; δ (q0 , 0) =
q0 ; δ (q1 , 0) = q2 ; δ (q2 , 1) = q0 .
Ta có bảng chuyển và đồ thị chuyển của otomat A được cho trong các
hình sau:

Hình 1.8: Bảng chuyển của otomat A

Dãy trạng thái của otomat A trong quá trình đoán nhận từ w1 =
1100101 và w2 = 1100100.
12


Hình 1.9: Đồ thị chuyển của otomat A

Hình 1.10: Quá trình đoán nhận từ w1 của otomat A


Vậy otomat A đoán nhận từ w1 nhưng không đoán nhận w2 .
1.3.2

Sự tương đương giữa otomat đơn định và không đơn
định

Thuật toán đơn định hóa
Giả sử N = QN , Σ, δN , q0 , FN hay w ∈ L (N ) là otomat không đơn
định, khi đó ta có thể xây dựng otomat đơn định tương đương với otomat
không đơn định N là otomat D = QD , Σ, δD , s0 , FD (theo nghĩa đoán

Hình 1.11: Quá trình đoán nhận từ w2 của otomat A

13


nhận cùng một ngôn ngữ). Việc xây dựng otomat D được thực hiện theo
thuật toán sau đây, được gọi là thuật toán đơn định hóa otomat.
Bước 1 : Xây dựng hàm hai biến T : 2QN × Σ → 2QN thỏa mãn:
+ Với mọi q ∈ QN , a ∈ Σ thì
T (q, a) = {q ∈ QN | q = δ (q, a)} .
+ Với mọi B ⊆ QN , a ∈ Σ mà δ (q, a) = B thì
T (B, a) =

p∈B

T (p, a).

Bước 2 : Xác định tập trạng thái mới QD = s0 , s1 , ..., sk | k ≤ 2|Q| − 1 .

+ Đặt s0 = q0 là trạng thái khởi đầu của D, s1 = q1 , ..., si = qi , với mọi
{q0 }, ∀qi ∈ QN .
+ Đặt si+1 = B1 , si+2 = B2 , ..., với mọi B1 , B2 , ... ⊆ QN mà δ (q, a) = Bj .
+ Nếu otomat N là không đầy đủ, đặt sk = ∅ và thêm vào hàm chuyển
δD các giá trị δD (sk , a) = sk với mọi a ∈ Σ để otomat D là đầy đủ.
+ Tập trạng thái kết thúc của otomat D là FD = {s ∈ Q | s ∩ FN = ∅}.
Bước 3 : Xác định hàm chuyển δD : QD × Σ → QD của otomat D:
δD (s, a) = T (s, a) với mọi s ∈ QD , a ∈ Σ.
Như vậy ta đã xây dựng đựng otomat hữu hạn đơn định D tương đương
với otomat hữu hạn không đơn định N .
Định lý 1.3.1. (Xem [2], Định lý 1) Lớp ngôn ngữ đoán nhận bởi otomat
hữu hạn đơn định trùng với lớp ngôn ngữ đoán nhận bởi otomat hữu hạn
không đơn định.
Chứng minh. Giả sử otomat hữu hạn đơn định D đoán nhận ngôn ngữ
L (D) và otomat hữu hạn không đơn định B đoán nhận ngôn ngữ L (N ).
Ta phải chứng minh L (D) ≡ L (N ). Thật vậy:
Theo định nghĩa otomat đơn định và không đơn định, thì lớp ngôn
ngữ đoán nhận được bởi otomat đơn định nằm trong lớp ngôn ngữ đoán
nhận được bởi otomat không đơn định.
14


Giả sử w ∈ Σ∗ được đoán nhận bởi otomat không đơn định N =
QN , Σ, δN , q0 , FN hay w ∈ L (N ). Ta xây dựng otomat đơn định D =
QD , Σ, δD , s0 , FD đoán nhận w bằng thuật toán đơn định hóa ở trên.
Với otomat đơn định D định nghĩa như thế thì ta có w ∈ L (D) hay
L (N ) ⊆ L (D). Vậy L (D) ≡ L (N ).
Ví dụ 1.3.3. Cho otomat không đơn định N = QN , Σ, δN , q0 , FN với
w ∈ L (N ), trong đó Σ = {a, b}, QN = {q0 , q1 }, FN = {q1 }, còn hàm
chuyển δN : QN → 2Q được cho bởi bảng chuyển sau:


Bước 1 : Xây dựng hàm hai biến T : 2QN × Σ → 2QN :
+ T (q0 , a) = {q0 , q1 } .
+ T (q0 , b) = {q0 } .
+ T (q1 , a) = ∅.
+ T (q1 , b) = {q0 , q1 } .
+ T ({q0 , q1 } , a) = T (q0 , a) ∪ T (q1 , a) = {q0 , q1 } ∪ ∅ = {q0 , q1 } .
+ T ({q0 , q1 } , b) = T (q0 , b) ∪ T (q1 , b) = {q0 } ∪ {q0 , q1 } = {q0 , q1 } .
Bước 2 : Đặt s0 = {q0 }, s1 = {q1 }, s2 = {q0 , q1 }, s3 = ∅. Khi đó:
+ Tập trạng thái của otomat hữu hạn đơn định D là QD = {s0 , s1 , s2 , s3 }.
+ Trạng thái khởi đầu của otomat hữu hạn đơn định D là s0 .
+ Tập trạng thái kết thúc của otomat hữu hạn đơn định D là FD =
{s1 , s2 }.
Bước 3 : Hàm chuyển của otomat hữu hạn đơn định D được xác định
trong bảng chuyển sau:
Dựa vào Định lý 1.3.1 ta thu được otomat đơn định D tương đương
với otomat không đơn định N đã cho hay hai otomat trên cùng đoán
15


nhận một ngôn ngữ.
1.3.3

Quan hệ giữa otomat hữu hạn với ngôn ngữ chính quy

Định lý 1.3.2. Một ngôn ngữ là chính quy khi và chỉ khi nó được đoán
nhận bởi một otomat hữu hạn.
Chứng minh. Điều kiện cần
1. Ngôn ngữ rỗng là ngôn ngữ chính quy được đoán nhận bởi một otomat
rỗng, tức không có đường đi nào từ trạng thái bắt đầu.

2. Ngôn ngữ {ε} được đoán nhận bởi một otomat hữu hạn A = Q, Σ, δ, q0 , F ,
trong đó Q = (q0 , q1 ), F = {q1 } và δ (q0 , ε) = q1 .
3. Ngôn ngữ {a} với a ∈ Σ được đoán nhận bởi một otomat hữu hạn
A = Q, Σ, δ, q0 , F , trong đó Q = (q0 , q1 ), F = {q1 } và δ (q0 , a) = q1 .
4. Nếu A, B là các ngôn ngữ chính quy đoán nhận bởi các otomat hữu
hạn MA , MB thì ta phải chứng minh AB, A ∪ B, A∗ là các ngôn ngữ
chính quy được đoán nhận bởi các otomat hữu hạn MAB , MA∪B và MA∗ .
Giả sử MA = QA , Σ, δA , q0A , FA và MB = QB , Σ, δB , q0B , FB . Khi đó
các otomat trên được biểu diễn như sau:

16


Điều kiện đủ
Giả sử M là một otomat đoán nhận ngôn ngữ L = L (M ). Ta sẽ chứng
minh L là ngôn ngữ chính quy bằng phương pháp quy nạp.
1. Nếu otomat M có tập trạng thái Q gồm hai phần tử là trạng thái ban
đầu s0 và trạng thái kết thúc là st thì suy ra L = L (M ) = {x : x ∈ Σ}.
Vậy theo định nghĩa, L là ngôn ngữ chính quy.
2. Giả sử otomat M có t trạng thái (t ≥ 3) đoán nhận ngôn ngữ chính
quy. Khi đó ta sẽ chứng minh otomat M có t + 1 trạng thái, tức Q =
{s0 , s1 , ..., sm , sm+1 , ..., st−1 , st }, trong đó s0 là trạng thái ban đầu và st
là trạng thái kết thúc đoán nhận ngôn ngữ L.
Gọi L1 là tập các nhãn từ s0 đến st không đi qua sm đoán nhận các
ngôn ngữ L1 và L2 là tập các nhãn từ s0 đến st đi qua sm lần lượt đoán
nhận các ngôn ngữ L2 . Khi đó L = L1 ∪ L2 . Dễ thấy L1 là ngôn ngữ
được đoán nhận bởi otomat có 2 trạng thái nên L1 là ngôn ngữ chính
quy.
Tách tập nhãn L2 thành các tập L3 , L4 , L5 . Trong đó:


17


×