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

Đ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

Lý thuyết automata ngơn ngữ hình thức Automat a Grammar Languague GIảNG VIÊN: TS HÀ CHÍ TRUNG Bộ MƠN: KHMT khoa cntt, hvktqs Đt:0168.558.21.02 EMAIL: HCT2009@YAHOO.COM ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Automata đẩy xuống (Pushdown automata) MỤC ĐÍCH:  Thiết kế PDA chấp nhận CFG stack rỗng trạng thái kết thúc;  Biến đổi tương đương PDA chấp nhận ngôn ngữ trạng thái kết thúc sang PDA chấp nhận stack rỗng  Biến đổi tương đương NPDA CFG YÊU CẦU:  Sinh viên cụ thể hóa thuật tốn chương trình ©copyright by PhD C.T.Ha, Le Quy Don Technical nhà University Bài Pushdown Automata 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1 PDA 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 dạng PDA 6.2.1 Biến đổi tương đương từ dạng sang dạng 6.2.2 Biến đổi tương đương từ dạng sang dạng 6.3 Sự tương đương PDA 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 CFG Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Pushdown Automata 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1 PDA 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 dạng PDA 6.2.1 Biến đổi tương đương từ dạng sang dạng 6.2.2 Biến đổi tương đương từ dạng sang dạng 6.3 Sự tương đương PDA 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 CFG Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.1 Khái niệm Pushdown Automata  Ta biết: Lớp RL sinh từ RG đoán nhận FA; CFL sinh từ CFG  Câu hỏi: Liệu đốn nhận CFL FA? Nếu có automata nào?  Ví dụ 6.1: Automata đốn nhận ngơn ngữ dạng: {0n1n}; S → 0S1 | ε  Ví dụ 6.2: Automata đốn nhận ngôn ngữ dạng: {wcwR | w ∈ (0+1)*}; S → 0S0 | 1S1 | c  Ví dụ 6.3: Automata đốn nhận ngơn ngữ dạng: {wwR | w ∈ (0+1)*}; S → 0S0 | 1S1 | ε  Ví dụ 6.4: {a2nbn}; S → aaSb | ε Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.1 Khái niệm Pushdown Automata  Ví dụ 6.5: L={0n1n}= {ε, 01, 0011, 000111, …}, thiết kế DFA đốn nhận ngơn ngữ ??? q0 0,1 q7 q1 0,1 q6 q2 q3 1 … 1 q5 q4 0 Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University … Bài Pushdown Automata 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1 PDA 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 dạng PDA 6.2.1 Biến đổi tương đương từ dạng sang dạng 6.2.2 Biến đổi tương đương từ dạng sang dạng 6.3 Sự tương đương PDA 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 CFG Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.1.1 PDA khái niệm liên quan  Ví dụ 6.5: kiểm tra cân chuỗi đóng mở ngoặc sử dụng stack: while (input symbol is “[”) { Образец текста Второй уровень Третий уровень Четвертый уровень Пятый уровень ; while (input symbol is “]”) && (top of stack is “[”) ; } if (all of input read) && (top of stack is “ ”) Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.1.1 PDA khái niệm liên quan  PDA FA với bổ xung thêm ngăn xếp (stack) đóng vai trị nhớ, khả ghi nhớ FA tăng lên, dẫn đến PDA có khả đốn nhận lớp ngơn ngữ rộng RL (RG, RE);  Stack hoạt động theo nguyên lý FILO (LIFO), FA sử dụng nhớ có tên gọi Pushdown automata;  Tại thời điểm, PDA điều khiển đồng thời dòng liệu nhập vào (băng nhập- tape) nhớ - đẩy xuống (stack) Khi đọc tín hiệu vào, PDA chuyển sang trạng thái mới, thêm, xóa liệu từ stack, đồng thời hai;  Lớp PDA có khả đốn nhận lớp CFL, bao gồm ngơn ngữ lập trình đại; Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.1.1 PDA khái niệm liên quan 10  Có dạng chuyển trạng thái (transitions):  Dạng 1: phụ thuộc vào ký hiệu nhập Tại trạng thái, v ới ký hi ệu đ ọc vào đỉnh stack, PDA lựa chọn trạng thái k ế ti ếp m ột chu ỗi ký hi ệu thay stack, đầu đọc dịch sang phải 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ó cách định nghĩa ngôn ngữ chấp nhận PDA:  Ngôn ngữ chấp nhận stack rỗng: Gồm chuỗi nhập mà sau bước chuyển cuối stack trở trạng thái rỗng;  Ngôn ngữ chấp nhận trạng thái kết thúc: Gồm chuỗi nhập mà sau bước chuyển cuối rơi vào tr ạng thái k ết thúc; Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Pushdown Automata 27 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1 PDA 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 dạng PDA 6.2.1 Biến đổi tương đương từ dạng sang dạng 6.2.2 Biến đổi tương đương từ dạng sang dạng 6.3 Sự tương đương PDA 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 CFG Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.2.1 Biến đổi PDA từ dạng sang dạng 28  Định lý 6.1: Nếu CFL L chấp nhận PDA chấp nhận chuỗi trạng thái kết thúc A2 L chấp nhận PDA chấp nhận chuỗi Stack rỗng A1  Giải thuật: Đặt A2 = (Q, Σ, Γ, δ, q0, Z0, F) A1 = (Q ∪ {qe, q0'}, Σ, Γ, δ', q0', X0, Ø) δ'(q0', ε, X0) = {(q0, Z0X0)} δ'(q, a, Z) chứa phần tử δ(q, a, Z) , a ∈ (Σ ∪ {ε}) δ'(q, ε, Z) chứa (qe, ε) với ∀q ∈ F Z ∈ (Γ ∪ {X0}) δ'(qe, ε, Z) chứa (qe, ε) với ∀Z ∈ (Γ ∪ {X0}) Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Pushdown Automata 29 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1 PDA 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 dạng PDA 6.2.1 Biến đổi tương đương từ dạng sang dạng 6.2.2 Biến đổi tương đương từ dạng sang dạng 6.3 Sự tương đương PDA 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 CFG Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.2.2 Biến đổi PDA từ dạng sang dạng 30  Định lý 6.2: Nếu CFL L chấp nhận PDA chấp nhận chuỗi stack rỗng L chấp nhận PDA chấp nhận chuỗi trạng thái kết thúc  Giải thuật: Đặt: A1 = (Q, Σ, Γ, δ, q0, Z0, F) A2 = (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 Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Pushdown Automata 31 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1 PDA 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 dạng PDA 6.2.1 Biến đổi tương đương từ dạng sang dạng 6.2.2 Biến đổi tương đương từ dạng sang dạng 6.3 Sự tương đương PDA 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 CFG Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.3.1 Biến đổi từ CFG sang PDA 32  Định lý 6.3: Nếu L ngơn ngữ phi ngữ cảnh tồn PDA chấp nhận chuỗi với stack rỗng A cho L = N(A) Xây dựng văn phạm G = < Σ, Δ, S, P > thỏa dạng chuẩn Greibach L(G) không chứa ε Đặt A = ({q}, Σ, Γ, δ, q, S, Ø) PDA chấp nhận L với Stack rỗng δ'(q, a, A) = (q, γ) A → aγ Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.3.1 Biến đổi từ CFG sang PDA 33  Ví dụ 6.8: S → aAA ; A → aS | bS | a a, S→ AA  NPDA tương đương A = ({q}, {a, b}, {S, A}, δ, q, S, Ø) q với hàm chuyển δ sau: δ(q, a, S) = {(q, AA)} δ(q, a, A) = {(q, S), (q, ε)} δ(q, b, A) = {(q, S)} a, A→ S| ε b, A→ S 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 | ε q0 ε, ε  S ε, SaTb ε, TTa ε, Sb ε, Tε a, aε b, bε  Xét q trình đốn nhận aab: S → aTb → aTab → aab q1 (q0, aab, $) → (q1, aab, S$) → (q1, aab, aTb$) → (q1, ab, Tb$) → (q1, ab, Tab$) → (q1, ab, ab$) → ε, $ε (q1, b, b$) → (q1, ε, $) → (qf, ε,ε)  Lưu ý: ngôn ngữ ngơn ngữ quy qf Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Pushdown Automata 35 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1 PDA 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 dạng PDA 6.2.1 Biến đổi tương đương từ dạng sang dạng 6.2.2 Biến đổi tương đương từ dạng sang dạng 6.3 Sự tương đương PDA 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 CFG Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.3.2 Biến đổi từ PDA sang CFG 36  Định lý 6.4: Nếu L chấp nhận PDA chấp nhận chuỗi stack rỗng 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 > CFG, đó:  Δ tập đối tượng dạng [q, A, p]  Thêm vào ký hiệu bắt đầu S  P tập luật sinh dạng: S → [q0, Z0, q] với ∀q ∈ Q [q, A, qm+1] → a [q1, B1, q2][q2, B2, q3] [qm, Bm, qm+1]  δ(q, a, A) có chứa (qm+1, B1B2 Bm)  Nếu m = luật sinh có dạng [q, A, q1] → a Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.3.2 Biến đổi từ PDA sang CFG  Ví dụ 6.9: xây dựng CFG tương đương PDA: A({q0, q1}, {0, 1}, {Z0, X}, δ, q0, Z0, Ø)  Áp dụng giải thuật trên: CFG G(V, {0, 1}, P, S)  Tập ký hiệu phụ: Δ = { [q, A, p] } ∪ S với δ sau: δ(q0, 0, Z0) = {(q0, XZ0)} δ(q0, 0, X) = {(q0, XX)} δ(q0, 1, X) = {(q1, ε)} δ(q1, 1, X) = {(q1, ε)} δ(q1, ε, X) = {(q1, ε)} δ(q1, ε, Z0) = {(q1, ε)} = { 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] } = { S, A, B, , G, H}  Xây dựng P có dạng sau: S → [q0, Z0, q0] | [q0, Z0, q1] 6/27/14 6.3.2 Biến đổi từ PDA sang CFG 38 [q0, Z0,q0] → 0[q0, X, q0] [q0, Z0, q0] | [q0, X, q1] [q1, Z0, q0] [q0, Z0,q1] → [q0, X, q0] [q0, Z0, q1] | [q0, X, q1] [q1, Z0, q1] [q0, X, q0] → [q0, X, q0] [q0, X, q0] | [q0, X, q1] [q1, X, q0] [q0, X, q1] → [q0, X, q0] [q0, X, q1] | [q0, X, q1] [q1, X, q1] [q0, X, q1] → [q1, X, q1] → [q1, X, q1] → ε [q1, Z0, q1] → ε Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.3.2 Biến đổi từ PDA sang CFG  Như ta có P: S→E|F E → 0AE | 0BG F → 0AF | 0BH A → 0AA | 0BC  Giản lược văn phạm: P: S → F F → 0BH B → 0BD | D→ε|1 H→ε B → 0AB | 0BD | D→ε|1 H→ε  Kết cuối cùng: P: S → 0B B → 0B | 0B1 | Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical 6/27/14 University Bài tập chương 40 ● Ví dụ 6.10: L = { x ∈ {a,b}* | na(x) = 2nb(x) } ε, εA a , aε a, $ $ a, AA ε, Aε b, Aε ε , ε$ b, $ $ b, a a ε, εa ε , $ε ε, εa Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University ε, $$ Bài tập chương 41  Bài tập: Thiết kế PDA cho CFL sau: {ambn  ≤ m < n} {ambn  ≤ n < m} {ambncndm | m ≥ 0, n ≥ 0} {ambmcndn | m ≥ 0, n ≥ 0} {ambncpdq | m + n = p + q} {ambnck | m = n or m = k} {anbmc2n | m ≥ 0, n ≥ 0} Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University ... vào tr ạng thái k ết thúc; Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6.1.1 PDA khái niệm liên quan 11  Mơ hình máy PDA: Automata ngơn ngữ hình thức. .. ε,ε)  Lưu ý: ngơn ngữ ngơn ngữ quy qf Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Pushdown Automata 35 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1... (qe, ε) với ∀Z ∈ (Γ ∪ {X0}) Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Pushdown Automata 29 6.1 Khái niệm Pushdown Automata (PDA) 6.1.1 PDA khái

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

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Bài 6. Pushdown Automata

  • Bài 6. Pushdown Automata

  • 6.1. Khái niệm về Pushdown Automata

  • 6.1. Khái niệm về Pushdown Automata

  • Bài 6. Pushdown Automata

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

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

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

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

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

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

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

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

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

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

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

  • Bài 6. Pushdown Automata

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

Tài liệu cùng người dùng

Tài liệu liên quan