Bộ đề thi có đáp án automat

18 8K 29
Bộ đề thi có đáp án automat

Đ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

DHLTTB01 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA CÔNG NGHỆ THÔNG TIN oOo ĐỀ THI MẪU NĂM 2007 (A) Chuyên ngành: KHOA HỌC MÁY TÍNH Môn Thi: Automata Thời gian làm bài: 90 phút  Câu 7 (2,5 đ): Cho I={a,b}. Hãy xây dựng một automat hữu hạn M sao cho chấp nhận ngôn ngữ L={(a n b 2 : n ≥ 0} Câu 9 (2,5 đ): Cho văn phạm sau đây: G= < {a,b} , {S} , P , S > Với P = { S  aSb, S  } ( với  là ký hiệu ký tự rỗng ) a) Hãy cho biết dạng thức của những dòng ký tự thuộc ngôn ngữ L(G). (0,5 điểm) b) Văn phạm G thuộc loại văn phạm gì ? Câu 8 (2.5 đ): Xây dựng một automat đẩy ngược ( pushdown automata) chấp nhận ngôn ngữ sau đây: L= { a n b n+1 : n ≥ 1} Câu 6 (2.5 đ): Xây dựng một automat đẩy ngược ( pushdown automata) chấp nhận văn phạm sau đây: G= < {a,b} , {S} , P , S > Với P = { S  aSb, S  } ( với  là ký hiệu ký tự rỗng ) hết GIẢI Câu 7 (2.5 đ): Automat hữu hạn M sao cho chấp nhận ngôn ngữ L={(a n b 2 : n ≥ 0} là: M = (Q,  ,  , q 0 , F) Với : Q = { q 0 , q 1 , q 2 , q 3 } ;  = { a,b} ; F = { q 2 } ( q 0 , a) = q 0 ( q 0 , b) = q 1 ( q 1 , a) = q 3 ( q 1 , b) = q 2 ( q 2 , a) = q 3 ( q 2 , b) = q 3 ( q 3 , a) = q 3 ( q 3 , b) = q 3 Câu 9 (2.5 đ): Cho văn phạm sau đây: G= < {a,b} , {S} , P , S > q 0 q 1 q 3 q 2 a b a,b b a a,b DHLTTB01 Với P = { S  aSb, S  } ( với  là ký hiệu ký tự rỗng ) a) Đặt w  { a,b}* , lúc đó từ P ta có: S  aSa  aaSbb  a 3 S b 3  …  a n S b n Thế S   vào ta được dạng thức của dòng ký tự thuộc L(G) là a n S b n : n ≥ 0 b) Văn phạm G thuộc loại văn phạm tuyến tính ( hoặc văn phạm phi ngữ cảnh) Câu 8 (2.5 đ ): Automat đẩy ngược ( pushdown automaton) chấp nhận ngôn ngữ L= { a n b n+1 : n ≥ 1} là: M = (Q,  ,  ,  , q 0 , z , F) Với : ( q 0 , a , z ) = {( q 0 ,az)} , ( q 0 , a , a ) = {( q 0 ,aa)} , ( q 0 ,  , a ) = {( q 1 ,a)} , ( q 1 , b , a ) = {( q 1 , )} , ( q 1 , b , z ) = {( q 1 , )} , ( q 1 ,  , z ) = {( q f ,z)} , Q = { q 0 , q 1 , q f } ;  = { a,b} ; = {a,z} ; F = { q f } Câu 10 (2.5 đ): Xây dựng một automat đẩy ngược ( pushdown automata) chấp nhận ngôn ngữ sau đây: L = {ww R : w  { a,b}* } với w R là sự đảo ngược của dòng ký tự w và tập ký tự của ngôn ngữ là {a,b} Giải : Automat đẩy ngược ( pushdown automata) chấp nhận ngôn ngữ L = {ww R : w  { a,b}* } là: M = (Q,  ,  ,  , q 0 , z , F) Với : ( q 0 , a , z ) = {( q 0 ,az)} , ( q 0 , a , a ) = {( q 0 ,aa)} , ( q 0 , a , b ) = {( q 0 ,ab)} , ( q 0 , b , a ) = {( q 0 ,ba)} , ( q 0 , b , b ) = {( q 0 ,bb)} , ( q 0 , b , z ) = {( q 0 ,bz)} , ( q 0 ,  , a ) = {( q 1 ,a)} , ( q 0 ,  , b ) = {( q 1 ,b)} , ( q 1 , a , a ) = {( q 1 , )}, ( q 1 , b , b ) = {( q 1 , )}, ( q 1 ,  , z ) = {( q f ,z)} , Q = { q 0 , q 1 , q f } ;  = { a,b} ; = {a,b,z} ; F = { q f }  Ghi chú: Ký tên: Trang: 2/2 TRƯỜNG ĐẠI HỌC CẦN THƠ Đề thi môn: TIN HỌC LÝ THUYẾT KHOA CNTT & TRUYỀN THÔNG Lớp: TIN HỌC K.29 Lần 2 – Học kỳ 1 – Năm học 06 - 07 Thời gian làm bài: 120 phút NỘI DUNG ĐỀ Câu 1 (1.0 điểm): Áp dụng bổ đề bơm, bạn hãy chứng minh ngôn ngữ sau đây không là ngôn ngữ chính quy: L = {a i b j c j d i | i, j ≥ 1} Câu 2 (2.0 điểm): Bạn hãy tìm một DFA tương đương với NFA sau: Câu 3 (1.5 điểm): Bạn hãy vẽ một automata hữu hạn chấp nhận cho ngôn ngữ được ký hiệu bởi biểu thức chính quy sau: ( (a + ab) b* a )* Câu 4 (1.0 điểm): Bạn hãy chuyển văn phạm sau đây về dạng chuẩn Chomsky (cho biết rằng văn phạm không có ký hiệu vô ích): S → 0SA | 1SB | 01 A → 0A | 0 B → 1B | 1 Câu 5 (1.0 điểm): Bạn hãy chuyển văn phạm sau đây về dạng chuẩn Greibach: S → SA | 0 A → AS | 1 Câu 6 (1.5 điểm): Bạn hãy thiết kế một PDA tương đương với văn phạm phi ngữ cảnh có tập luật sinh như sau: S → 0SA | 1SB | 0 | 1 A → 0A | 0 B → 1B | 1 Câu 7 (2.0 điểm): Bạn hãy thiết kế một máy Turing để thực hiện phép nhân 3 một số nguyên n dương (n > 0). Chú ý: trên băng nhập đã được cho trước một ký hiệu X ở đầu băng. Đầu đọc đang chỉ tại vị trí đầu tiên của băng nhập (ký hiệu X). Ví dụ: thực hiện phép nhân 3 cho số n = 3 (3 * 3 = 9) Đầu vào (input): X000 Kết quả (output): 000000000 (9 số 0) - HẾT - ĐHCT, ngày 02 tháng 02 năm 2007 Giáo viên ra đề Nguyễn Thanh Bình q 1 q 2 q 3 a, b a a, b start b ĐÁP ÁN Câu 1 (1.0 điểm): Áp dụng bổ đề bơm, bạn hãy chứng minh ngôn ngữ sau đây không là ngôn ngữ chính quy: L = {a i b j c j d i | i, j ≥ 1} Giả sử L là ngôn ngữ chính quy. Khi đó sẽ tồn tại một DFA M chấp nhận cho ngôn ngữ L. Gọi n là số trạng thái của DFA M đó. Xét chuỗi z = a n b 1 c 1 d n . Ta có độ dài của chuỗi z là: |z| = 2n + 2 > n . Theo bổ đề bơm, ta có thể đặt z = uvw , trong đó u, v, w là các chuỗi con của z với điều kiện như sau: |uv| ≤ n, |v| ≥ 1 và với mọi i ≥ 0 ta có uv i w ϵ L Do uv là chuỗi tiền tố của chuỗi z = a n b 1 c 1 d n và uv có độ dài chuỗi không lớn hơn n nên uv chỉ chứa ký tự a. Vậy v cũng chỉ chứa ký hiệu a (và có ít nhất một ký hiệu a). Xét chuỗi uv 2 w, ta thấy chuỗi uv 2 w so với chuỗi uvw = z = a n b 1 c 1 d n có nhiều hơn một chuỗi v. Mặt khác, trong chuỗi v chỉ chứa ký hiệu a, nên ta suy ra trong chuỗi uv 2 w sẽ có số ký hiệu a lớn hơn n (và số ký hiệu d không đổi là n). Vậy trong chuỗi uv 2 w sẽ có số ký hiệu a nhiều hơn ký hiệu d, hay chuỗi uv 2 w không thuộc ngôn ngữ L. Vậy giả thiết L là ngôn ngữ chính quy sai, hay L không là ngôn ngữ chính quy. Câu 2 (2.0 điểm): Bạn hãy tìm một DFA tương đương với NFA sau: DFA tương đương: Câu 3 (1.5 điểm): Bạn hãy vẽ một automata hữu hạn chấp nhận cho ngôn ngữ được ký hiệu bởi biểu thức chính quy sau: ( (a + ab) b* a )* Cách 1: start [q 1 ] [q 2 ] [q 3 ] [q 1 , q 2 ] [q 2 , q 3 ] [q 1 ,q 2 ,q 3 ] a b a b b a b a a b q 1 q 2 q 3 a, b a a, b start b q 1 start q 2 q 3 b b a a a Cách 2: sử dụng cách vẽ đã học theo định lý 3.3 – Giáo trình Tin học lý thuyết – MSc. Võ Huỳnh Trâm – Đại học Cần Thơ – 2003. Câu 4 (1.0 điểm): Bạn hãy chuyển văn phạm sau đây về dạng chuẩn Chomsky (cho biết rằng văn phạm không có ký hiệu vô ích): S → 0SA | 1SB | 01 A → 0A | 0 B → 1B | 1 Bước 1: bỏ qua (vì đề bài đã cho biết văn phạm không có ký hiệu vô ích, và nhìn vào văn phạm ta thấy không có luật sinh ε hay luật sinh đơn vị). Bước 2: thay thế các ký hiệu kết thúc ở các luật sinh có độ dài vế phải lớn hơn 1 bằng các biến tương ứng. S → C 0 SA | C 1 SB | C 0 C 1 A → C 0 A | 0 B → C 1 B | 1 C 0 → 0 C 1 → 1 Bước 3: thay thế luật sinh có độ dài vế phải lớn hơn 2 bằng các luật sinh có độ dài vế phải bằng 2. S → C 0 D 0 | C 1 D 1 | C 0 C 1 A → C 0 A | 0 B → C 1 B | 1 C 0 → 0 C 1 → 1 D 0 → SA D 1 → SB Câu 5 (1.0 điểm): Bạn hãy chuyển văn phạm sau đây về dạng chuẩn Greibach: S → SA | 0 A → AS | 1 Bước 1: văn phạm đã ở dạng chuẩn Chomsky. Bước 2: thay biến S bằng biến A 1 , biến A bằng biến A 2 . Ta có tập luật sinh: A 1 → A 1 A 2 | 0 A 2 → A 2 A 1 | 1 Bước 3: khử tính đệ quy trái ở tập luật sinh trên: A 1 → 0 | 0B 1 A 2 → 1 | 1B 2 B 1 → A 2 | A 2 B 1 B 2 → A 1 | A 1 B 2 Bước 4: các luật sinh từ biến A 1 và A 2 đã thỏa dạng chuẩn Greibach. Bước 5: chuyển các luật sinh từ biến B 1 và B 2 về dạng chuẩn Greibach. A 1 → 0 | 0B 1 A 2 → 1 | 1B 2 B 1 → 1 | 1B 2 | 1B 1 | 1B 2 B 1 B 2 → 0 | 0B 1 | 0B 2 | 0B 1 B 2 Tập luật sinh trên đã thỏa dạng chuẩn Greibach. Câu 6 (1.5 điểm): Bạn hãy thiết kế một PDA tương đương với văn phạm phi ngữ cảnh có tập luật sinh như sau: S → 0SA | 1SB | 0 | 1 A → 0A | 0 B → 1B | 1 Xây dựng PDA M như sau: M ({q}, {0, 1}, {S, A, B}, δ, q, S, Ø) Với các hàm chuyển δ như sau: δ (q, 0, S) = { (q, SA), (q, ε) } δ (q, 1, S) = { (q, SB), (q, ε) } δ (q, 0, A) = { (q, A), (q, ε) } δ (q, 1, B) = { (q, B), (q, ε) } Câu 7 (2.0 điểm): Bạn hãy thiết kế một máy Turing để thực hiện phép nhân 3 một số nguyên n dương (n > 0). Chú ý: trên băng nhập đã được cho trước một ký hiệu X ở đầu băng. Đầu đọc đang chỉ tại vị trí đầu tiên của băng nhập (ký hiệu X). Ý tưởng: a) Đổi X thành B (để làm chốt chặn ở đầu chuỗi) b) Gặp số 0 đầu tiên đổi thành 1 (đổi thành 1 để đánh dấu số 0 đó đã được xét) c) Di chuyển đến cuối chuỗi, đổi 2 ký hiệu B thành ký hiệu 2. d) Di chuyển về đầu chuỗi cho đến khi gặp ký hiệu 1, dịch phải. 1. Nếu ký hiệu tiếp theo là 0, lặp lại bước b. 2. Nếu ký hiệu tiếp theo là 2 thì di chuyển về cuối chuỗi (cho đến khi gặp B), sau đó dịch trái đổi các ký hiệu 1 và 2 thành 0. Gặp ký hiệu B ở đầu chuỗi thì kết thúc. HẾT q 0 q 1 q 7 (X, B, R) start q 5 q 6 q 2 q 3 q 4 (0, 1, R) (0, 0, R) (B, 2, R) (B, 2, L) (0, 0, L) (2, 2, L) (1, 1, R) (2, 2, R) (2, 2, R) (2, 2, R) (B, B, L) (2, 0, L) (1, 0, L) (B, B, Ø) TUTORIAL-8 Exaple-1: Convert the following NFA into a DFA that accepts the same language. 1. Start state of the DFA is a set of start states for NFA. 2. Create new states for all states reachable from start state. 3. Repeat process for all new states. 4. Stop when no more new states created. State/Input 0 1 {a, b} {c} {b} {c} {d} {d} {b} {c} Φ {d} {a, b} {b} Φ Φ Φ From the above transition table we have to draw the corresponding DFA. a b c d 1 0 0 0.1 0 , 1 NFA Example-2: Consider the following grammar where production (4) denotes a single letter. <E>  <E><E> (1) | <E> : <E> (2) | (<E>) (3) | <letter> (4) Q: What are the two sources of the ambiguity present in the above grammar? Ans: (i) Precedence i.e. in this grammar it is not defined that production (1) has got higher precedence or production (2) has got higher precedence or production (3) has got higher precedence. (ii) Associativity i.e. it is not defined that production (1) or production (2) is left- associative or right-associative ( because productions are symmetric). The above grammar has been re-written into the following unambiguous form. <E>  <T> : <E> (1) | <T> (2) <T>  <T> <F> (3) | <F> (4) <F>  (<E>) (5) | <letter> (6) Q: Production (1) or Production (3) has got higher precedence? Ans: Production (3) has got higher precedence. {c} {b } {a,b } {d 0 0, 1 1 0 0 DFA Φ 1 0,1 Q: State whether Production (1) and Production (3) are right-associative or left- associative? Ans: Production (1) is right-associative and Production (3) is left-associative. Q: Draw the parse tree for the string “ab:c:d” using the unambiguous grammar. Ans: <E>  <T> : <E> (1)  <T> <F> : <E> (3)  <F> <F> : <E> (4)  <letter><F> : <E> (6)  a<letter> : <E> (6)  ab : <T> : <E> (1)  ab : <F> : <E> (4)  ab : <letter> : <E> (6)  ab : c: <T> (2)  ab: c: <F> (4)  ab: c : <letter> (6)  ab : c : d PARSE TREE: <E> <T> <E> : <T> <F> <T> <E> : <F> <letter> <letter a b <F> <T> <letter> <F> c <letter> d Example-3: Consider the following grammar for music expressions where production (1) denotes parallel composition, production (2) denotes sequential composition and production (4) denotes a single note of music. <M>  <M> | <M> (1) | <M><M> (2) | (<M>) (3) | <Note> (4) <Note>  a’ | a | a# | b’ | b | c | c# | d’ | d | d# | e’ | e | f | f# | g’ | g | g# | r Q: Give a string in the language generated by <M> that involves productions (1) to (4) inclusive. Ans: <M>  <M> | <M> (1)  <M><M> | <M> (2)  (<M>)<M> | <M> (3)  (<Note>)<M> | <M> (4)  (a’)<Note> | <M> (4)  (a’)c# | <Note> (4)  (a’)c# | g String in the language is “(a’)c# | g” Q: Give two parse trees using the above grammar for the same string “c | e | g” [...]... 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) Phân tích cú pháp cho chuỗi w trên văn phạm LL(1) 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 Cho máy Turing M, nhận biết ngơn ngữ L được chấp nhận bởi M 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ữ... 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) Xem lại những bài tốn sau: 1- Tìm một dfa hay nfa chấp nhận một ngơn ngữ sinh ra một văn phạm hay ngược lại, có automat hay ngơn ngữ đi tìm văn phạm như bài tốn 1a, 1b 1 (a) Xây dựng dfa chấp nhận ngôn ngữ sinh ra bởi văn phạm S -> abA A -> baB B -> aA | bb 1 (b) cho trước một automat dfa hay nfa tìm văn phạm... L tương ứng: S → aSbS | λ G 1: G 2: E → E+T | E-T | T T → T*F | T/F | F F → (E) | a | b S → aEbS | aEbScS | λ G 3: 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ừ khố begin) và b bằng dấu đóng ngoặc “)” (hoặc từ khố end)... 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 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... (1) (2) (3) (4) (5) | () (6) a’ | a | a# | b’ | b | c | c# | d’ | d | d# | e’ | e | f | f# | g’ | g | g# | r 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 Hình thức thi Thời gian Số lượng câu dự kiến Lý thuyết dự kiến Bài tập dự kiến Cho phép xem tài liệu Chương 5 đến Chương 9 Trắc nghiệm 120 phút 50 câu 10 đến 15 câu 35 đến 40... 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: S → aaSb | abb G 1: S → aSbS | bSaS | λ G2(1): G2(2): S → aSb | bSa | SS |λ S → aAS | bBS | λ G2(2): 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... 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 : M3 : M4 : M2 : k δ(q0, λ, z) = (q1, c z) δ(q0, λ, z) = (q1, bz) δ(q0, a, z) = (q0, az) δ(q0, a, z) = (q0, az) δ(q1, a, c) = (q1, λ)... ứ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 M3 : M4 : M1 : M2 : δ(q0, λ, z) = (q1, ckz) δ(q0, λ, z) = (q1, bz) δ(q0, a, z) = (qf, az)... 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}*} Đáp án: M1 : δ(q0, a) = (q1, x, R) δ(q1, a) = (q1, a, R) δ(q1, y) = (q1, y, R) δ(q1, b) = (q2, y, R) δ(q2, b) = (q2, b, R) δ(q2, z) = (q2, z, R) δ(q2, c) = (q3, z, L) δ(q3, z) = (q3, z, L) δ(q3, b) = (q3,... đổ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ổ đề bơm cho NNPNC và NNPNC tuyến tính Tính đóng của họ NNPNC và các tính chất khả quyết định Máy Turing Mơ hình phân cấp theo Chomsky Bài tập . L được chấp nhận bởi M 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. 000000000 (9 số 0) - HẾT - ĐHCT, ngày 02 tháng 02 năm 2007 Giáo viên ra đề Nguyễn Thanh Bình q 1 q 2 q 3 a, b a a, b start b ĐÁP ÁN Câu 1 (1.0 điểm): Áp dụng bổ đề bơm, bạn hãy chứng minh ngôn ngữ sau. CẦN THƠ Đề thi môn: TIN HỌC LÝ THUYẾT KHOA CNTT & TRUYỀN THÔNG Lớp: TIN HỌC K.29 Lần 2 – Học kỳ 1 – Năm học 06 - 07 Thời gian làm bài: 120 phút NỘI DUNG ĐỀ Câu 1 (1.0 điểm): Áp dụng bổ đề bơm,

Ngày đăng: 17/09/2014, 21:03

Từ khóa liên quan

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

Tài liệu liên quan