Lý thuyết automata và ngôn ngữ hình thức

Automata

Grammar

Languague

G I Ả N G V I Ê N : T S . H À C H Í T R U N G B Ộ M Ô N : K H M T K H O A C N T T , H V K T Q S Đ T : 0 1 6 8 . 5 5 8 . 2 1 . 0 2 E M A I L : H C T 2 0 0 9 @ Y A H O O . C O M

© PhD. C.T.Ha, Le Quy Don Technical University

Bài 3. Ngôn ngữ và automata hữu hạn (Formal Languagues and Finite Automata)

2

MỤC ĐÍCH:

 Trang bị những khái niệm về automata hữu hạn (FA);  Phân loại FA;  các phép biến đổi tương đương giữa các loại FA;  Biểu thức chính qui (RE) và sự tương đương với FA;

YÊU CẦU:

 Sinh viên nắm vững các khái niệm, các thuật toán biến đổi

© PhD. C.T.Ha, Le Quy Don Technical University

và làm các dạng bài tập.

Bài 3. Ngôn ngữ và automata hữu hạn

3

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε (NFAε) 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

Bài 3. Ngôn ngữ và automata hữu hạn

4

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε (NFAε) 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

3.1. Các khái niệm sơ lược

5

 Automata là một máy trừu tượng (mô hình tính toán) có cơ cấu và hoạt động đơn giản nhưng có khả năng đoán nhận ngôn ngữ.

 Finite automata (FA) - mô hình tính toán hữu hạn: có

 Sự phân biệt giữa các loại automata khác nhau chủ yếu dựa trên việc thông tin có thể được đưa vào memory hay không;

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

khởi đầu và kết thúc, mọi thành phần đều có kích thước hữu hạn cố định và không thể mở rộng trong suốt quá trình tính toán;  Hoạt động theo theo từng bước rời rạc (steps);  Nói chung, thông tin ra sản sinh bởi một FA phụ thuộc vào cả thông tin vào hiện tại và trước đó. Nếu sử dụng bộ nhớ (memory), giả sử rằng nó có ít nhất một bộ nhớ vô hạn;

3.1. Các khái niệm sơ lược

6

DFA (Deterministic Finite Automata)

RE (Regular Expression)

FA (Finite Automata)

RG (Regular Grammar) or RL

NFA (Nondeterministic Finite Automata)

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.1. Các khái niệm sơ lược

7

 Đoán nhận ngôn ngữ: đoán nhận các từ của ngôn ngữ đó.  Hoạt động của automata bắt đầu từ một trạng thái đặc biệt,

 Giả sử rằng tại mỗi thời điểm (step, time step), automata đang ở một trạng thái nào đó (current state), đầu vào của automata đón nhận một ký tự của chuỗi cần xử lý, dưới tác động của ký tự đó automata chuyển sang một trạng thái kế tiếp (next state);

 Chuỗi được đoán nhận nếu trạng thái cuối cùng của

trang thái đầu tiên (start state);

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

automata rơi vào một trong các trạng thái kết thúc (finish states).

Bài 3. Ngôn ngữ và automata hữu hạn

8

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε (NFAε) 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

3.2. Automata hữu hạn đơn định (DFA)

9

 Định nghĩa 3.1: một DFA là một bộ năm:

A=(Q, Σ, δ, q0, F),

trong đó:

Q : tập khác rỗng, tập hữu hạn các trạng thái (p, q…); Σ : bộ chữ cái nhập vào (a, b, c …); δ : D→ Q, hàm chuyển (hay ánh xạ), D ⊆ Q × Σ, có

28/03/2012

nghĩa là δ(p, a) =q hoặc δ(p, a) = Ø, trong đó p, q  Q , a  Σ;

q0  Q : trạng thái bắt đầu (start state); F  Q : tập các trạng thái kết thúc (finish states). Trong trường hợp D = Q × Σ ta nói A là một DFA đầy đủ. Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.2. Automata hữu hạn đơn định (DFA)

10

 Biểu diễn automata: Cho một automata thực chất là cho hàm chuyển trạng thái của nó, có thể cho dưới dạng bảng chuyển trạng thái hoặc cho dưới dạng đồ thị chuyển.

 Định nghĩa 3.2: Đồ thị chuyển là một đa đồ thị có hướng (có thể có khuyên) G: Tập đỉnh của G được gán nhãn bởi các phần tử thuộc Q, các cung được gán nhãn bởi các phần tử thuộc Σ, nếu a ∈ Σ, p,q ∈ Q và δ(q, a) = p thì sẽ có một cung từ đỉnh q tới đỉnh p được gán nhãn a. Đỉnh vào của đồ thị chuyển ứng với trạng thái ban đầu q0.

 Định nghĩa 3.3: Bảng chuyển – bảng có kích cỡ |Q|×|Σ|, trong đó dòng i cột j của bảng là 𝛿(𝑞𝑖, 𝑎𝑗) hoặc bỏ trống.

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.2. Automata hữu hạn đơn định (DFA)

11

Trạng thái bắt đầu

Trạng thái kết thúc

x Phép chuyển trên nhãn x

1

Bảng chuyển Đồ thị chuyển

q0

q1

1

0 0 0 0

1

q3 q2

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

1

3.2. Automata hữu hạn đơn định (DFA)

12

11 0

1

0,1

1

111 0111 1

0 0

1

Thứ tự đọc từ trái qua phải

Automata đoán nhận chuỗi khi đọc hết xâu và rơi vào trạng thái kết thúc

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.2. Automata hữu hạn đơn định (DFA)

13

 Ví dụ 3.1: Cho automata A = ({q0; q1; q2}; {0, 1}, , q0, {q1}) với hàm chuyển được cho dưới dạng bảng chuyển và đồ thị chuyển như sau:

Ngôn ngữ được đoán nhận bởi automat A:

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

L = {1*0*01x : x  {0, 1}*}

3.2. Automata hữu hạn đơn định (DFA)

14

 Ví dụ 3.2: Automat sau nhận dạng ngôn ngữ gồm chẵn các

số 1 và chẵn các số 0.

28/03/2012

 Quá trình đoán nhận các xâu: 001011, 101010, 10010 Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.2. Automata hữu hạn đơn định (DFA)

15

 Định nghĩa 3.4: Mở rộng của một ánh xạ δ là δ’ biến đổi

(trạng thái, chuỗi) sang trạng thái. Có nghĩa là:

 Chuỗi ω = a1a2...an được đoán nhận bởi DFA A (có nghĩa là ) nếu tồn tại một đường đi bắt đầu từ trạng thái đầu q0 và kết thúc ở trạng thái kết với dãy nhãn của đường đi là a1a2...an.

 Ngôn ngữ được chấp nhận bởi một automata A:

1. δ’(q, ) = q; 2. δ’(q, wa) = δ’(δ’(q,w), a) với  w, a.

 Các ngôn ngữ chấp nhận bởi automata hữu hạn đơn định

được gọi là ngôn ngữ chính quy.

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

L(A) = { x | δ’( q0, x )  F }

3.2. Automata hữu hạn đơn định (DFA)

16

 Thuật toán đoán nhận chuỗi:

q:= q0; c:= ký hiệu tiếp theo của chuỗi; while (C < > ε) do {

q:= δ(q, c); c:= ký hiệu tiếp theo của chuỗi;

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

}; if (q in F) return (true); else return (false);

Bài 3. Ngôn ngữ và automata hữu hạn

17

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε (NFAε) 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE 3.7.4. Sự tương đương giữa NFAε và RE

3.3. Automata hữu hạn đa định (NFA)

18

 DFA tại một thời điểm với một trạng thái và một ký tự nhập vào thì máy chỉ có thể chuyển đến không nhiều hơn một trạng thái.

 NFA là automata mà ứng với một trạng thái và một ký tự nhập, có thể có không, một hoặc nhiều phép chuyển trạng thái.

 Ví dụ 3.3: automata đa định sau nhận dạng các xâu kết

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

thúc bằng 01

3.3. Automata hữu hạn đa định (NFA)

19

 Xét quá trình automata A nhận dạng xâu 00101:

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.3. Automata hữu hạn đa định (NFA)

20

 Định nghĩa 3.5: Automat hữu hạn đa định được định

nghĩa bởi bộ 5:

A = (Q, , , q0, F)

trong đó:

Q - tập hữu hạn các trạng thái.  - là tập hữu hạn các chữ cái.  - là ánh xạ chuyển trạng thái. : Q   2Q q0  Q là trạng thái khởi đầu. F  Q là tập trạng thái kết;

 Ánh xạ δ là một hàm đa trị (hàm không đơn định), vì vậy A

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

được gọi là không đơn định;

3.3. Automata hữu hạn đa định (NFA)

21

 Chú ý: khái niệm δ(q, a) là tập hợp tất cả các trạng thái p

sao cho có phép chuyển từ trạng thái q trên nhãn a.  ĐN 3.6: Hàm chuyển trạng thái mở rộng (của NFA):

1. δ(q, ) = {q} 2. δ(q, wa) = { p | r trong δ(q, w) mà pδ(r, a) }

 Ngôn ngữ L(A), với A là NFA (Q, Σ, δ, q0, F) là tập hợp : L(A) = {w | δ(q0, w) có chứa một trạng thái trong F}

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

= δ( δ(q,w), a) 3. δ(P, w) = qP δ(q, w) với P  Q

3.3. Automata hữu hạn đa định (NFA)

22

 Ví dụ 3.4: cho automata (hình vẽ) và xét chuỗi nhập 01001

0 0 0 1 1 q0 q0 q0 q0 q0 q0

0 1 0 0 1

q3 q1 q3 q3 q1

0

q4

q4

 Ngôn ngữ được đoán nhận bởi automata cho ở trên???

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

1

3.3. Automata hữu hạn đa định (NFA)

23

Ví dụ 3.5: xét chuỗi nhập w=01001 và NFA đã cho ở trên

A = ( {q0, q1, q2, q3, q4}, {0, 1}, δ, q0, {q2, q4}) Bảng chuyển Hàm chuyển mở rộng

δ

Input

Trạng thái q0 q1 q2 q3 q4

0 {q0,q3} Ø {q2} {q4} {q4}

1 {q0,q1} {q2} {q2} Ø {q4}

• δ(q0, 0) = {q0,q3} • δ(q0, 01) = δ( δ(q0, 0), 1) = δ({q0, q3},1) = δ(q0, 1)  δ(q3, 1) = {q0, q1} • δ(q0, 010) = {q0, q3} • δ(q0, 0100) = {q0, q3, q4} • δ(q0, 01001) = {q0, q1, q4}

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

Do q4  F nên w=01001  L(A)

3.3. Automata hữu hạn đa định (NFA)

24

 Ví dụ 3.6:

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.3. Automata hữu hạn đa định (NFA)

25

 Ví dụ 3.7:

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.3. Automata hữu hạn đa định (NFA)

26

 Ví dụ 3.8:

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

Bài 3. Ngôn ngữ và automata hữu hạn

27

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε (NFAε) 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

3.4. NFA với dịch chuyển ε

28

• Ví dụ 3.9: Xây dựng automata đoán nhận chuỗi:

0*1* 2*

• Định nghĩa 3.7: NFA với -dịch chuyển (ký hiệu: NFA) là bộ năm:

A= (Q, , , q0, F),

trong đó:

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

Q: tập hữu hạn các trạng thái; : tập hữu hạn các chữ cái; : Q( {})  2Q ; q0 là trạng thái ban đầu; F Q là tập trạng thái kết thúc.

3.4. NFA với dịch chuyển ε

29

 Ví dụ 3.9: xây dựng NFA chấp nhận chuỗi 0*1*2*

 Cách 1: ????

0 1 2

Start 0, 1 1, 2

q0

q1

q2

 Cách 2:

0, 1, 2

1

0 2

Start  

 Có chăng sự tương đương giữa NFA với NFAε ???

28/03/2012

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

q0 q1 q2

3.4. NFA với dịch chuyển ε

30

0,1,...,9

0,1,...,9

,+,-

0,1,...,9

.

Ví dụ 3.10: tìm automata biểu diễn các số thực. 1. Có thể có một dấu + hoặc - ở đầu. 2. Sau đó là một xâu ký tự "0",..."9" 3. Dấu chấm. 4. Một xâu ký tự "0",..."9" khác.

0,1,...,9

.

q0 q1 q3 q5 q2

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

q4

3.4. NFA với dịch chuyển ε

31

 Ví dụ 3.11: Automat cho ví dụ trước:

 Bảng chuyển của automata E có dạng:

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.4. NFA với dịch chuyển ε

32

 ĐN 3.10: Hàm chuyển trạng thái mở rộng (của NFA):

mở rộng δ thành δ* 1. δ* : Q x Σ* → 2Q 2. δ*(q, w) = { p | có đường đi từ q tới p theo nhãn w, trên

đường đi có thể chứa cạnh nhãn  }

 ĐN 3.11: bao đóng  ký hiệu -CLOSURE(), *) là tất

cả các trạng thái có thể chuyển tới bằng dãy {}*:

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1. *(q) = { p | có đường đi từ q tới p theo nhãn  } 2. *(P) = qP *(q)

3.4. NFA với dịch chuyển ε

33

 Ta có:

1. δ*(q, ) = *(q) 2. δ*(q,a) = *(δ(δ*(q, ),a)) = *(δ(*(q),a)) 3. δ*(q, wa) = *( δ( δ*(q, w), a)) hoặc

δ*(q, wa) = *(P) với P = { p | r  δ*(q, w), p  δ(r, a)}

 Ví dụ 3.12: Cho automata sau, xác định ánh xạ mở rộng

4. δ*(R, w) = qR δ*(q, w)

δ*(q0, 012)

0 1 2

Start  

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

q1 q2 q0

3.4. NFA với dịch chuyển ε

34

 w = 012

= *({q1}) = {q1,q2}

δ*(q0, ) = *(q0) = {q0, q1, q2} δ*(q0, 0) = * (δ(δ*(q0, ), 0)) = *(δ({q0, q1, q2}, 0)) = *(δ(q0, 0)  δ(q1, 0)  δ(q2, 0) ) = *({q0}     ) = *({q0}) = {q0, q1, q2} δ*(q0, 01) = *(δ(δ*(q0, 0), 1)) = *(δ({q0, q1, q2}, 1)) δ*(q0, 012) = *(δ(δ*(q0, 01), 2)) = *(δ({q1, q2}, 2)) = *({q2}) = {q2}

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

• Do q2  F nên w  L(A).

3.4. NFA với dịch chuyển ε

35

 Giải thuật đoán nhận chuỗi của NFA  Input: chuỗi nhập x$  Output: true(x được chấp nhận) hoặc false.

P = *(q0); c = nextchar; while (c <> $) {

P = * (δ(q, c)); c = nextchar;

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

} if (p  P in F)return true; else return false;

Bài 3. Ngôn ngữ và automata hữu hạn

36

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

3.5. Sự tương đương giữa DFA và NFA

37

 Nhận xét: Việc thiết kế các NFA dễ dạng hơn so với DFA vì không bị ràng buộc. Rõ ràng DFA chỉ là một trường hợp riêng của NFA.

 Câu hỏi: Liệu lớp ngôn ngữ nhận biết bởi NFA có rộng hơn

DFA?

 Trả lời: Với mọi ngôn ngữ L nhận biết bởi một NFA thì đều

 Định lý 1: Nếu L là tập được chấp nhận bởi một NFA thì tồn

có một DFA nhận biết L.

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

tại một DFA chấp nhận L.

3.5. Sự tương đương giữa DFA và NFA

38

 Giải thuật tổng quát xây dựng DFA từ NFA:

với q0, q1, …, qi  Q;

Giả sử NFA A={Q, Σ, δ, q0, F} chấp nhận L, giải thuật xây dựng DFA A’={Q’, Σ, δ’, q0’, F’} chấp nhận L như sau: o Q’ = 2Q , phần tử trong Q’ được ký hiệu là [q0, q1, …, qi]

o q0’ = [q0]; o F’ là tập hợp các trạng thái của Q’ có chứa ít nhất một

trạng thái kết thúc trong tập F của A;

o Hàm chuyển δ’([q1, q2,..., qi], a) = [p1, p2,..., pj] nếu và chỉ

nếu δ({q1, q2,..., qi }, a) = {p1, p2,..., pj}.

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

o Đổi tên các trạng thái [q0, q1, …, qi].

3.5. Sự tương đương giữa DFA và NFA

39

 Ví dụ 3.13: NFA A({q0, q1}, {0, 1}, δ, q0, {q1}):

NFA:

0 1

0,1

q0 q1

 Xây dựng DFA tương đương: A’ (Q’, {0, 1}, δ’, [q0], F’): o Q’ = {, [q0], [q1], [q0, q1]} o F’ = {[q1], [q0, q1]} o Hàm chuyển δ’:

1

DFA: 0,1

1 1

0

q0 q1 q2

δ’([q0], 0) = [q0, q1] δ’([q0], 1) = [q1] δ’([q1], 0) =  δ’([q1], 1) = [q0, q1] δ’([q0, q1], 0) = [q0, q1] δ’([q0, q1], 1) = [q0, q1]

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.5. Sự tương đương giữa DFA và NFA

40

 Ví dụ 3.13: Tìm DFA tương đương cho NFA trong ví dụ 3.3.

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.5. Sự tương đương giữa DFA và NFA

41

NFA: 0,1 DFA (đổi tên các nhãn):

1 0 1 0 q0 q1 q2

0

q0

q1

q2

1

0

0

1

DFA: 1

1 0

[q0] [q0, q1] [q0, q2]

0

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1

Bài 3. Ngôn ngữ và automata hữu hạn

42

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính qui

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

3.6. Sự tương đương giữa NFA và DFA

43

 Định lý 2: Nếu L được chấp nhận bởi một NFA thì L cũng

được chấp nhận bởi một NFA không có -dịch chuyển.

 Thuật toán: Giả sử ta có NFA A(Q, Σ, δ, q0, F) chấp nhận

L, ta xây dựng: NFA A’={Q, Σ, δ’, q0, F’} như sau: 1. F’ = F  q0 nếu *( q0) chứa ít nhất một trạng thái

thuộc F. Ngược lại, F’ = F;

 Hệ quả: Nếu L là tập được chấp nhận bởi một NFA thì tồn

2. δ’(q, a) = δ*(q, a).

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

tại một DFA chấp nhận L.

3.6. Sự tương đương giữa NFA và DFA

44

 Giải thuật xây dựng δ’ cho DFA tương đương:

Tìm kiếm T = * (q0) ; T chưa được đánh dấu; Thêm T vào tập Q’ (of DFA); while (xét trạng thái T  Q’ chưa đánh dấu){

Đánh dấu T; forearch (với mỗi ký hiệu nhập a){

U:= *((T,a)); if(U không thuộc tập trạng thái Q’){

add U to Q’; Trạng thái U chưa được đánh dấu;

} [T,a]= U;

}

}

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.6. Sự tương đương giữa NFA và DFA

45

0

1

2

Start

 Ví dụ 3.14: Xây dựng NFA tương đương.

q0

q2

q1

0

1

2

Start

0, 1

1, 2

q0

q2

q1

 M’ = {Q, Σ, δ’, q0, F’} o Q = {q0, q1, q2} o Σ = {0, 1, 2}

0, 1, 2

Inputs

δ’

0 {q0, q1, q2} 

1 {q1, q2} {q1, q2} 

Trạng thái q0 q1 q2

2 {q2} {q2} {q2}

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

o Trạng thái bắt đầu: q0 o F’ = {q0, q2} o Hàm chuyển δ’

3.6. Sự tương đương giữa NFA và DFA

46

 Ví dụ 3.15: xây dựng DFA tương đương cho NFA sau:

0,1,...,9

0,1,...,9

,+,-

0,1,...,9

.

0,1,...,9

.

q0 q1 q3 q5 q2

q4

28/03/2012

3.6. Sự tương đương giữa NFA và DFA

47

 DFA tương đương:

0,1,...,9

0,1,...,9

0,1,...,9

+,-

.

[q0, q1]

[q1]

[q1,q4]

[q2,q3,q5]

.

.

0,1,...,9

0,1,...,9

[q3,q5]

0,1,...,9

28/03/2012

[q2]

3.6. Sự tương đương giữa NFA và DFA

48

 Ví dụ 3.16: xây dựng DFA tương đương với NFA sau: A = (Q={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, Σ={a, b}, δ, 0, F={10})

a

2 3

    a b b 10 0 1 6 8 7 9

b

4 5

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.6. Sự tương đương giữa NFA và DFA

49

● *(q0) = {0, 1, 2, 4, 7} → q0’ = [0, 1, 2, 4, 7] = A ● *(δ(A, a)) = *({3, 8}) = {1, 2, 3, 4, 6, 7, 8} → B ● *(δ(A, b)) = *({5}) = {1, 2, 4, 5, 6, 7} → C ● *(δ(B, a)) = *({3, 8}) → B ● *(δ(B, b)) = *({5, 9}) = {1, 2, 4, 5, 6, 7, 9} → D ● *(δ(C, a)) = *({3, 8}) → B ● *(δ(C, b)) = *({5}) = → C ● *(δ(D, a)) = *({3, 8}) → B ● * (δ(D, b)) = *({5,10}) = {1, 2, 4, 5, 6, 7, 10} → E ● *(δ(E, a)) = *({3, 8}) → B ● *(δ(E, b)) = *({5}) = → C

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.6. Sự tương đương giữa NFA và DFA

50

• Ký hiệu bắt đầu: q0’ = A (↔ *(q0) ) • Tập trạng thái kết thúc: F’ = {E} (vì trong E có chứa trạng

thái 10  F)

Ký hiệu nhập

b

Trạng thái

a

b

B

C

A

b

B

D

B

C a b

B

C

C

B

E

D

a

a b A B D E b

B

C

E

a

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

a

Bài 3. Ngôn ngữ và automata hữu hạn

51

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

3.7.1. Khái niệm về biểu thức chính quy

52

 Định nghĩa: Biểu thức chính quy được định nghĩa một

cách đệ quy như sau: 1.  là biểu thức chính quy. L()={}.  là biểu thức chính quy. L()={}. nếu a, a là biểu thức chính quy. L(a)={a}. 2. Nếu r, s là các biểu thức chính quy thì:

 ((r)) là biểu thức chính quy. L((r))=L(r);  r+s là biểu thức chính quy. L(r+s)=L(r)L(s);  r.s là biểu thức chính quy. L(r.s)=L(r).L(s);  r* là biểu thức chính quy. L(r*)=L(r)*.

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3. Biểu thức chính quy chỉ định nghĩa như trong 1 và 2.

3.7.1. Khái niệm về biểu thức chính quy

53

 Ví dụ 3.17: biểu thức chính quy: L(00)={00} L((0+1)*) = {0,1}* L((0+1)*011) = {0,1}*011

 00 :  (0+1)* :  (0+1)*011 :  (0+1)*00(0+1)*:L((0+1)*00(0+1)*) = {0,1}*00 {0,1}*  (0+ )(1+10)* : tất cả các chuỗi không có hai số 0 liên

{, 0, 1, 2, 01, 02, 12, 012, 0012, 0112, ... }

 0*1*2* :  00*11*22* = 0+1+2+

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

tiếp = {, 0, 01, 010, 1, 10, 01010, 0111, ... }

3.5.1. Khái niệm về biểu thức chính quy

54

Tính chất đại số của biểu thức chính quy:

• r +  =  + r = r • r + r = r • r + s = s + r • (r + s) + t = r + (s + t) = r + s + t

• * =  • * =  • r*r* = r* • (r*)* = r* • r* =  + r + r2 + … + rk + … • r* =  + r+ • ( + r)+ = ( + r)* = r* • r*r = r r* = r+

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

Phép hợp: Phép bao đóng:

3.7.1. Khái niệm về biểu thức chính quy

55

Tính chất đại số của biểu thức chính quy:

Phép nối kết: Tổng hợp:

• (r* + s*)* = (r*s*)* = (r + s)* • (rs)*r = r(sr)* • (r*s)* r* = (r + s)*

• r = r = r • r = r =  • (r + s) t = rt + st • r (s + t) = rs + rt

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

Thứ tự ưu tiên của phép toán: * (bao đóng), . (phép nối kết), + (phép hợp).

3.7.1. Khái niệm về biểu thức chính quy

56

 Ví dụ 3.18: Biểu thức chính quy cho ngôn ngữ gồm các xâu

nhị phân mà không có hai số 0 hay hai số 1 liên nhau.

(01)*+(10)*+0(10)*+1(01)*

(+1)(01)*(+0)

hoặc là:

 Bài tập: Viết biểu thức chính quy cho ngôn ngữ gồm các

Thứ tự ưu tiên của phép toán: *, . , + Do đó: 01* + 1 được hiểu như sau: (0(1)*) + 1

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

xâu 0, 1 trong đó bắt đầu bằng số 1, kết thúc bằng chuỗi 01.

Bài 3. Ngôn ngữ và automata hữu hạn

57

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

3.7.2. Sự tương đương giữa FA và RE

58

 Sự tương đương giữa DFA, NFA, và ε-NFA đã được thiết lập. Để chứng minh chúng tương đương với biểu thức chính quy (REGEX) ta chỉ cần chứng minh:

1. Với mọi DFA D, có một REGEX R sao cho L(R)=L(D). 2. Với mọi RE R có NFAε A sao cho L(A)=L(R).

NFA

DFA

Định lý 1

Định lý 4 Định lý 2

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

NFA RE Định lý 3

3.7.2. Sự tương đương giữa FA và RE

59

 Định lý 3: nếu r là RE thì tồn tại một NFA chấp nhận L(r).  Chứng minh: quy nạp theo số phép toán 1. Xét trường hợp r không có phép toán nào:

Start

Start

Start

a

q0

qf

qf

q0

q0

r = a

r = 

r = 

2. Xét r có i phép toán: r = r1 + r2, r = r1r2 hoặc r = r1* Trước hết ta xây dựng các NFA:

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

A1 = (Q1, Σ1, δ1, q1, {f1}) và A2 = (Q2, Σ2, δ2, q2, {f2}) sao cho L(M1) = L(r1) và L(M2) = L(r2)

3.7.2. Sự tương đương giữa FA và RE

60

Xây dựng NFA A thỏa mãn các RE như sau:

A1

f1

q1

Start

q0

f0

A2

q2

f2

Start

A1

A2

q1

f1

q2

f2

r = r1 + r2

Start

A1

q0

f1

f0

r = r1r2

q1

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

r = r1*

3.7.2. Sự tương đương giữa FA và RE

61

1

Start

q5

q6

1

Start

q1

q2

Ví dụ 3.19: xây dựng NFA chấp nhận RE r = 01* + 1 • r có dạng: r = r1 + r2 với r1 = 01* và r2 = 1 • r1 có dạng r1 = r3r4 với r3 = 0 và r4 = 1* • r4 có dạng r4 = r5* với r5 = 1

r2

Start

1

Start q7

q5

q8

q3

q4

q6

r5 

0 r3

r4 = r5* = 1*

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.7.2. Sự tương đương giữa FA và RE

62

r1 = r3r4 = 01*

0

1

Start

q3

q4

q7

q6

q8

q5

1

q1

q2

Start

q9

q10

1

0

q3

q4

q7

q5

q6

q8

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

r = r1 + r2 = 01* + 1

3.7.2. Sự tương đương giữa FA và RE

63

 Ví dụ: Tìm NFA tương đương cho (0+1)*1(0+1)

1

0

r=(0+1)*

 1   1   r=(0+1)  

0

0  

  

 1 1    

r=(0+1)*1(0+1) 1

   

0 0    

28/03/2012

Bài 3. Ngôn ngữ và automata hữu hạn

64

3.1. Các khái niệm sơ lược 3.2. Automata hữu hạn đơn định (DFA) 3.3. Automata hữu hạn đa định (NFA) 3.4. Automata với dịch chuyển ε 3.5. Sự tương đương giữa DFA và NFA 3.6. Sự tương đương giữa NFAε và DFA 3.7. Biểu thức chính quy

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.7.1. khái niệm về biểu thức chính quy 3.7.2. Sự tương đương giữa FA và RE 3.7.3. Sự tương đương giữa DFA và RE

3.7.3. Sự tương đương giữa DFA và RE

65

 Định lý 4: Nếu L được chấp nhận bởi một DFA, thì L được

 Chứng minh:

 L được chấp nhận bởi DFA A({q1, q2,..., qn}, Σ, δ, q1, F)  Đặt Rk

ký hiệu bởi một RE.

ij = {x | δ(qi, x) = qj và nếu δ(qi, y) = ql (y  x) thì l ≤ k} (có nghĩa là Rk ij - tập hợp tất cả các chuỗi làm cho automata đi từ trạng thái i đến trạng thái j mà không đi ngang qua trạng thái nào lớn hơn k)

Rk

 Định nghĩa đệ quy của Rk ij = Rk-1

ik(Rk-1

kj  Rk-1

R0

ij =

ij: kk)*Rk-1 ij {a | δ(qi, a) = qj}, nếu i ≠ j {a | δ(qi, a) = qj}  {}, nếu i = j

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

3.7.3. Sự tương đương giữa DFA và RE

66

● Ta sẽ chứng minh (quy nạp theo k) bổ đề sau: với mọi Rk

ij

ij . ij là tập hữu hạn các chuỗi 1 ký hiệu hoặc 

lm sao cho L(Rk-1

lm

kj) + rk-1 ij

đều tồn tại một biểu thức chính quy ký hiệu cho Rk  k = 0: R0  Giả sử ta có bổ đề trên đúng với k-1, tức là tồn tại RE lm) = rk-1 Rk-1  Vậy đối với rk ij ta có thể chọn RE: kk)*(rk-1 ik)(rk-1 ij = (rk-1 rk → bổ đề đã được chứng minh

𝑞𝑗∈𝐹

RE:

1j1 + rn

1j2 + … + rn

1jp

. Vậy L có thể được ký hiệu bằng ● nhận xét: 𝐿 𝐴 = Rn 1j

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

r = rn với F = {qj1, qj2, …, qjp}

3.7.3. Sự tương đương giữa DFA và RE

67

 Ví dụ 3.20: viết RE cho DFA sau: 1

1 Start 0

q1 q2 q3

 Ta cần viết biểu thức:

r = r3

12 + r3

13

 Ta có:

r3

12 = r2

13(r2

33)*r2

32 + r2

12

r3

13 = r2

13(r2

33)*r2

33 + r2

13

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

0 0, 1

3.7.3. Sự tương đương giữa DFA và RE

68

k = 0

k = 1

k = 2

(00)*

11

0

0(00)*

0

12

1

0*1

1

13

0

0(00)*

0

21

(00)*

 + 00

22

1 + 01

0*1

1

23

(0 + 1)(00)*0

31

0 + 1

(0 + 1)(00)*

0 + 1

32

rk rk rk rk rk rk rk rk rk

 + (0 + 1)0*1

33

 Thay vào và rút gọn, ta có:

28/03/2012

Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

r = 0*1((0 + 1)0*1)* ( + (0 + 1)(00)*) + 0(00)*