1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

71 717 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 1,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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” đượchoà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ếtquả nghiên cứu trong luận văn này

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜ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

Trang 2

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

Trang 3

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 Đạihọ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ậnlợ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

Trang 4

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” đượchoà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ếtquả nghiên cứu trong luận văn này là trung thực, không trùng lặp vớicá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ậnvă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

Trang 5

Mục lục

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

1.1 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

1.2 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

1.3 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 13

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

2 Một số tính chất của ngôn ngữ chính quy 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 Tính chất đóng đối với các phép toán tập hợp đơn giản 24

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

Trang 6

MỤC LỤC MỤC LỤC

2.3 Các bài toán quyết định 41

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 45 3.1 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

3.2 Ứ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

Trang 7

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 M0 đ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

Trang 8

DANH SÁCH HÌNH VẼ DANH SÁCH HÌNH VẼ

2.11 Otomat M0 đ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ữ L1L−12 40

2.18 Otomat đoán nhận ngôn ngữ L−13 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

Trang 9

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ủakhoa học công nghệ, con người nảy ra nhu cầu tìm kiếm một loại ngônngữ rộng lớn hơn, nó không chỉ phục vụ mục đích giao tiếp giữa conngười với con người mà còn là phương tiện giao tiếp giữa con người vớimá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 duynhấ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 NoamChomsky 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ệcthiết kế ngôn ngữ lập trình hay trong các nghiên cứu về chương trìnhdị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àinghiên cứu của mình là: “Một số tính chất và ứng dụng của ngônngữ 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

Trang 10

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ụngcủ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ệuhữ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ônngữ chính quy Tổng hợp kiến thức và trình bày một cách hệ thống

Trang 11

Đị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 trongbả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áixuấ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 = a1a2 ai, y = b1b2 bj là hai từ Kí hiệu xy

là từ ghép của x và y, khi đó xy = a1a2 aib1b2 bj

Trang 12

Đị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 = {0n1m} là các ngônngữ trên bảng chữ cái Σ = {0, 1}

Trang 13

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

(iii) Không có ngôn ngữ chính quy nào khác trên bảng chữ cái Σ ngoàicá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ầncác phép toán hợp, nhân và lặp

(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, l∗1, l∗2 cũng là các biểu thức chính quy trên bảng chữ cái Σ biểudiễn các ngôn ngữ L1 ∪ L2, L1L2, L∗1, L∗2

Trang 14

(iii) Không có biểu thức chính quy nào khác trên bảng chữ cái Σ ngoàicá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 đươngnế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:

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ínhquy {0, 1}∗{000} {0, 1}∗, tức ngôn ngữ đó gồm tất cả các từ có ba số 0liê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

Trang 15

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 coinhư một máy trừu tượng để đoán nhận ngôn ngữ Otomat hữu hạn đượcchia 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ủanó

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ạngthái

Hoạt động của otomat hữu hạn

Otomat A = hQ, Σ, δ, q0, F i khi cho từ w = a1a2 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ìnvào ô có chữ a1 Sau đó dưới tác động của chữ a1, otomat chuyển sangtrạ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ạngthái q1 nhờ hàm chuyển δ sang trạng thái mới

q2 = δ (q1, a2) = δ ((q0, a1) , a2) = δ (q0, a1a2)

Lặp lại quá trình trên, otomat A sẽ gặp một trong các trường hợpsau:

+ Trường hợp 1: Otomat A đọc hết từ w và δ (qn−1, an) = qn ∈ F thì tanó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)

Trang 16

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ánnhậ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 = hQ, Σ, δ, q0, F i, 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 istic 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 ∈ Σ

(Determin-Otomat A được gọi là otomat hữu hạn không đơn định istic 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 ∈ (Σ ∪ ε)

(Nondetermin-Trong trường hợp δ(q, a) xác định ∀q ∈ Q, ∀a ∈ Σ, ta nói otomat hữuhạ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

Trang 17

Các cách biểu diễn otomat hữu hạn.

Cho otomat hữu hạn A = hQ, Σ, δ, q0, F i, 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

ô (i, j) như sau: (i, j) =

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ánnhã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 qisang đỉ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úccủ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

Trang 18

a Cho otomat hữu hạn đơn định A = hQ, Σ, δ, q0, {q3}i , 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áchì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 = hQ, Σ, δ, q0, {q2}i, 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áchình sau:

Trang 19

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ậnngôn ngữ L (A) = {(110)n(011)m | n ≥ 1, m ≥ 1}

Trang 20

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 = hQ, Σ, δ, q0, {q0}i,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áchì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

Trang 21

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

định

Thuật toán đơn định hóa

Giả sử N = hQN, Σ, δN, q0, FNi 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 otomatkhông đơn định N là otomat D = hQD, Σ, δD, s0, FDi (theo nghĩa đoán

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

Trang 22

nhận cùng một ngôn ngữ) Việc xây dựng otomat D được thực hiện theothuậ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 × Σ → 2Q N thỏa mãn:

+ Với mọi q ∈ QN, a ∈ Σ thì

T (q, a) = {q0 ∈ QN | q0 = δ (q, a)} + Với mọi B ⊆ QN, a ∈ Σ mà δ (q, a) = B thì

T (B, a) = S

p∈BT (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 6= ∅}.Bước 3 : Xác định hàm chuyển δD : QD × Σ → QD của otomat D:

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ônngữ đoán nhận được bởi otomat đơn định nằm trong lớp ngôn ngữ đoánnhận được bởi otomat không đơn định

Trang 23

Giả sử w ∈ Σ∗ được đoán nhận bởi otomat không đơn định N =

hQN, Σ, δN, q0, FNi hay w ∈ L (N ) Ta xây dựng otomat đơn định D =

hQD, Σ, δD, s0, FDi đ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 = hQN, Σ, δN, q0, FNi với

w ∈ L (N ), trong đó Σ = {a, b}, QN = {q0, q1}, FN = {q1}, còn hàmchuyể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:

Trang 24

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ánnhậ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 otomatrỗ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 = hQ, Σ, δ, q0, F i,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 = hQ, Σ, δ, q0, F i, 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ữuhạ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 = hQA, Σ, δA, q0A, FAi và MB = hQB, Σ, δB, q0B, FBi Khi đócác otomat trên được biểu diễn như sau:

Trang 25

2 Giả sử otomat M có t trạng thái (t ≥ 3) đoán nhận ngôn ngữ chínhquy 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ácngôn ngữ L1 và L2 là tập các nhãn từ s0 đến st đi qua sm lần lượt đoánnhậ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ínhquy

Tách tập nhãn L2 thành các tập L3, L4, L5 Trong đó:

Trang 26

L3 là tập các nhãn đi từ s0 đến sm một lần, đoán nhận ngôn ngữ L3;

L4 là tập các nhãn đi từ sm đến sm nhiều lần, đoán nhận ngôn ngữ L4;

L5 là tập các nhãn đi từ sm đến st một lần, đoán nhận ngôn ngữ L5

Từ đây suy ra L2 = L3∪ L4∪ L5 Ta thấy ngôn ngữ L3, L5 là chính quy

vì L3 và có L5 đều có ít hơn t trạng thái Còn ngôn ngữ sinh ra bởi L4

có dạng an dễ thấy là ngôn ngữ chính quy Do đó L2 = L3 ∪ L4 ∪ L5 làngôn ngữ chính quy Vậy L = L1 ∪ L2 cũng là ngôn ngữ chính quy

Trang 27

2.2 Tính chất này cho phép chúng ta xây dựng cách đoán nhận cho cácngôn ngữ được xây dựng từ các ngôn ngữ chính quy khác nhau thôngqua các phép toán Ví dụ giao của hai ngôn ngữ chính quy cũng là ngônngữ chính quy Do đó, cho otomat đoán nhận hai ngôn ngữ chính quykhác nhau, chúng ta có thể xây dựng một otomat đoán nhận ra chínhxác giao của hai ngôn ngữ này Các kết quả chính được lấy từ tài liệutham khảo [6].

Khi một ngôn ngữ được đoán nhận bởi một otomat hữu hạn hoặc đượcxác định bởi một biểu thức chính quy thì nó là ngôn ngữ chính quy Nhưvậy việc chứng minh một ngôn ngữ chính quy là khá dễ dàng bằng mộttrong các cách trên Tuy nhiên để khẳng định một ngôn ngữ không phải

Trang 28

là ngôn ngữ chính quy thì lại không hề đơn giản Như vậy, cần có mộttiêu chuẩn để căn cứ vào đó có thể kết luận một ngôn ngữ không phải

là chính quy, tiêu chuẩn đó chính là bổ đề Bơm

Định lý 2.1.1 (Bổ đề Bơm)(Xem [6, Theorem 4.1]) Cho L là một ngônngữ chính quy Khi đó tồn tại một hằng số n (phụ thuộc vào L) saocho với mỗi chuỗi w trong L mà |w| ≥ n, ta có thể phân tích w thành

w = xyz sao cho:

1 y 6= ε

2 |xy| ≤ n

3 Với mọi i ≥ 0, chuỗi wi = xyiz ∈ L

Chứng minh Vì L là ngôn ngữ chính quy thì tồn tại một otomat hữu hạn

A = hQ, Σ, δ, q0, F i đoán nhận L Giả sử otomat A có Q = {q0, q1, , qn}.Chọn |Q| = n

Lấy bất kỳ w = a1a2 am ∈ L sao cho |w| = m ≥ n Khi đó ta cóδ(q0, w) ∈ F , tức tồn tại dãy các trạng thái xuất hiện trong quá trìnhđoán nhận w là q0, q1, q2, , qm Vì |w| = m nên dãy trạng thái có m + 1phần tử Mà m + 1 ≥ n + 1 nên suy ra trong dãy trên có ít nhất haitrạng thái trùng nhau Không làm giảm tính tổng quát giả sử trạng thái

đó là qi = qk, 0 ≤ i < k ≤ n với k là số nhỏ nhất mà ta có qi = qk Khi

đó ta có thể phân tích w = xyz thỏa mãn:

Vì 0 ≤ i < k ≤ n nên |y| ≥ 1 hay y 6= ε và |xy| ≤ n Từ đây suy ra:

Trang 29

δ(q0, x) = qi = qk = δ(q0, xy).

Mặt khác

δ(q0, x) = δ(q0, xy) = δ(δ(q0, x), y) = δ(δ(q0, xy), y) = δ(q0, xy2).Tương tự, ta có:

δ(q0, x) = δ(q0, xy2) = δ(δ(q0, x), y2) = δ(δ(q0, xy), y2) = δ(q0, xy3).Tiếp tục như trên ta được:

δ(q0, x) = δ(q0, xyi), ∀i ∈ N

Cuối cùng ta có:

δ(q0, xyiz) = δ(δ(q0, xyi), z) = δ(δ(q0, xy), z) = δ(q0, xyz) ∈ F Vậy wi = xyiz ∈ L, ∀i = 0, 1, 2, Định lý được chứng minh

Ví dụ 2.1.1 Chứng minh các ngôn ngữ sau không là ngôn ngữ chínhquy:

a L = {0n1m | 0 < n ≤ m}

b L = {0n1m2n | n, m là các số nguyên dương bất kỳ}

c L = {0t3 | t là một số nguyên dương bất kỳ}

Giải

a Giả sử L là ngôn ngữ chính quy Khi đó tồn tại otomat hữu hạn A có

n trạng thái đoán nhận L Lấy w = 0n1m ∈ L, dễ thấy

Trang 30

w = xyz = 0a0b1m.Với i = m + 1, ta thấy

wm+1 = xym+1z = 0a0b(m+1)1m = 0a+b+mb1m = 0n+mb1m

Mà n + mb > m, ∀1 ≤ b ≤ n Suy ra wm+1 = xym+1z /∈ L (mâu thuẫnvới giả sử) Vậy L không là ngôn ngữ chính quy

b Giả sử L là ngôn ngữ chính quy Khi đó tồn tại otomat hữu hạn A

có n trạng thái đoán nhận L Lấy w = 0n1m2n ∈ L, dễ thấy

w2 = xy2z = 0a02b1m2n = 0a+2b1m2n = 0n+b1m2n

Mà n + b > n, ∀1 ≤ b ≤ n Suy ra w2 = xy2z /∈ L (mâu thuẫn với giảsử) Vậy L không là ngôn ngữ chính quy

c Giả sử L là ngôn ngữ chính quy Khi đó tồn tại otomat hữu hạn A

có n trạng thái đoán nhận L Lấy w = 0n3 ∈ L, dễ thấy

|w| = n3 ≥ n, ∀n ∈ N∗

Trang 31

Theo bổ đề Bơm, ta có thể phân tích w = xyz, trong đó x, y, z ∈ {0, 1}∗thỏa mãn:

|y| ≥ 1, |xy| ≤ n và wi = xyiz ∈ L với ∀i = 0, 1, 2, (2.3)

Từ (2.3) suy ra y = 0b, 1 ≤ b ≤ n và x = 0a, a + b ≤ n Khi đó

w = xyz = 0a0b0n3−a−b.Với i = 2, ta thấy

w2 = xy2z = 0a02b0n3−a−b = 0a+2b+n3−a−b = 0n3+b

Do 1 ≤ b ≤ n nên

n3 < n3 + 1 ≤ n3 + b ≤ n3 + n < (n + 1)3, ∀n ∈ N∗

Suy ra n3+ b không thể là lập phương của một số nguyên dương nào đó

Vì thế w2 ∈ L (mâu thuẫn với giả sử) Vậy L không là ngôn ngữ chính/quy

Trong mục này, chúng ta sẽ chứng minh một số định lý dạng "nếu một

số ngôn ngữ cho trước là chính quy và một ngôn ngữ L được hình thành

từ chúng bởi các phép toán nhất định (ví dụ L là hợp của hai ngôn ngữchính quy) thì L cũng là chính quy" Những định lý này thường đượcgọi là các tính chất đóng của các ngôn ngữ chính quy vì chúng cho thấyrằng các lớp ngôn ngữ chính quy được đóng lại theo các phép toán được

đề cập Các tính chất đóng thể hiện ý tưởng rằng khi một (hoặc nhiều)ngôn ngữ là chính quy thì một số ngôn ngữ liên quan đến cũng chínhquy Chúng cũng là một minh hoạ thú vị về các cách biểu diễn tươngđương của ngôn ngữ chính quy (otomat và biểu thức chính quy) củng cốlẫn nhau trong hiểu biết của chúng ta về lớp ngôn ngữ này Đây là mộtbản tóm tắt về tính đóng chính của các ngôn ngữ chính quy:

Trang 32

1 Nhân ghép, hợp và bao đóng hai ngôn ngữ chính quy là chính quy.

2 Phần bù một ngôn ngữ chính quy là chính quy

3 Giao của hai ngôn ngữ chính quy là chính quy

4 Hiệu của hai ngôn ngữ chính quy là chính quy

5 Đảo ngược của một ngôn ngữ chính quy là chính quy

6 Một đồng hình của một ngôn ngữ chính quy là chính quy

7 Một đồng hình ngược của một ngôn ngữ chính quy là chính quy

8 Cắt của hai ngôn ngữ chính quy là chính quy

2.2.1 Tính chất đóng đối với các phép toán tập hợp đơn giảnĐịnh lý 2.2.1 Cho L1, L2 là các ngôn ngữ chính quy trên bảng chữ cái

Σ Khi đó L1L2, L1 ∪ L2, L∗1 cũng là các ngôn ngữ chính quy

Chứng minh Dựa vào Định nghĩa 1.2.1 ta có thể suy ra L1L2, L1 ∪ L2

và L∗1 là các ngôn ngữ chính quy

Định lý 2.2.2 Cho L1, L2 là các ngôn ngữ chính quy trên bảng chữ cái

Σ Khi đó:

(i) L1 = Σ∗ − L1 là ngôn ngữ chính quy

(ii) L1 ∩ L2 là ngôn ngữ chính quy

Chứng minh

(i) Vì L1 là ngôn ngữ chính quy nên tồn tại một otomat hữu hạn đơnđịnh A = hQ, Σ, δ, q0, F i đoán nhận L1 Giả sử tồn tại otomat hữuhạn đơn định B = hQ, Σ, δ, q0, Q \ F i đoán nhận ngôn ngữ L1 Lấybất kỳ w ∈ L1 ta sẽ chứng minh w /∈ L1 Thật vậy:

Vì w ∈ L1 nên δ0(q0, w) ∈ Q \ F Suy ra δ0(q0, w) không thể thuộc

F Do đó w /∈ L1 Vậy L1 = Σ∗ − L1 là ngôn ngữ chính quy

Trang 33

(ii) Để chứng minh L1 ∩ L2 là ngôn ngữ chính quy ta có hai cách.

Cách 1 : Dựa vào luật DeMorgan Ta thấy L1∩ L2 = L1 ∪ L2 Theochứng minh trên do L1, L2 là các ngôn ngữ chính quy nên L1 và L2cũng là các ngôn ngữ chính quy Mà hợp của hai ngôn ngữ chínhquy là một ngôn ngữ chính quy suy ra L1 ∪ L2 là ngôn ngữ chínhquy Dựa vào chứng minh (i) lần nữa ta chứng minh được L1 ∩ L2

là ngôn ngữ chính quy

Cách 2 : Xây dựng otomat đoán nhận ngôn ngữ L1∩ L2 Giả sử haiotomat hữu hạn đơn định A = hQ1, Σ, δ1, s0, F1i, B = hQ2, Σ, δ2, t0, F2ilần lượt đoán nhận hai ngôn ngữ L1 và L2 Khi đó ta đi xây dựngotomat hữu hạn đơn định M = hQ, Σ, δ, q0, F i đoán nhận ngôn ngữL1 ∩ L2 như sau:

Q = Q1 × Q2, q0 = (s0, t0) ∈ Q và F = F1 × F2,còn hàm chuyển

δ ((s, t) , a) = (δ1(s, a) , δ2(t, a)) với s ∈ Q1, t ∈ Q2, a ∈ Σ

Lấy bất kỳ w ∈ L1∩ L2, ta sẽ chứng minh w ∈ L1 và w ∈ L2 Thậtvậy, vì w ∈ L1 ∩ L2 nên

δ(q0, w) = δ((s0, t0), w) = (δ1(s0, a) , δ2(t0, a)) ∈ F

Mà F = F1 × F2 nên suy ra:

δ1(s0, w) ∈ F1 và δ2(t0, w) ∈ F2

Từ đó suy ra w ∈ L1 và w ∈ L2 Vậy L1∩ L2 là ngôn ngữ chính quy

Ví dụ 2.2.1 Trên bảng chữ cái Σ = {0, 1}, cho ngôn ngữ L1 = {w01 |

w ∈ Σ∗ Tìm ngôn ngữ L1

Giải

Trang 34

Ngôn ngữ L1 là tập tất cả các từ kết thúc bằng 01, được đoán nhận bởiotomat A = h{q0, q1, q2} , {0, 1} , δ1, q0, {q2}i.

Hình 2.1: Otomat đoán nhận ngôn ngữ L1

Hình 2.2: Otomat đoán nhận ngôn ngữ L1

Ví dụ 2.2.2 Trên bảng chữ cái Σ = {a, b, c}, cho hai ngôn ngữ

L1 = ancb2m | n ≥ 0, m ≥ 0

và L2 = a2ncbm | n ≥ 0, m ≥ 0 Tìm otomat hữu hạn đơn định đoán nhận ngôn ngữ L1 ∩ L2

GiảiNgôn ngữ L1 được đoán nhận bởi otomat

A = h{s0, s1, s2, s3} , {a, b, c} , δ1, s0, {s1, s3}i Ngôn ngữ L2 được đoán nhận bởi otomat

Trang 35

Hình 2.3: Otomat đoán nhận ngôn ngữ L1

B = h{t0, t1, t2, t3} , {a, b, c} , δ2, t0, {t2, t3}i Dựa vào chứng minh (ii) của Định lý2.2.2 trên ta xây dựng được otomat

Hình 2.4: Otomat đoán nhận ngôn ngữ L2

M = hQ, Σ, δ, q0, F i đoán nhận ngôn ngữ L1 ∩ L2 như sau:

Ngày đăng: 28/05/2018, 15:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w