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

Automat hữu hạn tất định (DFA)

62 802 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 62
Dung lượng 828,5 KB

Nội dung

Automat hữu hạn  NFA chấp nhận một chuỗi nhập x nếu và chỉ nếu tồn tại một đường nào đó trong sơ đồ từ trạng thái bắt đầu đến trạng thái kết thúc sao cho tất cả tên của các cạnh của con

Trang 1

CHƯƠNG 3 PHÂN TÍCH TỪVỰNG

Trang 2

Vai trò của bộ phân tích từ vựng

 1 Token, mẫu, trị từ vựng:

Trang 3

Sự giao tiếp giữa bộ phân tích từ vựng

và bộ phân tích cú pháp

Trang 4

CÁC TÍNH CHẤT CỦA TOKEN

 Phân tích từ vựng phải có nhiệm vụ chọn thông tin

có liên quan đến token, để cất chúng vào bảng

danh biểu (Ví dụ trị từ vựng)

 Token luôn mang trong mình một thuộc tính duy

nhất là con trỏ để chỉ đến vị trí của nó trong bảng danh biểu

 Khi một token được chuyển đến bộ phân tích cú

pháp nó sẽ có dạng

<Token, thuộc tính>

Trang 6

else p2 := p2 + 1;

Trang 7

Phương pháp cầm canh

Trang 10

Đặc tả token

Các quy tắc định nghĩa biểu thức chính quy

1 là biểu thức chính quy, biểu thị cho tập { }

2 a là ký hiệu thuộc , biểu thị cho tập {a}

3 r và s là hai biểu thức chính quy, biểu thị cho L(r) và L(s)

thì:

a) (r)|(s) là biểu thức chính quy, biểu thị cho L(r)| L(s).

b) (r)(s) là biểu thức chính quy, biểu thị cho L(r)L(s).

c) (r)* là biểu thức chính quy, biểu thị cho (L(r))*.

d) r là biểu thức chính quy, biểu thị cho L(r).

Trang 11

Đặc tả token

Thí dụ 3.1: Cho = {a, b}

1 a|b biểu thị cho tập {a,b}

2 (a|b) |(b|a) biểu thị cho tập {aa,ab,ba,bb}

3 a* biểu thị cho tập { ,a,aa,aaa,… }

Hai biểu thức chính quy tương đương r và s, ký hiệu

r = s.

Trang 12

di là tên của biểu thức chính quy ri.

ri là biểu thức chính quy trên các ký hiệu thuộc

( U{d1,d2…di-1})

Trang 13

Định nghĩa chính quy

Trang 15

Định nghĩa chính quy

Trang 16

Từ định nghĩa chính quy ta xây dựng

bảng mẫu cho token như sau

Trang 17

Sơ đồ dịch

Trang 18

Sơ đồ dịch

Trang 20

Automat hữu hạn

Trang 21

Bảng truyền cho NFA

Trang 22

Automat hữu hạn

 NFA chấp nhận một chuỗi nhập x nếu và chỉ nếu

tồn tại một đường nào đó trong sơ đồ từ trạng thái bắt đầu đến trạng thái kết thúc sao cho tất cả tên của các cạnh của con đường đó sẽ cho ra chuỗi x NFA chấp nhận chuỗi aabb

Trang 23

Automat hữu hạn tất định (DFA)

DFA là trường hợp đặc biệt của NFA, nó không có:1) Sự truyền rỗng

2) Với mỗi trạng thái S và ký hiệu nhập a chỉ tồn tại

nhiều nhất một cạnh có tên a xuất phát từ S

Trang 24

Automat hữu hạn tất định (DFA)

Trang 25

Chuyển NFA sang DFA

Giải thuật 3.2: Xây dựng tập con (Tạo DFA từ NFA).

Nhập: Cho NFA gọi là N.

Xuất: DFA gọi là D, nhận dạng cùng ngôn ngữ như NFA.

Phương pháp: Xây dựng bảng truyền cho D Mỗi trạng thái

của D là tập trạng thái của N D mô phỏng đồng thời mọi chuyển động của N trên chuỗi nhập cho trước bằng các tác vụ:

-closure (s); -closure (T); move (T, a)

Trang 26

Giải thuật tính -closure

 Đẩy tất cả các trạng thái trong T lên stack; Khởi

tạo -closure (T) cho T

While stack không rỗng do

Begin

Lấy t là phần tử trên đỉnh ra khỏi stack.

For mỗi trạng thái u với cạnh đi từ t đến u có tên do

if u không thuộc -closure(T) then Begin

them u vào -closure(T).

đẩy u vào stack end

Trang 27

Giải thuật xây dựng tập con

Bắt đầu -closure(S0) chỉ là một trạng thái trong các trạng thái của D chưa được đánh dấu.

While có một trạng thái T chưa được đánh dấu trong D do

Trang 28

Thí dụ

 Chúng ta dùng giải thuật 3.2 để xây dựng DFA

tương đương cho NFA sau

Trang 29

Bảng truyền cho DFA

Trang 31

Từ biểu thức chính quy đến NFA

Xây dựng NFA từ biểu thức chính quy

Giải thuật 3.3: Xây dựng NFA từ biểu thức chính quy

(Cấu trúcThompson’)

Nhập: Biểu thức chính quy r trên

Xuất: NFA nhận dạng ngôn ngữ L(r)

Trang 32

Phương pháp

Quy tắc:

Trang 33

Phương pháp

Giả sử N(s) và N(t) là NFA cho biểu thức chính quy s

và t

Trang 34

Phương pháp

Trang 35

Phương pháp

Trang 36

Thí dụ

 Dùng giải thuật để xây dựng NFA cho biểu thức

chính quy r = (a|b)*abb

Trang 37

Cây phân rã biểu thức chính quy r

Trang 38

NFA nhận dạng ngôn ngữ (a|b)*abb

Trang 39

Mô phỏng NFA

 Nhập: NFA gọi là N được xây dựng theo giải thuật

3.3, chuỗi nhập x X được kết thúc bằng eof, N có trạng thái bắt đầu s0 và tập trạng thái kết thúc F Xuất: Giải thuật trả lời đúng nếu N chấp nhận x, ngược lại trả lời sai

Trang 41

Xây dựng DFA trực tiếp từ biểu thức chính quy.

Tối thiểu trạng thái của DFA

Nén bảng truyền của DFA

Trang 42

Trạng thái quan trọng của NFA

 Trạng thái quan trọng là từ nó có sự truyền khác

rỗng Như vậy nếu hai tập trạng thái có cùng số

trạng thái quan trọng thì chúng được đồng nhất

 NFA được xây dựng theo cấu trúc Thompson’ có

trạng thái kết thúc không có sự truyền ra, như vậy

nó không phải là trạng thái quan trọng ( nhưng

thực sự nó lại rất quan trọng) Để tránh tình trạng này người ta thêm ký hiệu # vào sau biểu thức

chính quy, và trạng thái kết thúc có sự truyền trên

ký hiệu #

 Khi xây dựng tập con hoàn tất thì trạng thái nào có

sự truyền trên # là trạng thái chấp nhận

Trang 43

Biểu thức chính quy gia tố

 Biểu thức r# được gọi là biểu thức chính quy gia

tố Ký hiệu # không thuộc tập các ký hiệu cơ bản của biểu thức chính quy r

Trang 45

Cây phân tích

Trang 46

NFA được xây dựng từ (a|b)abb#

Trang 47

NFA được xây dựng từ (a|b)abb#

 Lưu ý:

 Các trạng thái được ký hiệu bằng số là trạng thái

quan trọng; Các trạng thái được ký hiệu bằng chữ

là trạng thái không quan trọng

Trang 48

Các quy tắc để tính ba hàm nullable,

firstpos, lastpos

Trang 49

Các quy tắc tính hàm followpos(n)

 Nếu nút n là nút cat với con bên trái là c1, con bên

phải là c2 và i là vị trí trong lastpos(c1), thì tất cả

vị trí trong firstpost(c2) sẽ cho vào followpos(i)

 Nếu n là nút star và i là vị trí trong lastpos(n) thì tất

cả các vị trí trong firstpos(n) sẽ cho vào

followpos(i)

Trang 50

Thí dụ

b

b b

Trang 51

Các trị followpos của các nút trên cây

Trang 52

Xây dựng DFA từ biểu thức chính quy

 Xây dựng cây phân tích cho BTCQ gia tố r#

 Tính các hàm nullable, firstpos, lastpos và

followpos cho các nút trên cây phân tích

 Xây dựng các trạng thái, hàm truyền và bảng

truyền cho D bằng thủ tục tạo tập con sau

Trang 53

Thủ tục tạo tập con

Lúc đầu D chỉ có một trạng thái bắt đầu là firstpos(root) , chưa

được đánh dấu.

While có trạng thái T chưa được đánh dấu, trong tập trạng thái

của D do begin đánh dấu T;

for với mỗi ký hiệu nhập a do;

Begin với U là tập các vị trí trong followpos(p), p là vị trí trong

T, sao cho ký hiệu tại vị trí p là a;

if U không rỗng và chưa có trong tập trạng thái của D then

begin thêm U vào tập trạng thái của D và là trạng thái chưa được

Trang 54

Tối thiểu số trạng thái của DFA

 Nhập: DFA, gọi là M có S, , s0, F M là DFA đầy đủ.

 Xuất: DFA, gọi là M’chấp nhận ngôn ngữ như M, với số trạng

5 Nếu M’ có trạng thái chết d thì loại nó ra khỏi M’ Tất cả các sự

truyền đến trạng thái d đều không xác định.

Trang 55

Tối thiểu số trạng thái của DFA

Giải thuật tạo

for với mỗi nhóm G của do begin

Chia G thành các nhóm nhỏ hơn sao cho hai trạng thái s và t

của G sẽ ở cùng một nhóm nhỏ hơn nếu và chỉ nếu các

sự truyền trên tất cả các ký hiệu nhập a từ s và t đều đi đến các trạng thái kế tiếp ở trong cùng một nhóm của

Ta thay G bằng các nhóm nhỏ hơn vừa được tạo nên, cho

Trang 56

Các phương pháp nén bảng truyền FA

 Thu giảm hàng và cột dư thừa:

 Với phương pháp này khi truy cập một phần tử của

bảng truyền ta dùng:

Ynext[yrmap[trạng thái hiện tại],ycmap[ký hiệu nhập]]

Trang 57

Thu giảm hàng và cột dư thừa

Trang 58

Thiết kế bộ sinh bộ phân tích từ vựng

 Thiết kế phần mềm bằng ngôn ngữ Lex

 Có thể tự động sinh ra bộ phân tích từ vựng từ đặc

tả biểu thức chính quy phần mềm

Trang 59

Thiết kế bộ sinh bộ phân tích từ vựng

Trang 60

 Nếu có nhiều mẫu được so trùng, thì bộ nhận dạng

sẽ chọn chuổi trị từ vụng dài nhất Nếu có nhiều hơn một mẫu so trùng với trị từ vụng dài nhất thì

bộ nhận dạng sẽ chọn mẫu được so trùng truớc

nhất

Trang 61

Mẫu so trùng trên cơ sở NFA

Trang 62

62

Ngày đăng: 13/05/2014, 19:49

HÌNH ẢNH LIÊN QUAN

Bảng mẫu cho token như sau - Automat hữu hạn tất định (DFA)
Bảng m ẫu cho token như sau (Trang 16)
Sơ đồ dịch - Automat hữu hạn tất định (DFA)
Sơ đồ d ịch (Trang 17)
Sơ đồ dịch - Automat hữu hạn tất định (DFA)
Sơ đồ d ịch (Trang 18)
Bảng truyền cho NFA - Automat hữu hạn tất định (DFA)
Bảng truy ền cho NFA (Trang 21)
Bảng truyền cho DFA - Automat hữu hạn tất định (DFA)
Bảng truy ền cho DFA (Trang 29)
Bảng truyền cho DFA - Automat hữu hạn tất định (DFA)
Bảng truy ền cho DFA (Trang 30)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w