1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài tập lý thuyết ngôn ngữ hình thức và automata

5 6,2K 215
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Lý Thuyết Ngôn Ngữ Hình Thức Và Automata
Người hướng dẫn Hồ Văn Quân
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập
Định dạng
Số trang 5
Dung lượng 283,49 KB

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

Nội dung

rèn luyện thêm kỹ năng lập trình.

Trang 1

BÀI TẬP LÝ THUYẾT NNHT&AUTOMATA

PHẦN NGÔN NGỮ CHÍNH QUI

1 Tìm các dfa cho các ngôn ngữ sau:

L1 = {w ∈ {a, b}*: n a (w) mod 2 = 0, n b (w) mod 2 = 1}

L2 = {w ∈ {0, 1}*: mỗi chuỗi 00 được theo ngay sau bởi một số 1}

L3 = {tập tất cả các danh hiệu của Pascal}

Mô tả danh hiệu: bắt đầu bằng một kí tự chữ (a đến z, A đến Z) hoặc dấu gạch dưới (_) sau đó là một chuỗi bất kỳ bao gồm các kí tự chữ, số (0 đến 9) và dấu gạch dưới

L4 = {tập tất cả các số nguyên của Pascal}

Mô tả số nguyên: 12, +12, -12 {tập tất cả các số thực của Pascal}

Mô tả số thực: 12.5, +12.5, -12.5, 12E3, +12E3, -12E3, 12E-3, +12E+3, -12E+3, +12E3, -12E3, 12E-312.5, +12.5, -12.5, Có thể có bao nhiêu số 0 đi đầu đều được,

ví dụ: 012, 0012, +012, -012, 012.5, Có thể được viết dưới dạng khoa học như sau: 12E3, 12.5E3, +12.5E3, -12.5E3, 12.5E+3, 12.5E-3, -12.5E-3,

2 Tìm các dfa cho các tập sau trên Σ = {a, b} bao gồm:

L5 = {tất cả các chuỗi có đúng một kí hiệu a}

L6 = {tất cả các chuỗi có ít nhất một kí hiệu a}

L7 = {tất cả các chuỗi có không nhiều hơn ba kí hiệu a}

3 Một “run” trong một chuỗi là một chuỗi con có chiều dài tối thiểu 2 kí tự, dài nhất có thể và bao

gồm toàn các kí tự giống nhau Chẳng hạn, chuỗi abbbaabba chứa một “run” của b có chiều dài 3, một “run” của a có chiều dài 2 và một “run” của b có chiều dài 2 Tìm các nfa và dfa cho mỗi ngôn ngữ sau trên {a, b}

L9 = {w: w không chứa “run” nào có chiều dài nhỏ hơn 3}

L10 = {w: mỗi “run” của a có chiều dài hoặc 2 hoặc 3}

L11 = {w: có tối đa hai “run” của a có chiều dài 3}

4 Tìm các dfa cho các tập trên Σ = {0, 1} được định nghĩa như sau:

L12 = {kí hiệu trái nhất khác với kí hiệu phải nhất.}

L13 = {mỗi chuỗi con bốn kí hiệu có tối đa hai kí hiệu 0 Chẳng hạn, 001110 và 011001 là thuộc ngôn ngữ, còn 10010 thì không.}

L14 = {kí hiệu thứ tư từ bên phải khác với kí hiệu trái nhất.}

5 Xây dựng một dfa mà chấp nhận các chuỗi trên {0, 1} nếu và chỉ nếu giá trị của chuỗi, được diễn dịch như là biểu diễn nhị phân của một số nguyên, là bằng 0 trong modulo của 5 Chẳng hạn,

0101 và 1111, biểu diễn tương ứng các số nguyên 5 và 15, là được chấp nhận

6 Tìm dfa chấp nhận ngôn ngữ sau trên {a, b}:

L15 = {vwv: w ∈{a, b}*, v= 2};

7 Tìm các nfa cho các ngôn ngữ sau:

L1 = {vwv R ∈ {a, b}*: |v| = 2}

L2 = {abab n : n ≥ 0} ∪ {aba n : n ≥ 0} (với điều kiện nfa có không nhiều hơn 5 trạng thái)

L3 = {a n b m : (n+m) mod 3 = 0}

L4 = {w ∈ {a, b}*: n a (w) chẵn, n b (w) lẽ}

L5 = {w ∈ {0, 1}*: giá trị thập phân của w chia hết cho 6}

L6 = {w ∈ {a, b}*: số kí tự a trong chuỗi là một số lẽ}

L7 = {ab, abc}* (với điều kiện nfa chỉ có 3 trạng thái)

L8 = {a n : n ≥ 0} ∪ {b n a: n ≥ 1} (với điều kiện nfa chỉ có 4 trạng thái)

8 Biến đổi các nfa sau, được cho dưới dạng đồ thị và/hoặc dạng bảng truyền, thành các dfa tương đương:

Trang 2

Dfa M1 Dfa M2 Dfa M3 Dfa M4

a b λ a b λ a b λ a b λ

q0 q1 q3 q1 q0 q1 , q3 q3 q3 q0 q1 q2 q1 q0 q0 , q1 q2

q1 q2 q2 , q0 q1 q2 q2 q0 q1 q1, q2 q3 q3 q1 q2 q3 q0

q2 q1 q2 q1 q2 q0, q2 q2 q3 q3

q3 q0, q4 q3 q4 q3 q4 q4 q3 q2, q3 q3 q1 , q2 q0

q4 q3, q4 q4 q4 q4 q3 F = {q0 } F = {q2}

9 Hãy rút gọn các dfa sau (có thể là dfa mở rộng) được cho dưới dạng đồ thị và/hoặc dạng bảng truyền, thành các dfa tương đương

Dfa M1 Dfa M2 Dfa M3 Dfa M4

q5 q4 q6 q5 q5 q5 F = {q3, q4 } F = {q3, q4 }

F = {q1 , q4} F = {q5 }

λ

M6

0

1

0, 1

1

0, λ

M7

a, b

λ

b

λ

q0

q1

q3

q2

q4 b

a

a

M8

a

a a

b

b

b

a

a

a a

b

b

b q0

q2

q3

b

M6

b b

a

b

b

b

b

b

a

a

a

a

a

q0

q2

q3

a

M7

b

a

b

b

a

b b

a

a

b

a a

a b

A

M8

0

1 0,1

0

0

1

0,1

q4

q5 M5

Trang 3

10 Tìm dfa tối giản cho các ngôn ngữ sau:

L1 = {anbm: n ≥ 2, m ≥ 1}

L2 = {anb: n ≥ 0} U {bna: n ≥ 1}}

L3 = {an: n ≥ 0, n ≠ 3}

11 Tìm các BTCQ cho các ngôn ngữ sau:

L1 = {w ∈ {a, b}*: số kí tự a trong chuỗi là một số lẽ}

L2 = {w ∈ {0, 1}*: chuỗi con 00 xuất hiện tối đa một lần}

(Ghi chú : chẳng hạn nếu w có chứa 000 thì xem như chuỗi con 00 xuất hiện đến 2 lần.)

L3 = {w ∈ {0, 1}*: w bắt đầu bằng 0 kết thết bằng 1 và không chứa chuỗi con 00}

12 Tìm biểu thức chính qui cho các nfa sau:

Nfa M1 Nfa M2

F = {q2} q3 q2

F = {q3}

13 Xây dựng các nfa và các dfa cho các BTCQ sau:

r1 = aa* + aba*b*

r2 = ab(a + ab)* (b + aa)

r3 = ab*aa + bba*ab

r4 = a*b(ab + b)*a*

r5 = (ab* + a*b)(a + b*a)* b

r6 = (b + a*)(ba* + ab)*(b*a + ab)

14 Cho VPTT-P sau:

S → aS|bA a) Xây dựng nfa cho VPTT-P trên

A → bB|a b) Tìm BTCQ biểu thị cho ngôn ngữ được sinh ra bởi văn phạm trên

B → aS|b c) Xây dựng VPTT-T tương đương với VPTT-P trên

15 Cho hai ngôn ngữ L1 và L2 có hai dfa tương ứng M1 và M2 sau Tìm dfa cho thương đúng của

L1 /L2

16 Cho hai ngôn ngữ có hai dfa tương ứng sau Tìm dfa giao của hai dfa đã cho

M1 : M2:

17 Sử dụng bổ đề bơm để chứng minh các ngôn ngữ sau là không chính qui:

L1 = {a 2n b l : n ≥ 0, l ≥ n + 2}

L2 = {a n b l c k : n = l+1 hoặc l ≠ k + 2}

18 Áp dụng tính đóng của họ NNCQ đối với các phép toán để chứng minh ngôn ngữ sau đây là không chính qui:

L1 = {a n b l c t : n, l, t ≥ 0, t ≠ n + l}

L2 = {a n b l : n + l là hợp số}

biết rằng các ngôn ngữ L3 = {a n b n : n ≥ 0} và L4 = {a n : n là nguyên tố} là không chính qui

M1:

a

a b

a

a, b

a

b

b

b

p2

b

b

a

a

q1

Trang 4

PHẦN NGÔN NGỮ PHI NGỮ CẢNH

19 Tìm các VPPNC cho các ngôn ngữ sau:

L1 = {a 2n+1 bn+2: n ≥ 0}

L2 = {w ∈ {a, b}*: n a (w) = n b (w) + 1}

L3 = {a n ww R b n+2 : w ∈ {a, b}*}

L4 = {w ∈ {a, b}*: n a (w) > n b (w)}

L5 = {a n b m : 2n ≤ m ≤ 3n}

20 Hãy sử dụng phương pháp phân tích cú pháp vét cạn để phân tích các chuỗi w1, w2 sau có được sinh ra bởi văn phạm sau hay không:

w1 = aababb, w2 = abababb

S → aSb|SS|aA

A → aAa|bAb|a|b

21 Hãy phân tích cú pháp cho các chuỗi w sau trên các văn phạm G tương ứng Trình bày dẫn xuất

trái nhất nếu chuỗi thuộc văn phạm

G1 : S → aAS | bBS | λ (1, 2, 3)

A → aAA | b (4, 5)

B → bBB | a (6, 7)

w1 = aababb, w2 = ababb

G2 : S → aS | bXaS (1, 2)

X → aXbX | bXaX | λ (3, 4, 5)

w1 = aababb, w2 = baabaa

22 Hãy biến đổi các văn phạm sau sang văn phạm-s tương ứng:

G1: S → aSb|aAb G2: S → aSb | aab

A → bAa|ba

Dựa vào đặc điểm của văn phạm-s hãy phân tích chuỗi w = aabbaabb có được sinh ra bởi văn phạm G1 trên hay không

23 Chứng minh văn phạm sau đây là nhập nhằng sau đó hãy xây dựng một văn phạm không nhập nhằng tương đương cho nó:

S → aS|AB

A → aA|b|λ

B → b|bb

24 Hãy cho một ví dụ về việc loại bỏ luật sinh-rỗng có thể sinh ra luật sinh đơn vị, luật sinh-vô dụng loại 1; việc loại bỏ luật sinh-đơn vị có thể sinh ra luật sinh vô dụng loại 2; việc loại bỏ luật sinh vô dụng loại 1 có thể sinh ra luật sinh vô dụng loại 2

25 Hãy loại bỏ đồng thời các luật sinh-rỗng, luật sinh-đơn vị, luật sinh-vô dụng của văn phạm sau:

S → aABC D → b|bS

A → λ E → cEF

B → λ F → d|dF

C → AB|D|aE

26 Hãy biến đổi các văn phạm sau sang các văn phạm có dạng chuẩn Greibach tương đương:

G1 : S → BAbABa G2 : S → SAa

A → aAb A → SbASa

B → bBaAa

27 Sử dụng giải thuật CYK để xác định các chuỗi w1 = abab, w2 = abaa có được sinh ra bởi các văn phạm tương ứng G1, G2 sau đây hay không, nếu có hay đưa ra các dẫn xuất trái nhất cho chúng:

G1 : S → ABBB G2 : S → AB

A → BAa A → BBa

B → AAab B → BAb

28 Hãy xây dựng các npda cho các ngôn ngữ sau và tìm dãy chuyển hình trạng để chấp nhận các chuỗi được cho tương ứng ở bên cạnh

L1 = {a n b m c n+m : n, m ≥ 0} w1 = aabccc

L2 = {a n b n+m c m : n, m ≥ 1} w2 = abbbcc

L3 = {a n b m : 2n ≤ m ≤ 3n} w3 = aabbbbb

Trang 5

L4 = {w: n a (w) = n b (w) + 2} w4 = abaaba

L5 = {w: n a (w) = 2n b (w)} w5 = abbaaa

L6 = {w: 2n b (w) ≤ n a (w) ≤ 3n b (w)} w5 = ababaaa

29 Hãy xây dựng các npda cho các văn phạm có dạng chuẩn Greibach sau:

G1 : S → aSCaS1BaB G2 : S → aABB|aAA

S1 → aS1BaB A → aBB|a

B → b B → bBB|A

C → c Xét chuỗi w1 = aaabbc Hãy chỉ ra dẫn xuất trái nhất cho chuỗi này trong văn phạm G1 đồng thời hãy chỉ ra dãy chuyển hình trạng tương ứng trong npda tương ứng để chấp nhận chuỗi này

30 Hãy xây dựng npda cho các văn phạm sau và tìm dẫn xuất trái nhất cùng dãy chuyển hình trạng

cho các chuỗi w tương ứng:

G1 : S → aAS | bBS | λ (1, 2, 3)

A → aAA | b (4, 5)

B → bBB | a (6, 7)

w1 = abba, w2 = bbaaab

G2 : S → aS | bXaS (1, 2)

X → aXbX | bXaX | λ (3, 4, 5)

w1 = abaab, w2 = baaab

31 Hãy xây dựng các dpda cho các ngôn ngữ sau và tìm các dãy chuyển hình trạng để chấp nhận các chuỗi được cho tương ứng ở bên cạnh

L1 = {a n b 2n : n ≥ 0} w1 = aabbbb

L2 = {w: n a (w) = n b (w)} w2 = abbaab

L3 = {w: n a (w) > n b (w)} w3 = abbaaab

32 Chứng minh văn phạm sau cho ngôn ngữ L = {w: n a (w) = n b (w)} không là văn phạm LL:

S → aSbbSaSSλ

33 Tìm các văn phạm LL cho các ngôn ngữ sau (chỉ ra k bằng bao nhiêu) và dựa vào tính chất của họ

văn phạm này hãy phân tích các chuỗi được cho tương ứng ở bên cạnh có được sinh ra bởi văn phạm hay không

L1 = {w: n a (w) = n b (w)} w1 = abbaab

L2 = {w: n a (w) > n b (w)} w2 = abbaaba

L3 = L(a*ba) ∪ L(abbb*) w3 = abbb

34 Hãy xét xem các ngôn ngữ cho sau đây có PNC hay không Nếu không hãy sử dụng bổ đề bơm cho NNPNC để chứng minh

L1 = {a n b j c k : k = jn} L5 = { a n b j a n b j : n ≥ 0, j ≥ 0}

L2 = {a n b j c k : k > n, k > j} L6 = { a n b j a k b l : n + j ≤ k + l}

L3 = {a n b j c k : n < j, n ≤ k ≤ j} L7 = { a n b j a k b l : n ≤ k, j ≤ l}

L4 = {w: n a (w) < n b (w) < n c (w)} L8 = {a n b n c j : n ≤ j}

35 Hãy xét xem các ngôn ngữ cho sau đây có PNC tuyến tính hay không Nếu không hãy sử dụng bổ

đề bơm cho NNPNC tuyến tính để chứng minh

L1 = {a n b n a m b m : n, m ≥ 0}

L2 = { w: n a (w) ≥ n b (w)}

L3 = {a n b j : j ≤ n ≤ 2j - 1}

L4 = L(G) với G được cho như sau:

E → T|E + T

T → F|T * F

F → I|(E)

I → a|b|c

36 Cho văn phạm G sau Hãy phân tích cú pháp cho các chuỗi w1 = (a+b*c)*a và w2 = (a + b)*+c theo phương pháp Earley

G:

E → T|E + T F → I|(E)

T → F|T * F I → a|b|c

Ngày đăng: 13/10/2012, 09:16

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w