1. Trang chủ
  2. » Công Nghệ Thông Tin

Lý thuyết automata và ngôn ngữ hình thức - Bài 3 potx

68 786 8
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lý Thuyết Automata Và Ngôn Ngữ Hình Thức - Bài 3 Potx
Tác giả Phd. C.T.Ha
Người hướng dẫn TS. Hà Chí Trung
Trường học Le Quy Don Technical University
Chuyên ngành Khoa Học Máy Tính
Thể loại Giáo trình
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 68
Dung lượng 2,49 MB

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

Nội dung

Ngôn ngữ và automata hữu hạn Formal Languagues and Finite Automata 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

Trang 1

Automata

Trang 2

2

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

(Formal Languagues and

Finite Automata)

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

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

Trang 3

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

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

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

Trang 4

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

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

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

4

Trang 5

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ó

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 ;

 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;

Trang 6

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

6

DFA (Deterministic

Finite Automata)

NFA (Nondeterministic

Finite Automata)

RE (Regular Expression)

RG (Regular Grammar) or RL

FA (Finite Automata)

Trang 7

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, trang thái đầu tiên (start state);

 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

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

Trang 8

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

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

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

8

Trang 9

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 0  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 đủ

Trang 10

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

Trang 11

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

Trang 12

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

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

12

Trang 13

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:

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

Trang 14

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

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

 Quá trình đoán nhận các xâu: 001011, 101010, 10010

Trang 15

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

 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:

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

 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

' q , F

Trang 16

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;

Trang 17

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

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

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

17

Trang 18

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

thúc bằng 01

Trang 19

19

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

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

Trang 20

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 đó:

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

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

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

Trang 21

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) }

= δ( δ(q,w), a)

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

 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}

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

Trang 22

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

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

Trang 23

q4

Ø {q4}

q3

{q2} {q2}

q0

1

0 Trạng thái

Input

• δ(q0, 01) = δ( δ(q0, 0), 1) = δ({q0, q3},1) = δ(q0, 1)

Trang 24

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

24

Ví dụ 3.6:

Trang 25

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

25

Ví dụ 3.7:

Trang 26

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

26

Ví dụ 3.8:

Trang 27

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

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

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

27

Trang 28

28

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

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 đó:

Trang 29

29

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

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

Trang 30

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

30

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

Trang 31

31

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

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

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

Trang 32

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 {}*:

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

2 *(P) = qP*(q)

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

Trang 33

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)}

Trang 34

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

Trang 35

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

Trang 36

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

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

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

36

Trang 37

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

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

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

Trang 38

38

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

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 Đổi tên các trạng thái [q0, q1, …, qi]

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

Trang 40

40

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

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

Trang 41

DFA:

0

1

Trang 42

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

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

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

42

Trang 43

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 q 0 nếu *( q 0 ) chứa ít nhất một trạng thái

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

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

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

Trang 44

44

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

Tìm kiếm T = * (q 0 ) ; T chưa được đánh dấu;

Thêm T vào tập Q’ (of DFA);

while (xét trạng thái TQ’ chưa đánh dấu) {

Trang 45

q1

{q2} {q1, q2}

Inputs δ’

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

Trang 46

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

Trang 47

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

0,1, ,9

Trang 48

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

Trang 49

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

Trang 50

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

Trang 51

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

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

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

51

Trang 52

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ì:

Trang 53

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

Trang 54

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

Trang 55

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

Trang 56

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

Do đó: 01* + 1 được hiểu như sau: (0(1)*) + 1

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

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

Trang 57

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

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

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

57

Trang 58

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)

Trang 59

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:

Trang 60

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

Trang 61

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

Trang 62

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

Trang 63

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

Trang 64

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

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

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

64

Trang 65

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

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

 Định nghĩa đệ quy của Rk

Trang 66

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

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

 Giả sử ta có bổ đề trên đúng với k-1, tức là tồn tại RE

Trang 67

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

Trang 68

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

Ngày đăng: 06/03/2014, 16:20

HÌNH ẢNH LIÊN QUAN

 Định nghĩa 3.3: Bảng chuyển – bảng có kích cỡ |Q|×|Σ|, - Lý thuyết automata và ngôn ngữ hình thức - Bài 3 potx
nh nghĩa 3.3: Bảng chuyển – bảng có kích cỡ |Q|×|Σ|, (Trang 10)

TỪ KHÓA LIÊN QUAN

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

w