1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Automata hữu hạn

50 563 1
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 đề Ôtômát hữu hạn
Trường học Khoa Công Nghệ Thông Tin
Chuyên ngành Lý thuyết Ôtômát & NNHT
Thể loại bài luận
Định dạng
Số trang 50
Dung lượng 494,55 KB

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

Nội dung

2.1 Accepter hữu hạn đơn định 2.2 Accepter hữu hạn không đơn định 2.3 Sự tương đương giữa accepter hữu hạn đơn định và accepter hữu hạn không đơn định 2.4 Rút gọn số trạng thái của một ôtôm

Trang 1

Chương 2 Ôtômát hữu hạn

2.1 Accepter hữu hạn đơn định

2.2 Accepter hữu hạn không đơn định

2.3 Sự tương đương giữa accepter hữu hạn đơn định và

accepter hữu hạn không đơn định

2.4 Rút gọn số trạng thái của một ôtômát hữu hạn

Trang 2

Accepter hữu hạn đơn định

„ Định nghĩa 2.1

Một accepter hữu hạn đơn định (deterministic finite state

accepter) hay dfa được định nghĩa bởi bộ năm

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

„ Q là một tập hữu hạn các trạng thái nội (internal states),

„ Σ là một tập hữu hạn các ký hiệu được gọi là bảng chữ cái ngõ nhập (input alphabet),

„ δ: Q × Σ → Q là hàm chuyển trạng thái (transition function)

Để chuyển trạng thái ôtômát dựa vào trạng thái hiện hành q

Q nó đang ở vào và kí hiệu nhập a ∈ Σ nó đang đọc được, nó sẽchuyển sang trạng thái kế được định nghĩa sẵn trong δ

Trang 3

Accepter hữu hạn đơn định (tt)

„ q0 ∈ Q là trạng thái khởi đầu (initial state),

„ F ⊆ Q là một tập các trạng thái kết thúc (final states) (hay

còn được gọi là trạng thái chấp nhận).

„ Chú ý

„ Ôtômát hữu hạn không có bộ nhớ so với mô hình tổng quát

Trang 4

Hoạt động của một dfa

„ Hoạt động của một dfa

„ Tại thời điểm khởi đầu, nó được giả thiết ở trong trạng thái khởi

đầu q0, với cơ cấu nhập (đầu đọc) của nó đang ở trên kí hiệu

đầu tiên bên trái của chuỗi nhập

„ Trong suốt mỗi lần di chuyển, cơ cấu nhập tiến về phía phải

một kí hiệu, như vậy mỗi lần di chuyển sẽ lấy một kí hiệu ngõ nhập

„ Khi gặp kí hiệu kết thúc chuỗi, chuỗi là được chấp nhận

(accept) nếu ôtômát đang ở vào một trong các trạng thái kết thúc của nó Ngược lại thì có nghĩa là chuỗi bị từ chối.

Trang 5

Đồ thị chuyển trạng thái

„ Để biểu diễn một cách trực quan cho dfa người ta sử dụng

đồ thị chuyển trạng thái Cách biểu diễn như sau.

„ Các đỉnh biểu diễn các trạng thái.

„ Các cạnh biểu diễn các chuyển trạng thái.

„ Các nhãn trên các đỉnh là tên các trạng thái.

„ Các nhãn trên các cạnh là giá trị hiện tại của kí hiệu nhập.

„ Trạng thái khởi đầu sẽ được nhận biết bằng một mũi tên đi vào không mang nhãn mà không xuất phát từ bất kỳ đỉnh nào

„ Các trạng thái kết thúc được vẽ bằng một vòng tròn đôi.

Trang 8

Ngôn ngữ và dfa

„ Định nghĩa 2.2

„ Ngôn ngữ được chấp nhận bởi dfa M = (Q, Σ, δ, q0, F) là tập tất

cả các chuỗi trên Σ được chấp nhận bởi M

„ L(M) = {w ∈ Σ*: δ*(q0, w) ∈ F}.

„ Nhận xét:

„ L ( ) M = {w ∈ Σ* : δ*(q0, w) ∉ F}.

Trang 9

„ Trạng thái bẫy (trap state): là trạng thái mà sau khi ôtômát đi

vào sẽ không bao giờ thoát ra được

„ Trạng thái bẫy có thể là trạng thái kết thúc hoặc không

„ Định nghĩa trên cũng có thể mở rộng ra cho nhóm các trạng thái bẫy kết thúc hay không kết thúc

a, b

a, b a

b

Trang 10

Định lý, bảng truyền

„ Định lý 2.1

„ Cho M = (Q, Σ, δ, q0, F) là một accepter hữu hạn đơn định, và

G M là đồ thị chuyển trạng thái tương ứng của nó Thì ∀ q i , q j

Q, và w ∈ Σ+, δ*(qi , w) = q j nếu và chỉ nếu có trong G M một

con đường mang nhãn là w đi từ q i đến q j

„ Bảng truyền - (transition table)

„ Là bảng trong đó các nhãn của hàng (ô tô đậm trên hàng trong hình bên) biểu diễn cho trạng thái hiện tại, còn nhãn của cột (ô

tô đậm trên cột trong hình bên) biểu diễn cho ký hiệu nhập hiện tại Các điểm nhập (entry) trong bảng định nghĩa cho trạng thái

kế tiếp

Trang 11

a, b

a, b a

b

Trang 12

Ví dụ

„ Tìm dfa chấp nhận ngôn ngữ

„ Tìm dfa M1 chấp nhận tập tất cả các chuỗi trên Σ = {a, b} được

bắt đầu bằng chuỗi ab.

„ Tìm dfa M2 chấp nhận tập tất cả các chuỗi trên Σ = {0, 1},

ngoại trừ những chuỗi chứa chuỗi con 001

a b

0

0

Trang 13

„ L5 = {w ∈ {0, 1}*: giá trị thập phân của w chia hết cho 5}

„ L6 = {w ∈ {a, b}*: số kí tự a trong chuỗi là một số lẽ}

Trang 14

a b

q2

q1

q3

q0

Trang 15

Accepter hữu hạn không đơn định

„ Định nghĩa 2.4

„ Một accepter hữu hạn không đơn định (nondeterministic

finite state accepter) hay nfa được định nghĩa bằng bộ năm:

M = (Q , Σ, δ, q0, F ) trong đó Q, Σ, q0, F được định nghĩa như đối với accepter hữu

hạn đơn định còn δ được định nghĩa là:

δ : Q × (Σ ∪ { λ}) → 2 Q

„ Nhận xét

„ Có hai khác biệt chính giữa định nghĩa này và định nghĩa của một dfa

Trang 16

Accepter hữu hạn không đơn định (tt)

„ Nhận xét (tt)

„ Đối với nfa miền trị của δ là tập 2Q, vì vậy giá trị của nó không

còn là một phần tử đơn của Q, mà là một tập con của nó và đặc

biệt có thể là ∅, tức là có thể không có định nghĩa cho một δ(q,

a) nào đó Người ta gọi trường hợp này là một cấu hình chết

(dead configuration), và có thể hình dung trong trường hợp

này ôtômát dừng lại, không hoạt động nữa

„ Thứ hai định nghĩa này cho phép λ như là một đối số thứ hai của δ Điều này có nghĩa là nfa có thể thực hiện một sự chuyển trạng thái mà không cần phải lấy vào một kí hiệu nhập nào

„ Tương tự như dfa, một nfa cũng có thể được biểu diễn bằng

một ĐTCTT

Trang 17

a a

Trang 19

Ngôn ngữ của nfa

„ Định nghĩa 2 6

„ Ngôn ngữ được chấp nhận bởi nfa M = (Q, Σ, δ, q0, F), được

định nghĩa như là một tập tất cả các chuỗi được chấp nhận bởi nfa trên Một cách hình thức,

q 0 0 q 1 q 2

Trang 20

Cách tính δ*

„ Với T là một tập con của Q, ta định nghĩa

„ Người ta thường hiện thực cách tính các hàm này δ(q,

a), δ(T, a), δ*(q, λ), δ*(T, λ) lần lượt bằng các hàm

move(q, a), move(T, a), λ-closure(q), λ-closure(T)

a q a

a q a

Trang 22

Một định nghĩa khác về dfa - dfa mở rộng

„ Một dfa là một trường hợp đặc biệt của một nfa trong đó

„ Không có chuyển trạng thái-rỗng,

„ Đối với mỗi trạng thái q và một kí hiệu nhập a, có tối đa một cạnh

chuyển trạng thái đi ra khỏi q và có nhãn là a.

„ Về bản chất định nghĩa này và định nghĩa trước đây là tương đương nhau (cùng định nghĩa tính đơn định của dfa) Nó chỉkhác định nghĩa thứ nhất ở chỗ cho phép khả năng không cómột sự chuyển trạng thái đối với một cặp trạng thái và kí hiệu nhập Trong trường hợp này thì ta xem như nó rơi vào một trạng thái bẫy không kết thúc mà trạng thái này không được vẽra

Trang 23

Ví dụ

„ Dfa trong hình (a) đơn giản hơn dfa trong hình (b) mặc dù

chúng cùng chấp nhận một ngôn ngữ như nhau

„ Vậy dfa mở rộng và dfa dfa đầy đủ theo định nghĩa ban đầu thật

sự là tương đương nhau và chúng chỉ khác nhau ở một trạng

01

(a)

01

q2

0, 1

10

(b)

Trang 24

„ L2 = {w: w không chứa “run” nào có chiều dài nhỏ hơn 3}

„ L3 = {w: mỗi “run” của a có chiều dài hoặc 2 hoặc 3}

„ L4 = {w ∈ {0, 1}*: mỗi chuỗi con bốn kí hiệu có tối đa hai kíhiệu 0}

Trang 25

Sự tương đương giữa nfa và dfa

„ Sư tương đương giữa hai ôtômát

„ Hai accepter được gọi là tương đương nhau nếu chúng cùng chấp nhận một ngôn ngữ như nhau

„ Ví dụ

„ Dfa và nfa sau là tương đương nhau vì cùng chấp nhận ngôn ngữ {(10)n : n ≥ 0}

0,11

10

0

λ

Trang 26

Sự tương đương giữa nfa và dfa (tt)

„ Ví dụ

„ Hãy xây dựng dfa

tương đương với

Trang 27

Ví dụ

„ Xây dựng dfa bằng cách mô phỏng lại quá

trình chấp nhận một chuỗi bất kỳ của nfa

„ δ*(q0, λ) = {q0}

„ δ*({q0}, a) = {q1, q2} δ*({q0}, b) = ∅

„ δ*({q1, q2}, a) = {q1, q2} δ*({q1, q2}, b) = {q0}

„ Chú ý

„ Một trạng thái của nfa là

một tập trạng thái của dfa

„ Trạng thái kết thúc của nfa là

trạng thái mà có chứa trạng thái

b

a a

Trang 29

Thủ tục: nfa_to_dfa

B1 Tạo một đồ thị G D với đỉnh khởi đầu là tập δN *(q0, λ)

B2 Lặp lại các bước B3 đến B6 cho đến khi không còn cạnh nào

Trang 33

Bài tập biến đổi nfa thành dfa

„ Biến đổi những nfa sau thành dfa tương đương

λ

b a

λ

b a

Nfa M3Nfa M2

Nfa M1

Trang 34

Rút gọn số trạng thái của một dfa

„ Hai dfa được vẽ trong (a) và (b) là tương đương nhau

0, 1

10

0, 11

Trang 35

Rút gọn số trạng thái của một dfa (tt)

„ Nhận xét

„ Trong hình (a) có một trạng thái đặc biệt, trạng thái q5, nó là

trạng thái không đạt tới được từ trạng thái khởi đầu, người ta gọi nó là trạng thái không đạt tới được

„ Trạng thái không đạt tới được (inaccessible state)

„ Là trạng thái mà không tồn tại con đường đi từ trạng thái khởi đầu đến nó

„ Những trạng thái không đạt tới được (TTKĐTĐ) có thể bỏ đi (kèm với các cạnh chuyển trạng thái liên quan tới nó) mà không làm ảnh hưởng tới ngôn ngữ được chấp nhận bởi ôtômát

Trang 36

Rút gọn số trạng thái của một dfa (tt)

„ Nhận xét (tt)

„ Các chuyển trạng thái từ sau đỉnh q1 và q2 "có vẻ giống nhau", đối xứng nhau và ôtômát thứ hai "có vẻ như" kết hợp hai phần này

„ Từ đây dẫn tới định nghĩa hai trạng thái giống nhau hay không phân biệt được

„ Khái niệm giống nhau được định nghĩa tổng quát dựa trên việc:

với mọi chuỗi nếu xuất phát từ hai trạng thái này thì kết quả về mặt chấp nhận chuỗi là giống nhau tức là hoặc cùng rơi vào trạng thái kết thúc, hoặc không cùng rơi vào trạng thái kết thúc

„ Như vậy hai trạng thái này có thể gom chung lại với nhau màkết quả chấp nhận chuỗi không thay đổi

Trang 37

Định nghĩa hai trạng thái giống nhau

„ Định nghĩa 2.7

„ Hai trạng thái p và q của một dfa được gọi là không phân biệt được (indistinguishable) hay giống nhau nếu với mọi w ∈ ∑*

δ*(q, w) ∈ F suy ra δ*(p, w) ∈ F, và δ*(q, w) ∉ F suy ra δ*(p, w) ∉ F, Còn nếu tồn tại một chuỗi w nào đó ∈ ∑* sao cho

δ*(q, w) ∈ F còn δ*(p, w) ∉ F,

hay ngược lại thì p và q được gọi là phân biệt được

(distinguishable) hay khác nhau bởi chuỗi w.

„ Nhận xét

Trang 38

Nhận xét (tt)

„ Chú ý

„ Quan hệ giống nhau là một quan hệ tương đương.

„ Vì vậy quan hệ này sẽ phân hoạch tập trạng thái Q thành các

tập con rời nhau, mỗi tập con bao gồm các trạng thái giống nhau

Trang 39

Thủ tục đánh dấu - mark

„ Để xác định các cặp trạng thái không phân biệt được, người ta thực hiện công việc ngược lại là xác định các cặp trạng thái

không giống nhau

„ Để làm điều này người ta sử dụng thủ tục mark (đánh dấu) bên

Trang 40

Thủ tục đánh dấu - mark

B1 Loại bỏ tất cả các TTKĐTĐ

B2 Xét tất cả các cặp trạng thái (p, q) Nếu p ∈ F và q ∉ F hay

ngược lại, đánh dấu cặp (p, q) là phân biệt được Các cặp

trạng thái được đánh dấu ở bước này sẽ được ghi là đánh dấu

ở bước số 0 (gọi là bước cơ bản).

Lặp lại bước B3 cho đến khi không còn cặp nào không được đánh dấu trước đó được đánh dấu ở bước này.

B3. Đối với mọi cặp (p, q) chưa được đánh dấu và mọi a ∈ ∑,

tính δ(p, a) = paδ(q, a) = q a Nếu cặp (p a , q a) đã được

đánh dấu là phân biệt được ở lần lặp trước đó, thì đánh dấu

(p, q) là phân biệt được Các cặp được đánh dấu ở bước này

sẽ được ghi là được đánh dấu ở bước thứ i nếu đây là lần thứ

i băng qua vòng lặp

Trang 41

Thủ tục đánh dấu – mark (tt)

„ Định lý 2.3

„ Thủ tục mark, áp dụng cho một dfa đầy đủ bất kỳ M = (Q, ∑,

δ, q0, F), kết thúc và xác định tất cả các trạng thái phân biệt

được

„ Bổ đề 1

„ Cặp trạng thái q i và q j là phân biệt được bằng chuỗi có độ dài

n, nếu và chỉ nếu có các chuyển trạng thái

δ(q i , a) = q kδ(q j , a) = q l với một a nào đó ∈ ∑, và q k và q l là cặp trạng thái phân biệt

được bằng chuỗi có độ dài n-1.

Trang 42

Thủ tục đánh dấu – mark (tt)

„ Bổ đề 2

„ Khi băng qua vòng lặp trong bước⎫lần thứ n, thủ tục sẽ đánh

dấu được thêm tất cả các cặp trạng thái phân biệt được bằng

chuỗi có độ dài n mà chưa được đánh dấu.

„ Bổ đề 3

„ Nếu thủ tục dừng lại sau n lần băng qua vòng lặp trong bước 3,

thì không có cặp trạng thái nào của dfa mà phân biệt được bằng

chuỗi có chiều dài lớn hơn n.

Trang 43

Thủ tục rút gọn - reduce

„ Thủ tục: reduce

„ Input: dfa M = (Q, Σ, δ, q0, F)

„ Output: dfa tối giản

B1 Sử dụng thủ tục mark để tìm tất cả các cặp trạng thái phân biệt

được Từ đây tìm ra các tập của tất cả các trạng thái không phân

biệt được, gọi là {q i , q j , … , q k }, {q l , q m , … , q n},

B2 Đối với mỗi tập {q i , q j , … , q k} các trạng thái không phân biệt

được, tạo ra một trạng thái có nhãn ij … k cho .

Q

M ,Σ,δ, 0,

M

Trang 44

Thủ tục rút gọn - reduce

B3 Đối với mỗi quy tắc chuyển trạng thái của M có dạng δ(q r , a) = q p,

tìm các tập mà q r và q p thuộc về Nếu q r ∈ {q i , q j , … , q k } và q p

{q l , q m , … , q n }, thì thêm vào quy tắc ( ij … k, a) = lm … n.

B4 Trạng thái khởi đầu là trạng thái của mà nhãn của nó có chứa

q

Trang 46

91

Trang 50

b a

b a

b a

Dfa M4Dfa M3

Dfa M2Dfa M1

Ngày đăng: 13/10/2012, 09:16

HÌNH ẢNH LIÊN QUAN

Đồ thị chuyển trạng thái - Automata hữu hạn
th ị chuyển trạng thái (Trang 5)
Bảng truyền (tt) - Automata hữu hạn
Bảng truy ền (tt) (Trang 11)

TỪ KHÓA LIÊN QUAN

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