1. Trang chủ
  2. » Giáo án - Bài giảng

Bổ túc toán 6

16 332 0
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 đề Bổ Túc Toán 6
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Thông Tin
Thể loại Tài Liệu Học Tập
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 16
Dung lượng 126,5 KB

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

Nội dung

Automata đẩy xuống Push Down Automata Nội dung: • Khái niệm về PDA • PDA đơn định và không đơn định • PDA chấp nhận chuỗi bằng Stack rỗng và PDA chấp nhận chuỗi bằng trạng thái kết thúc

Trang 1

Automata đẩy xuống (Push Down Automata)

Nội dung:

• Khái niệm về PDA

• PDA đơn định và không đơn định

• PDA chấp nhận chuỗi bằng Stack rỗng và PDA chấp nhận chuỗi bằng trạng thái kết thúc

• Sự tương đương giữa PDA và CFL

Chương 6:

Trang 2

Ta đã biết:

• Lớp ngôn ngữ chính quy được sinh ra từ văn phạm chính quy

và được đoán nhận bởi automata hữu hạn

• Lớp ngôn ngữ phi ngữ cảnh được sinh ra từ văn phạm phi ngữ cảnh → câu hỏi: CFL có thể được đoán nhận bởi một automata không? automata đó như thế nào?

Mô tả: gồm các thành phần của một automata hữu hạn với sự bổ

sung thêm một ngăn xếp làm việc (Stack)

0 1 1 0 0 1 0 1

Y

B

R

Bộ điều khiển

Trang 3

Ví dụ: xét L = {wcwR | w  (0 + 1)*} được sinh ra từ CFG} được sinh ra từ CFG

S → 0S0 | 1S1 | c

Ta xây dựng PDA như sau:

• Bộ điều khiển có 2 trạng thái q1 và q2

• Stack có 3 ký hiệu: xanh (B), vàng (Y) và đỏ (R)

• Quy tắc thao tác trên automata:

Trang 4

Các khái niệm:

• Phân loại PDA: đơn định (DPDA) và không đơn định (NPDA)

• Phép chuyển: có 2 kiểu

✔ Phụ thuộc ký hiệu nhập: với một trạng thái, một ký hiệu tại đỉnh Stack và một ký hiệu nhập, PDA lựa chọn trạng thái kế tiếp, thay thế ký hiệu trên Stack và di chuyển đầu đọc trên băng nhập

✔ Không phụ thuộc ký hiệu nhập (ε – dịch chuyển): ký hiệu nhập không được dùng, đầu đọc không di chuyển

• Ngôn ngữ được chấp nhận bởi PDA

✔ Bởi Stack rỗng

✔ Bởi trạng thái kết thúc

Một ngôn ngữ được chấp nhận bởi PDA khi và chỉ khi nó là một ngôn ngữ phi ngữ cảnh.

Trang 5

Định nghĩa: một PDA M là một hệ thống 7 thành phần

M (Q, Σ, Γ, δ, q 0 , Z 0 , F)

• Q : tập hữu hạn các trạng thái

• Σ : bộ chữ cái nhập

• Γ : bộ chữ cái Stack

• δ : hàm chuyển Q x (Σ  {ε}) x Γ → tập con của Q x Γ*} được sinh ra từ CFG

• q0 : trạng thái khởi đầu

• Z0 : ký hiệu bắt đầu trên Stack

• F  Q : tập các trạng thái kết thúc (nếu PDA chấp nhận chuỗi bằng Stack rỗng thì F = Ø)

Trang 6

Hàm chuyển δ:

• Hàm chuyển phụ thuộc ký hiệu nhập

δ(q, a, Z) = { (p1, γ1), (p2, γ2), , (pm, γm) }

• Hàm chuyển không phụ thuộc ký hiệu nhập

δ(q, ε, Z) = { (p1, γ1), (p2, γ2), , (pm, γm) }

Ví dụ: PDA chấp nhận wcwR bằng Stack rỗng

1) δ(qq1, 0, R) = {(q) = {(qq1, BR) = {(q)} 7) δ(qq1, c, R) = {(q) = {(qq2, R) = {(q)}

2) δ(qq1, 1, R) = {(q) = {(qq1, YR) = {(q)} 8) δ(qq1, c, B) = {(qq2, B)}

3) δ(qq1, 0, B) = {(qq1, BB)} 9) δ(qq1, c, Y) = {(qq2, Y)}

4) δ(qq1, 1, B) = {(qq1, YB)} 10) δ(q2, 0, B) = {(qq2, ε)}

5) δ(qq1, 0, Y) = {(qq1, BY)} 11) δ(qq2, 1, Y) = {(qq2, ε)}

6) δ(qq1, 1, Y) = {(qq1, YY)} 12) δ(qq2, ε, R) = {(q) = {(qq2, ε)}

Trang 7

Hình thái (ID): dùng để ghi nhớ trạng thái và nội dung của Stack

(q, aw, Zα) ⊢ M (p, w, βα) nếu δ(q, a, Z) chứa (p, β)) Ngôn ngữ chấp nhận bởi PDA:

• Ngôn ngữ được chấp nhận bằng trạng thái kết thúc

L (M) = {w | (q0, w, Z0) ⊢*} được sinh ra từ CFG (p, ε, γ) với p  F và γ  Γ*} được sinh ra từ CFG}

• Ngôn ngữ được chấp nhận bởi Stack rỗng

N (M) = {w | (q0, w, Z0) ⊢*} được sinh ra từ CFG (p, ε, ε) với p  Q}

Ví dụ: PDA chấp nhận wcwR bằng Stack rỗng với chuỗi nhập

001c100

(q1, 001c100, R) ⊢ (q1, 01c100, BR) ⊢ (q1, 1c100, BBR) ⊢ (q1, c100, YBBR) ⊢ (q2, 100, YBBR) ⊢ (q2, 00, BBR) ⊢

(q2, 0, BR) ⊢ (q2, ε, R) ⊢ (q2, ε, ε) : Chấp nhận

Trang 8

PDA không đơn định (NPDA)

Ví dụ: thiết kế PDA chấp nhận {wwR | w  (0 + 1)*} được sinh ra từ CFG} bằng Stack rỗng

• Không có ký hiệu c để biết thời điểm chuyển từ trạng thái q1 sang q2

• Bắt buộc phải đoán thử (khi thấy 2 ký hiệu liên tiếp giống nhau)

✔ Nếu ký hiệu thuộc chuỗi xuôi : giữ nguyên trạng thái q1 và push vào Stack

✔ Nếu ký hiệu thuộc chuỗi ngược : chuyển sang trạng thái q2 và pop khỏi Stack

• M({q1, q2}, {0, 1}, {R, B, Y}, δ, q1, R, Ø):

1) δ(q1, 0, R) = {(q1, BR)} 6) δ (q 1 , 1, Y) = {(q 1 , YY),(q 2 , ε)}

2) δ(q1, 1, R) = {(q1,YR)} 7) δ(q2, 0, B) = {(q2, ε)}

3) δ (q 1 , 0, B) = {(q 1 , BB), (q 2 , ε)} 8) δ(q2, 1, Y) = {(q2, ε)}

4) δ(q1, 0, Y) = {(q1, BY)} 9) δ(q1, ε, R) = {(q2, ε)}

5) δ(q1, 1, B) = {(q1, YB)} 10)δ(q2, ε, R) = {(q2, ε)}

Trang 9

PDA không đơn định (NPDA)

Ví dụ: các phép chuyển hình thái của PDA chấp nhận chuỗi 001100

thuộc ngôn ngữ {wwR | w  (0 + 1)*} được sinh ra từ CFG} bằng Stack rỗng

Khởi đầu

(qq1, 001100, R) = {(q)

(qq1, 01100, BR) = {(q)  (qq2, 1100, R) = {(q)  (qq2, 1100, ) : Không chấp nhận

(qq1, 1100, BBR) = {(q)

(qq1, 100, YBBR) = {(q)  (qq2, 00, BBR) = {(q)

 

(qq1, 00, YYBBR) = {(q) (qq2, 0, BR) = {(q)  (qq2, , R) = {(q)  (qq2, , ) : Chấp nhận

(qq1, 0, BYYBBR) = {(q)  (qq2, , YYBBR) = {(q) : Không chấp nhận

(qq , , BBYYBBR) = {(q) : Không chấp nhận

Trang 10

PDA đơn định (DPDA)

Định nghĩa: một PDA M(Q, Σ, Γ, δ, q0, Z0, F) được gọi là đơn định nếu:

• q  Q và Z  Γ: nếu δ(q, ε, Z) ≠ Ø thì δ(q, a, Z) = Ø với a  Σ

• Không có q  Q, Z  Γ và a  (Σ  {ε}) mà δ(q, a, Z) chứa

nhiều hơn một phần tử

Chú ý: đối với PDA thì dạng đơn định và không đơn định là không

tương đương nhau

Ví dụ: wwR được chấp nhận bởi PDA không đơn định, nhưng không được chấp nhận bởi bất kỳ một PDA đơn định nào

Trang 11

Tương đương giữa PDA với Stack rỗng và

PDA với trạng thái kết thúc

Định lý 6.1: Nếu một ngôn ngữ phi ngữ cảnh L được chấp nhận bởi

một PDA chấp nhận chuỗi bởi trạng thái kết thúc M2 thì L cũng

được chấp nhận bởi một PDA chấp nhận chuỗi bởi Stack rỗng M1

Cách xây dựng:

Đặt M2(Q, Σ, Γ, δ, q0, Z0, F) và M1(Q  {qe, q0'}, Σ, Γ, δ', q0', X0, Ø)

• δ'(q0', ε, X0) = {(q0, Z0X0)}

• δ'(q, a, Z) chứa mọi phần tử của δ(q, a, Z) với a  (Σ  {ε})

• δ'(q, ε, Z) chứa (qe, ε) với q  F và Z  (Γ  {X0})

• δ'(qe, ε, Z) chứa (qe, ε) với Z  (Γ  {X0})

Trang 12

Tương đương giữa PDA với Stack rỗng và

PDA với trạng thái kết thúc

Định lý 6.2: Nếu một ngôn ngữ phi ngữ cảnh L được chấp nhận bởi

một PDA chấp nhận chuỗi bởi Stack rỗng M1 thì L cũng được chấp nhận bởi một PDA chấp nhận chuỗi bởi trạng thái kết thúc M2

Cách xây dựng:

Đặt M1(Q, Σ, Γ, δ, q0, Z0, F)

và M2(Q  {q0', qf}, Σ, Γ  {X0}, δ', q0', X0, {qf})

• δ'(q0', ε, X0) = {(q0, Z0X0)}

• δ'(q, a, Z) = δ(q, a, Z) với a  (Σ  {ε})

• δ'(q, ε, X0) chứa (qf, ε) với q  Q

Trang 13

Tương đương giữa PDA và CFL

Định lý 6.3: Nếu L là một ngôn ngữ phi ngữ cảnh thì tồn tại PDA

chấp nhận chuỗi với Stack rỗng M sao cho L = N(M)

Cách xây dựng:

Đặt G(V, T, P, S) thỏa dạng chuẩn Greibach và L(G) không chứa ε

• δ'(q, a, A) = (q, γ) khi và chỉ khi A → aγ

Đặt M({q}, T, V, δ, q, S, Ø) là PDA chấp nhận L với Stack rỗng

Ví dụ: S → aAA ; A → aS | bS | a

NPDA tương đương M({q}, {a, b}, {S, A}, δ, q, S, Ø) với δ như sau:

1 δ(q, a, S) = {(q, AA)}

2 δ(q, a, A) = {(q, S), (q, ε)}

3 δ(q, b, A) = {(q, S)}

Trang 14

Tương đương giữa PDA và CFL

Định lý 6.4: Nếu L được chấp nhận bởi một PDA chấp nhận chuỗi

bởi Stack rỗng thì L là ngôn ngữ phi ngữ cảnh

Cách xây dựng:

Đặt G(V, T, P, S) là CFG, trong đó:

• V là tập các đối tượng dạng [q, A, p]

Đặt PDA M(Q, Σ, Γ, δ, q0, Z0, Ø) chấp nhận L với Stack rỗng

• S là ký hiệu bắt đầu mới được thêm vào

• P là tập các luật sinh dạng

1 S → [q0, Z0, q] với q  Q

2 [q, A, qm+1] → a [q1, B1, q2][q2, B2, q3] [qm, Bm, qm+1]

sao cho δ(q, a, A) có chứa (q1, B1B2 Bm) Nếu m = 0 thì luật sinh có dạng [q, A, q1] → a

Trang 15

Tương đương giữa PDA và CFL

Ví dụ: xây dựng CFG tương đương sinh ra ngôn ngữ được chấp

nhận bởi PDA M({q0, q1}, {0, 1}, {Z0, X}, δ, q0, Z0, Ø) với δ như

sau:1 δ(q

0, 0, Z0) = {(q0, XZ0)}

2 δ(q0, 0, X) = {(q0, XX)}

3 δ(q0, 1, X) = {(q1, ε)}

4 δ(q1, 1, X) = {(q1, ε)}

5 δ(q1, ε, X) = {(q1, ε)}

6 δ(q1, ε, Z0) = {(q1, ε)}

Xây dựng: CFG G(V, {0, 1}, P, S)

1 Tập các biến V = [q, A, p]  S

= { S, [q0, X, q0], [q0, X, q1], [q1, X, q0], [q1, X, q1],

[q0, Z0, q0], [q0, Z0, q1], [q1, Z0, q0], [q1, Z0, q1] }

2 Tập các luật sinh P

S → [q0, Z0, q0] | [q0, Z0, q1]

δ1) [q0, Z0, q0] → 0 [q0, X, q0] [q0, Z0, q0] | 0 [q0, X, q1] [q1, Z0, q0]

[q , Z , q ] → 0 [q , X, q ] [q , Z , q ] | 0 [q , X, q ] [q , Z , q ]

Trang 16

Tương đương giữa PDA và CFL

δ2) [q0, X, q0] → 0 [q0, X, q0] [q0, X, q0] | 0 [q0, X, q1] [q1, X, q0]

[q0, X, q1] → 0 [q0, X, q0] [q0, X, q1] | 0 [q0, X, q1] [q1, X, q1]

δ3) [q0, X, q1] → 1

δ4) [q1, X, q1] → 1

δ5) [q1, X, q1] → ε

δ6) [q1, Z0, q1] → ε Đặt: [q0, X, q0] = A, [q0, X, q1] = B, , [q0, Z0, q0] = E, , [q1, Z0, q1] = H

S → E | F

E → 0AE | 0BG

F → 0AF | 0BH

A → 0AA | 0BC

B → 0AB | 0BD | 1

D → ε | 1

H → ε

Ta có luật sinh: Giản lược văn phạm:

S → F

F → 0BH

B → 0BD | 1

D → ε | 1

H → ε

S → 0B

B → 0B | 0B1 | 1

Ngày đăng: 06/07/2013, 01:25

Xem thêm

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w