1 Văn phạm chính quy & các tính chất Nội dung: • Văn phạm chính quy (RG: Regular Grammar) • Sự tương đương giữa RG và FA • Bổ đề bơm cho tập hợp chính quy • Tính chất đóng của tập hợp chính quy Chương 4: 2 Văn phạm chính quy Văn phạm chính quy: là văn phạm mà tất cả các luật sinh của nó đều có dạng tuyến tính trái (hoặc tuyến tính phải) • Tuyến tính trái: dạng A → Bw hoặc A → w • Tuyến tính phải: dạng A → wB hoặc A → w Văn phạm chính quy, ngôn ngữ chính quy, biểu thức chính quy và tập hợp chính quy: • Văn phạm chính quy sinh ra ngôn ngữ chính quy • Ngôn ngữ chính quy có thể được ký hiệu đơn giản bằng một biểu thức chính quy • Tập hợp các chuỗi được ký hiệu bởi một biểu thức chính quy được gọi là tập hợp chính quy 3 Sự tương đương giữa RG & FA Định lý 4.1: Nếu L được sinh ra từ một văn phạm chính quy thì L là tập hợp chính quy Ý nghĩa: một văn phạm chính quy có thể được biểu diễn bởi một Automata hữu hạn. Ví dụ: xét văn phạm tuyến tính phải: S → 0A ; A → 10A | ε • Nếu A là một biến: δ([A], ε) = {α | A → α là một luật sinh} • Nếu a là một ký hiệu kết thúc: δ([aα], a) = { [α] } • Trạng thái bắt đầu [S], trạng thái kết thúc [ε] [0A] [A] [ε] 0 Start ε [10A] [S] ε 1 ε 4 Sự tương đương giữa RG & FA Ví dụ: xét văn phạm tuyến tính trái: S → S10 | 0 • Đảo ngược văn phạm tuyến tính trái → tuyến tính phải S → 01S | 0 [S] [01S] [ε] Start ε [0] [1S] ε 1 0 • Đảo ngược automata 0 [0] ε Start ε [01S] [ε] 0 1 0 [S] [1S] 5 Sự tương đương giữa RG & FA Định lý 4.2: Nếu L là một tập hợp chính quy thì L được sinh ra từ một văn phạm tuyến tính trái hoặc một văn phạm tuyến tính phải nào đó Ý nghĩa: một Automata hữu hạn có thể được biểu diễn bởi một văn phạm chính quy. Ví dụ: xét DFA cho 0(10)* A CB 0 1 0, 1 Start D 0 1 1 0 6 Sự tương đương giữa RG & FA Tuyến tính phải: xét hàm chuyển trạng thái δ(p, a) = q • Ta có luật sinh: p → aq • Ngoài ra, nếu q là trạng thái kết thúc, ta có thêm luật sinh: p → a • Nếu q 0 là trạng thái kết thúc, thêm vào: S → q 0 | ε A → 0B | 1D | 0 B → 0D | 1C C → 0B | 1D | 0 D → 0D | 1D A → 0B | 0 B → 1C C → 0B | 0 Do biến D không có ích: Tuyến tính trái: • Bắt đầu với một NFA cho L R • Đảo ngược chuỗi vế phải cho tất cả mọi luật sinh của văn phạm vừa thu được 7 Bổ đề bơm cho tập hợp chính quy Bổ đề 4.1: nếu L là tập hợp chính quy thì có tồn tại hằng số n sao cho nếu z là một từ bất kỳ thuộc L và |z| ≥ n thì ta có thể viết z=uvw với |uv| ≤ n, |v| ≥ 1 và ∀i ≥ 0 ta có uv i w ∈ L Chứng minh: • L là ngôn ngữ chính quy → tồn tại DFA M=(Q, Σ, δ, q 0 , F) có n trạng thái chấp nhận L. • Xét chuỗi nhập z = a 1 a 2 …a m , m ≥ n • Với mỗi i=1,2,…,m, ta đặt δ(q 0 , a 1 a 2 …a i ) = q i • Phải có ít nhất 2 trạng thái trùng nhau • z ∈ L → q m ∈ F → a 1 …a j a k+1 …a m ∈ L(M) → a 1 …a j (a j+1 …a k ) i a k+1 …a m ∈ L(M), với i ≥ 0 q 0 a 1 . . . a j q m q j =q k a k+1 . . a m a j+1 . . a k u v w q m 8 Bổ đề bơm cho tập hợp chính quy Ứng dụng của bổ đề bơm: dùng để chứng tỏ một tập hợp không là tập hợp chính quy Ví dụ: chứng minh tập hợp L = { | i là số nguyên, i ≥ 1} không làp tập hợp chính quy Chứng minh: • Giả sử L là tập chính quy → tồn tại DFA chấp nhận L. Gọi n là số trạng thái của DFA. • Xét chuỗi z = • Theo bổ đề bơm: z=uvw với 1≤ lvl ≤ n và uv i w ∈ L • Xét i = 2, ta phải có uv 2 w ∈ L • Mặt khác: n 2 = lzl = luvwl < luvvwl ≤ n 2 + n < (n+1) 2 • Do n 2 và (n+1) 2 là 2 số chính phương liên tiếp nên luv 2 wl không thể là một số chính phương, hay uv 2 w không thuộc L (trái giả thiết). 0 n 2 0 i 2 9 Tính chất đóng của tập hợp chính quy Một phép toán là đóng đối với tập chính quy khi áp dụng chúng vào tập hợp chính quy thì vẫn giữ được các tính chất của tập chính quy. Định lý 4.3: tập hợp chính quy đóng với các phép toán: hợp, nối kết và bao đóng Kleen. Định lý 4.4: tập hợp chính quy đóng với phép lấy phần bù. Định lý 4.5: tập hợp chính quy đóng với phép giao . chính quy đóng với các phép toán: hợp, nối kết và bao đóng Kleen. Định lý 4. 4: tập hợp chính quy đóng với phép lấy phần bù. Định lý 4. 5: tập hợp chính quy đóng. phải cho tất cả mọi luật sinh của văn phạm vừa thu được 7 Bổ đề bơm cho tập hợp chính quy Bổ đề 4. 1: nếu L là tập hợp chính quy thì có tồn tại hằng số n