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

Bài giảng Automata và ngôn ngữ hình thức - Chương 6: Automat đẩy xuống ppt

41 1,2K 20

Đ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 41
Dung lượng 393,78 KB

Nội dung

Automata đẩy xuốngPushdown automata MỤC ĐÍCH:  Thiết kế PDA chấp nhận CFG bằng stack rỗng hoặc bằng trạng thái kết thúc;  Biến đổi tương đương giữa PDA chấp nhận ngôn ngữ bằng trạng th

Trang 1

Automat a

1

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

Trang 2

Bài 6 Automata đẩy xuống

(Pushdown automata)

MỤC ĐÍCH:

 Thiết kế PDA chấp nhận CFG bằng stack rỗng hoặc bằng trạng thái kết thúc;

 Biến đổi tương đương giữa PDA chấp nhận ngôn

ngữ bằng trạng thái kết thúc sang PDA chấp nhận bằng stack rỗng

 Biến đổi tương đương giữa NPDA và CFG

YÊU CẦU:

2

Trang 3

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1 6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2 6.3 Sự tương đương giữa PDA và CFG

6.3.1 Biến đổi tương đương từ CFG sang PDA 6.3.2 Biến đổi tương đương từ PDA sang CFG11/25/2023

3

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

Technical University

Trang 4

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1 6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2 6.3 Sự tương đương giữa PDA và CFG

4

Trang 5

6.1 Khái niệm về Pushdown Automata

Ta đã biết: Lớp RL được sinh ra từ RG và được

đoán nhận bởi FA; CFL được sinh ra từ CFG

Câu hỏi: Liệu có thể được đoán nhận CFL bởi một FA? Nếu có thì automata đó như thế nào?

Ví dụ 6.1: Automata đoán nhận ngôn ngữ dạng:

Trang 6

6.1 Khái niệm về Pushdown Automata

6

Ví dụ 6.5: L={0n1n}= {ε, 01, 0011, 000111, …}, }, thiết kế DFA đoán nhận ngôn ngữ trên ???

q4

0

10

Trang 7

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1 6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2 6.3 Sự tương đương giữa PDA và CFG

6.3.1 Biến đổi tương đương từ CFG sang PDA 6.3.2 Biến đổi tương đương từ PDA sang CFG11/25/2023

7

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

Technical University

Trang 8

6.1.1 PDA và các khái niệm liên quan

Ví dụ 6.5: về kiểm tra cân bằng

của chuỗi đóng mở ngoặc sử

dụng stack:

while (input symbol is “[”) {

<push “[” onto the stack>;

while (input symbol is “]”) &&

Trang 9

6.1.1 PDA và các khái niệm liên quan

PDA là một FA với sự bổ xung thêm một ngăn xếp

của FA được tăng lên, dẫn đến PDA có khả năng đoán nhận lớp ngôn ngữ rộng hơn là RL (RG, RE);

sử dụng bộ nhớ có tên gọi là Pushdown automata;

 Tại mỗi thời điểm, PDA điều khiển đồng thời cả dòng dữ liệu nhập vào (băng nhập- tape) và bộ nhớ - bộ đẩy

chuyển sang một trạng thái mới, hoặc thêm, xóa đi dữ liệu từ stack, hoặc đồng thời cả hai;

 Lớp PDA có khả năng đoán nhận lớp CFL, trong đó bao gồm các ngôn ngữ lập trình hiện đại;

11/25/2023

9

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

Technical University

Trang 10

6.1.1 PDA và các khái niệm liên quan

 Có 2 dạng chuyển trạng thái (transitions):

Dạng 1: phụ thuộc vào ký hiệu nhập Tại mỗi trạng thái, với

1 ký hiệu đọc vào và đỉnh stack, PDA sẽ lựa chọn trạng thái

kế tiếp và một chuỗi ký hiệu thay thế trên stack, đầu đọc dịch sang phải 1 ký hiệu;

Dạng 2: không phụ thuộc vào ký hiệu nhập (dịch chuyển ε)

Đầu đọc đứng im Ngăn xếp biến đổi.

 Có 2 cách định nghĩa ngôn ngữ chấp nhận bởi PDA:

Ngôn ngữ chấp nhận bởi stack rỗng: Gồm các chuỗi nhập

mà sau bước chuyển cuối cùng stack trở về trạng thái rỗng;

Ngôn ngữ chấp nhận bởi trạng thái kết thúc: Gồm các

chuỗi nhập mà sau bước chuyển cuối cùng rơi vào một

trong các trạng thái kết thúc;

10

Trang 11

6.1.1 PDA và các khái niệm liên quan

Trang 12

6.1.1 PDA và các khái niệm liên quan

Ví dụ 6.6: xét L = {wcwR | w  (0 + 1)*} đượ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:

12

Trang 13

6.1.1 PDA và các khái niệm liên quan

q2 pop() và không đọc ký tự nào

 Thao tác trên automata với chuỗi

1011c1101 ???

Trang 14

6.1.1 PDA và các khái niệm liên quan

●ĐN 6.1: một PDA A là một hệ thống 7 thành phần:

A (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 (tape or input alphabet);

 Γ : bộ chữ cái stack (stack alphabet);

 δ : hàm chuyển Q x (Σ  {ε}) x Γ → tập con của Q x Γ*;

 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 = Ø).

14

Trang 15

6.1.1 PDA và các khái niệm liên quan

ĐN 6.2: Hàm chuyển δ phụ thuộc ký hiệu nhập:

 Chuyển đầu đọc tới vị trí ký tự

tiếp theo trên băng

Trang 16

6.1.1 PDA và các khái niệm liên quan

ĐN 6.3: Hàm chuyển δ không phụ thuộc ký hiệu

nhập:

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

16

trong đó:

 trạng thái hiện thời là q;

 ký hiệu trên đỉnh hiện thời của

 Không có ký hiệu đọc vào,

không dịch chuyển đầu đọc

Trang 17

6.1.1 PDA và các khái niệm liên quan

●Ví dụ 6.6: 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, ε)}

●ĐN 6.4: Hình thái (configuration or ID) của

PDA dùng để ghi nhớ trạng thái và nội dung của

Trang 18

6.1.1 PDA và các khái niệm liên quan

ĐN 6.5: 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

(q2, 0, BR) →(q2, ε, R) →(q2, ε, ε) : chấp nhận chuỗi.

18

Trang 19

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1 6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2 6.3 Sự tương đương giữa PDA và CFG

6.3.1 Biến đổi tương đương từ CFG sang PDA 6.3.2 Biến đổi tương đương từ PDA sang CFG11/25/2023

19

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

Technical University

Trang 20

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

Ví dụ 6.7: thiết kế PDA chấp nhận ngông ngữ

trong vd 6.3:

{wwR | w  (0 + 1)*} bằng Stack rỗng

Nhận xét: do không có ký hiệu c để biết thời điểm chuyển từ trạng thái q1 sang q2, dẫn đến 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

20

Trang 21

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

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

A({q1, q2}, {0, 1}, {R, B, Y}, δ, q1, R, Ø), trong đó δ có các bước chuyển như sau:

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

3) δ(q1, 0, B) = {(q1, BB), (q2, ε)} 8) δ(q 2 , 1, Y) = {(q 2 , ε)} 4) δ(q 1 , 0, Y) = {(q 1 , BY)} 9) δ(q 1 , ε, R) = {(q 2 , ε)}

5) δ(q 1 , 1, B) = {(q 1 , YB)} 10) δ(q 2 , ε, R) = {(q 2 , ε)}

● 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ữ {ww R | w  (0 + 1)*} bằng stack rỗng:

11/25/2023

21

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

Technical University

Trang 22

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

Trang 23

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

ε, R  ε

0, Y  BY

1, B YB

ε, R  ε

Trang 24

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1 6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2 6.3 Sự tương đương giữa PDA và CFG

24

Trang 25

6.1.2 PDA đơn định (DPDA)

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

 q Q và Z  Γ: nếu δ(q, ε, Z) ≠ Ø thì δ(q, a, Z) = Ø,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ụ 6.7: 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

11/25/2023

25

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

Technical University

Trang 26

6.1.2 PDA đơn định (DPDA)

Ví dụ 6.1: Automata đoán nhận ngôn ngữ dạng:

Trang 27

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1

6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2 6.3 Sự tương đương giữa PDA và CFG

6.3.1 Biến đổi tương đương từ CFG sang PDA 6.3.2 Biến đổi tương đương từ PDA sang CFG11/25/2023

27

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

Technical University

Trang 28

6.2.1 Biến đổi PDA từ dạng 2 sang dạng 1

Định lý 6.1: Nếu một CFL 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 A2 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 A1

Trang 29

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1

6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2

6.3 Sự tương đương giữa PDA và CFG

6.3.1 Biến đổi tương đương từ CFG sang PDA 6.3.2 Biến đổi tương đương từ PDA sang CFG11/25/2023

29

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

Technical University

Trang 30

6.2.2 Biến đổi PDA từ dạng 1 sang dạng 2

Định lý 6.2: Nếu một CFL L được chấp nhận bởi một PDA chấp nhận chuỗi bởi stack rỗng thì L cũng được chấp nhận bởi một PDA chấp nhận chuỗi bởi trạng

Trang 31

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1 6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2 6.3 Sự tương đương giữa PDA và CFG

6.3.1 Biến đổi tương đương từ CFG sang PDA

6.3.2 Biến đổi tương đương từ PDA sang CFG11/25/2023

31

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

Technical University

Trang 32

6.3.1 Biến đổi từ CFG sang PDA

Đị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 A

sao cho L = N(A)

1 Xây dựng văn phạm G = < Σ, Δ, S, P > thỏa

dạng chuẩn Greibach và L(G) không chứa ε

2 Đặt A = ({q}, Σ, Γ, δ, q, S, Ø) là PDA chấp nhận

L với Stack rỗng δ'}, Σ, Γ, δ', q(q, a, A) = (q, γ) khi và chỉ khi

A → aγ

32

Trang 33

6.3.1 Biến đổi từ CFG sang PDA

Trang 34

6.3.1 Biến đổi từ CFG sang PDA

34

Ví dụ 6.9: Xây dựng PDA cho G:

S aTb | b

T  Ta | ε

Xét quá trình đoán nhận aab:

S → aTb → aTab → aab

(q0, aab, $) → (q1, aab, S$) →

(q1, aab, aTb$) → (q1, ab, Tb$) →

(q1, ab, Tab$) → (q1, ab, ab$) →

Trang 35

Bài 6 Pushdown Automata

6.1 Khái niệm về Pushdown Automata (PDA)

6.1.1 PDA và các khái niệm liên quan

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

6.1.3 PDA đơn định (DPDA)

6.2 Sự tương đương giữa 2 dạng PDA

6.2.1 Biến đổi tương đương từ dạng 2 sang

dạng 1 6.2.2 Biến đổi tương đương từ dạng 1 sang

dạng 2

6.3 Sự tương đương giữa PDA và CFG

6.3.1 Biến đổi tương đương từ CFG sang PDA

6.3.2 Biến đổi tương đương từ PDA sang CFG11/25/2023

35

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

Technical University

Trang 36

6.3.2 Biến đổi từ PDA sang CFG

Đị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à CFL

Giải thuật: Đặt PDA A = (Q, Σ, Γ, δ, q0, Z0, Ø) chấp nhận L với stack rỗng Đặt G = < Σ, Δ, S, P > là

Trang 37

6.3.2 Biến đổi từ PDA sang CFG

11/25/2023

Automata và ngôn ngữ hình thức -

©copyright by PhD C.T.Ha, Le Quy

Don Technical University

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

= { S, A, B, , G, H}

 Xây dựng P có dạng sau:

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

Trang 38

6.3.2 Biến đổi từ PDA sang CFG

Trang 39

6.3.2 Biến đổi từ PDA sang CFG

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w