NỘI DUNG ÔN TẬP MÔN LÝ THUYẾT AUTOMATA & NNHT DÀNH CHO CÁC LỚP CHÍNH QUI

Chia sẻ: Hồ Viết Dũng | Ngày: | Loại File: PDF | Số trang:4

0
178
lượt xem
48
download

NỘI DUNG ÔN TẬP MÔN LÝ THUYẾT AUTOMATA & NNHT DÀNH CHO CÁC LỚP CHÍNH QUI

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung dự kiến Ngôn ngữ phi ngữ cảnh (NNPNC), VPPNC, NNPNC tuyến tính, VPPNC tuyến tính Dẫn xuất (DX), DX trái nhất - phải nhất, cây DX Tính nhập nhằng trong văn phạm và ngôn ngữ Các phép biến đổi văn phạm và hai dạng chuẩn Phân tích cú pháp (PTCP), độ phức tạp của các giải thuật PTCP Phương pháp vét cạn, giải thuật PTCP theo CYK Automata đẩy xuống không đơn định (NPDA) và đơn định DPDA NNPNC đơn định, các văn phạm cho NNPNC đơn định, văn phạm LL(k) Bổ đề...

Chủ đề:
Lưu

Nội dung Text: NỘI DUNG ÔN TẬP MÔN LÝ THUYẾT AUTOMATA & NNHT DÀNH CHO CÁC LỚP CHÍNH QUI

  1. NỘI DUNG ÔN TẬP MÔN LÝ THUYẾT AUTOMATA & NNHT DÀNH CHO CÁC LỚP CHÍNH QUI Lưu ý Nội dung thi Chương 5 đến Chương 9 Hình thức thi Trắc nghiệm Thời gian 120 phút Số lượng câu dự kiến 50 câu Lý thuyết dự kiến 10 đến 15 câu Bài tập dự kiến 35 đến 40 câu Cho phép xem tài liệu trong 2 tờ giấy A4 Lý thuyết STT Nội dung dự kiến 1 Ngôn ngữ phi ngữ cảnh (NNPNC), VPPNC, NNPNC tuyến tính, VPPNC tuyến tính 2 Dẫn xuất (DX), DX trái nhất - phải nhất, cây DX 3 Tính nhập nhằng trong văn phạm và ngôn ngữ 4 Các phép biến đổi văn phạm và hai dạng chuẩn 5 Phân tích cú pháp (PTCP), độ phức tạp của các giải thuật PTCP 6 Phương pháp vét cạn, giải thuật PTCP theo CYK 7 Automata đẩy xuống không đơn định (NPDA) và đơn định DPDA 8 NNPNC đơn định, các văn phạm cho NNPNC đơn định, văn phạm LL(k) 9 Bổ đề bơm cho NNPNC và NNPNC tuyến tính 10 Tính đóng của họ NNPNC và các tính chất khả quyết định 11 Máy Turing 12 Mô hình phân cấp theo Chomsky Bài tập STT Bài tập dự kiến 1 Cho ngôn ngữ L tìm văn phạm G 2 Cho G tìm L 3 Nhận biết G nhập nhằng trên chuỗi nào 4 Tìm dẫn xuất của w trên G 5 Loại bỏ các loại luật sinh - vô dụng, - đơn vị, - trống 6 Biến đổi văn phạm thành dạng chuẩn Chomsky, Greibach 7 Phân tích cú pháp bằng giải thuật CYK 8 Cho L tìm NPDA 9 Cho NPDA tìm L 10 Tìm dãy chuyển hình trạng của NPDA chấp nhận w 11 Cho G tìm NPDA 12 Cho dãy dẫn xuất của w, tìm dãy chuyển hình trạng tương ứng của w 13 Cho L tìm DPDA 14 Cho DPDA tìm L 15 Tìm dãy chuyển hình trạng của DPDA chấp nhận w 16 Cho L tìm văn phạm LL(k) (chủ yếu k = 1 hoặc 2) 17 Nhận biết một văn phạm có thuộc họ LL(k) không (chủ yếu k = 1 hoặc 2) 18 Phân tích cú pháp cho chuỗi w trên văn phạm LL(1) 19 Nhận biết một ngôn ngữ có phi ngữ cảnh hoặc phi ngữ cảnh tuyến tính hay không 20 Cho máy Turing M, nhận biết ngôn ngữ L được chấp nhận bởi M
  2. MỘT SỐ BÀI TẬP ÔN + ĐÁP ÁN Ghi chú: Các đáp án ở đây không phải là duy nhất, các bạn sinh viên có thể tìm thấy các đáp án khác. 1. Cho các ngôn ngữ L sau, tìm các văn phạm G tương ứng: L1 = {a2n+1bn+2: n ≥ 0} L2 = {w ∈ {a, b}*: na(w) = nb(w) + 1} L3 = {w ∈ {a, b}*: na(w) = nb(w) + 1} L4 = {w ∈ {a, b}*: na(w) = 2nb(w) + 1} Đáp án: G 1: S → aaSb | abb G2(1): S → aSbS | bSaS | λ G2(2): S → aSb | bSa | SS |λ G2(2): S → aAS | bBS | λ A → aAA | b B → bBB | a Chú ý: G2(2) là văn phạm thuộc họ LL(1) G3(1): S → aX | bXaS X → aXbX | bXaX | λ G3(2): S → BX X → aAX | bBX | λ A → aAA | b B → bBB | a Chú ý: G3(2) là văn phạm thuộc họ LL(1) G 4: S → aX | bXaXaS X → aXaXbX | aXbXaX | bXaXaX | λ 2. Cho các văn phạm G sau, tìm các ngôn ngữ L tương ứng: G 1: S → aSbS | λ G 2: E → E+T | E-T | T T → T*F | T/F | F F → (E) | a | b G 3: S → aEbS | aEbScS | λ E→d|e Đáp án: L1 = {w ∈ {a, b}*: na(w) = nb(w), na(v) ≥ nb(v) với v là một tiếp đầu ngữ bất kỳ của w} trong đó na(w), nb(w) là các kí hiệu biểu thị số kí tự a và b có trong w. Chú ý: Nếu thay a bằng dấu mở ngoặc “(“ (hoặc bằng từ khoá begin) và b bằng dấu đóng ngoặc “)” (hoặc từ khoá end) thì ngôn ngữ trên biểu thị cấu trúc ngoặc lồng nhau, chẳng hạn ((()())(()))((())()) L2 = {Các biểu thức số học trên các kí hiệu a, b bao gồm các phép (), +, -, *, /} Chú ý: Văn phạm trên thể hiện độ ưu tiên của các phép toán theo thứ tự sau từ cao đếp thấp: (), * và /, + và - L3 = {Biểu diễn các cấu trúc lệnh if Điều kiện then … và if Điều kiện then … else. Trong đó a là đại diện cho if, E đại diện cho biểu thức điều kiện nhận hai giá trị d và e lần lượt đại diện cho hai giá trị true và false, còn c đại diện cho else} 3. Những văn phạm nào sau đây nhập nhằng, nếu có hãy chỉ ra nhập nhằng trên chuỗi nào G1: S → aSbS | bSaS | λ G3: S → aSbS | λ G5: E → E+T | E-T | T G2: S → aSb | bSa | SS |λ G4: E → E+E | E-E | E*E | E/E | (E) | a | b T → T*F | T/F | F F → (E) | a | b
  3. Chú ý: Văn phạm G1 và G2 biểu diễn cùng một ngôn ngữ, văn phạm G4 và G5 biểu diễn cùng một ngôn ngữ. Đáp án: G1 nhập nhằng trên chuỗi abab. G3 và G5 không nhập nhằng. G2 nhập nhằng trên chuỗi abab. Ở mỗi chuỗi được chỉ ra mà một văn phạm nhập nhằng, sinh G4 nhập nhằng trên chuỗi a+b*c. viên tự tìm hai cây dẫn xuất cho chuỗi trên văn phạm đó. 4. Cho các ngôn ngữ L sau, tìm các npda M tương ứng: L1 = {a2n+kbn+l: n ≥ 0, k, l ≥ 1} L2 = {w ∈ {a, b}*: na(w) = nb(w) + 1} L3 = {w ∈ {a, b}*: na(w) > nb(w)} L4 = {w ∈ {a, b}*: na(w) = nb(w), na(v) ≥ nb(v) với v là tiếp đầu ngữ bất kỳ của w} Đáp án: Chú ý: q0 là trạng thái khởi đầu, qf là trạng thái kết thúc. M1 : M2 : M3 : M4 : k δ(q0, λ, z) = (q1, c z) δ(q0, λ, z) = (q1, bz) δ(q0, a, z) = (q0, az) δ(q0, a, z) = (q0, az) δ(q1, a, c) = (q1, λ) δ(q1, a, a) = (q1, aa) δ(q0, b, z) = (q0, bz) δ(q0, a, a) = (q0, aa) δ(q1, a, z) = (q1, az) δ(q1, b, a) = (q1, λ) δ(q0, a, a) = (q0, aa) δ(q0, b, a) = (q0, λ) δ(q1, a, a) = (q1, aa) δ(q1, a, b) = (q1, λ) δ(q0, b, a) = (q0, λ) δ(q0, λ, z) = (qf, z) δ(q1, b, a) = (qt, λ) δ(q1, b, b) = (q1, bb) δ(q0, a, b) = (q0, λ) δ(qt, λ, a) = (q2, λ) δ(q1, a, z) = (q1, az) δ(q0, b, b) = (q0, bb) δ(q2, b, a) = (qt, λ) δ(q1, b, z) = (q1, bz) δ(q0, a, z) = (qf, z) δ(q2, b, z) = (q3, cl - 1z) δ(q1, λ, z) = (qf, z) δ(qf, a, z) = (qf, z) δ(q3, b, c) = (q3, λ) δ(q3, λ, z) = (qf, z) δ(q1, b, z) = (q3, cl - 1z) 5. Cho các ngôn ngữ L sau, tìm các dpda M tương ứng: L1 = {a2n+kbn+l: n ≥ 0, k, l ≥ 1} L2 = {w ∈ {a, b}*: na(w) = nb(w) + 1} L3 = {w ∈ {a, b}*: na(w) > nb(w)} L4 = {w ∈ {a, b}*: na(w) = nb(w), na(v) ≥ nb(v) với v là một tiếp đầu ngữ bất kỳ của w} Đáp án: Chú ý: q0 là trạng thái khởi đầu, qf là trạng thái kết thúc, q0f là trạng thái vừa khởi đầu vừa kết thúc. M1 : M2 : M3 : M4 : δ(q0, λ, z) = (q1, ckz) δ(q0, λ, z) = (q1, bz) δ(q0, a, z) = (qf, az) δ(q0f, a, z) = (q1, az) δ(q1, a, c) = (q1, λ) δ(q1, a, a) = (q1, aa) δ(q0, b, z) = (q0, bz) δ(q1, a, a) = (q1, aa) δ(q1, a, z) = (q1, az) δ(q1, b, a) = (q1, λ) δ(qf, a, a) = (qf, aa) δ(q1, b, a) = (q1, λ) δ(q1, a, a) = (q1, aa) δ(q1, a, b) = (q1, λ) δ(qf, b, a) = (qt, λ) δ(q1, λ, z) = (q0f, z) δ(q1, b, a) = (qt, λ) δ(q1, b, b) = (q1, bb) δ(qt, λ, z) = (q0, z) δ(qt, λ, a) = (q2, λ) δ(q1, λ, z) = (qf, z) δ(qt, λ, a) = (qf, a) δ(q2, b, a) = (qt, λ) δ(qf, a, z) = (q1, az) δ(q0, a, b) = (qt, λ) δ(q2, b, z) = (q3, cl - 1z) δ(qf, b, z) = (q1, bz) δ(qt, λ, b) = (q0, b) δ(q3, b, c) = (q3, λ) δ(q0, b, b) = (q0, bb) δ(q3, λ, z) = (qf, z) δ(q1, b, z) = (q3, cl - 1z) 6. Cho các ngôn ngữ L sau, tìm các máy Turing M tương ứng: L1 = {anbncn: n ≥ 1} L2 = {w ∈ {a, b}*: na(w) = nb(w) ≥ 1, na(v) ≥ nb(v) với v là tiếp đầu ngữ bất kỳ của w} L3 = {w ∈ {a, b}*: na(w) = nb(w) ≥ 0} L4 = {wwR ∈ {a, b}*}
  4. Đáp án: M1 : M2 : M3 : M4 : δ(q0, a) = (q1, x, R) δ(q0, a) = (q0, a, R) δ(q0, a) = (q1, x, R) δ(q0, a) = (q1, x, R) δ(q1, a) = (q1, a, R) δ(q0, b) = (q1, y, L) δ(q1, a) = (q1, a, R) δ(q1, a) = (q1, a, R) δ(q1, y) = (q1, y, R) δ(q1, y) = (q1, y, L) δ(q1, y) = (q1, y, R) δ(q1, b) = (q1, b, R) δ(q1, b) = (q2, y, R) δ(q1, x) = (q1, x, L) δ(q1, b) = (q2, y, L) δ(q1, ) = (q2, , L) δ(q2, b) = (q2, b, R) δ(q1, a) = (q0, x, R) δ(q2, y) = (q2, y, L) δ(q2, a) = (q3, x, L) δ(q2, z) = (q2, z, R) δ(q0, x) = (q0, x, R) δ(q2, a) = (q2, a, L) δ(q3, a) = (q3, a, L) δ(q2, c) = (q3, z, L) δ(q0, y) = (q0, y, R) δ(q2, x) = (q0, x, R) δ(q3, b) = (q3, b, L) δ(q3, z) = (q3, z, L) δ(q0, ) = (q2, , L) δ(q0, y) = (q0, y, R) δ(q3, x) = (q0, x, R) δ(q3, b) = (q3, b, L) δ(q2, y) = (q2, y, L) δ(q3, y) = (q3, y, L) δ(q2, x) = (q2, x, L) δ(q0, b) = (q3, y, R) δ(q0, b) = (q4, y, R) δ(q3, a) = (q3, a, L) δ(q2, ) = (qf, , L) δ(q3, b) = (q3, b, R) δ(q4, b) = (q4, b, R) δ(q3, x) = (q0, x, R) δ(q3, x) = (q3, x, R) δ(q4, a) = (q4, a, R) δ(q0, y) = (q4, y, R) δ(q3, a) = (q4, x, L) δ(q4, ) = (q5, , L) δ(q4, y) = (q4, y, R) δ(q4, x) = (q4, x, L) δ(q5, b) = (q6, y, L) δ(q4, z) = (q4, z, R) δ(q4, b) = (q4, b, L) δ(q6, b) = (q6, b, L) δ(q4, ) = (qf, , R) δ(q4, y) = (q0, y, R) δ(q6, a) = (q6, a, L) δ(q0, x) = (q0, x, R) δ(q6, y) = (q0, y, R) δ(q0, ) = (qf, , R) δ(q0, x) = (qf, x, R) δ(q0, y) = (qf, y, R) δ(q0, ) = (qf, , R) MỘT SỐ NGÔN NGỮ CẦN CHÚ Ý Nhóm các ngôn ngữ dạng {anbn} Nhóm các ngôn ngữ dạng {w ∈ {a, b}*: na(w) = nb(w)} {anbm: n > m} {w ∈ {a, b}*: na(w) = nb(w) + 1} {anbm: n < m} {w ∈ {a, b}*: na(w) = nb(w) + 2} {anbm: n ≠ m} {w ∈ {a, b}*: na(w) > nb(w)} {anb2n: n > m} {w ∈ {a, b}*: na(w) ≥ nb(w) + 1} {an+2b2n: n > m} {w ∈ {a, b}*: na(w) ≠ nb(w)} {a2nbn+1: n > m} {w ∈ {a, b}*: na(w) = 2nb(w)} ... {w ∈ {a, b}*: na(w) + 1 = 2nb(w)} {w ∈ {a, b, c}*: na(w) = nb(w) + nc(w)} ... Nhóm các ngôn ngữ dạng {anbjbk} Nhóm các ngôn ngữ dạng {w ∈ {a, b, c}*: na = nb = nc} n n n {a b c : n ≥ 0} Nhóm các ngôn ngữ dạng {wwR: w ∈ {a, b}*} n j k {a b c : n = j + k} Nhóm các ngôn ngữ dạng {ww: w ∈ {a, b}*} {anbjck : j = n + k} {anbjck : n = jk} {anbjck : j = nk} {anbjck : n > jk} {anbjck : n > j, n > k} {anbjck : j > n, j > k} {anbjck : n > j > k} ... Phân tích cú pháp bằng giải thuật Earley trên văn phạm (phần này lớp MT2001 không thi) E→E+T|T (1, 2) T→T*F|F (3, 4) F → (E) | a | b (5, 6, 7)
Đồng bộ tài khoản