Dạng chuẩn Greibach GNF (Grei Normal Form)

Một phần của tài liệu công cụ hỗ trợ học tập tin học lý thuyết trên web (Trang 70 - 72)

VI. VĂN PHẠM PHI NGỮ CẢNH (CFG: Context Free Grammar)

6.7.2 Dạng chuẩn Greibach GNF (Grei Normal Form)

Ta gọi luật sinh với các biến A ở bên trái A – luật sinh.

Bổ đề 3:(Dùng thay thế các luật sinh trực tiếp)

Cho G(V, T, P, S) là một CFG, đặt A  α1Bα2 là luật sinh trong P và B  β1| β2 | …| βr là các B – luật sinh; văn phạm G1(V, T, P1, S) thu đƣợc từ G bằng cách loại bỏ luật sinh A  α1Bα2 và thêm vào luật sinh A  α1β1α2 | α1β2α2 | …| α1βrα2 thì L(G) = L(G1).

Tin học Lý Thuyết trên WEB‖

Bổ đề 4:(Dùng loại bỏ luật sinh dạng đệ quy trái trong văn phạm)

Đặt G (V, T, P, S) là CFG; A  Aα1 | Aα2 | …| Aαr là tập các A – luật sinh có A là ký hiệu trái nhất của vế phải (luật sinh đệ quy trái). Đặt A  β1 | β2 | …| βs là các A – luật sinh còn lại ; G1(V  {B}, T, P1, S) là CFG đƣợc tạo thành bằng cách thêm biến mới B vào V và thay các A – luật sinh bằng các luật sinh dạng:

1) A  βi Với 1 <= i <=s A  βiB 2) A  αi Với 1 <= i <=r A  αiB

Định lý 6.5:(Dạng chuẩn Greibach hay GNF)

Mỗi CFL bất kỳ không chứa ε đƣợc sinh ra bởi một CFG mà mỗi luật sinh có dạng A  aα với A là biến, a là một ký hiệu kết thúc và α là một chuỗi các biến (có thể rỗng).

Ví dụ 6.11: Tìm văn phạm có dạng GNF tƣơng đƣơng văn phạm G sau : A1 → A2A1 | A2A3

A2 → A3A1 | a A3 → A2A2 | b

Bƣớc 1 : G thỏa dạng chuẩn CNF sinh ra CFL không chứa ε.

Bƣớc 2 : Ta có V = {A1, A2, ..., A3}

Bƣớc 3 : Thay thế các luật sinh sao cho nếu Ai → Aj γ là một luật sinh thì j > i.

Ta thấy trong tập luật sinh, các luật sinh cho A1 và A2 đã thỏa điều kiện j > i. Chỉ có luật sinh A3 → A2A2 cần sửa đổi. Áp dụng bổ đề 3 để thay thế luật sinh này, ta có:

A3 → A3A1A2 | aA2

Sau đó, dùng bổ đề 4 để loại bỏ đệ quy trái, ta đƣợc tập luật sinh mới có dạng nhƣ sau :

A1 → A2A1 | A2A3 A2 → A3A1 | a

A3 → aA2 | b | aA2B | bB B → A1A2 | A1A2 B

Bƣớc 4 : Thay thế các Ai -luật sinh về đúng dạng.

Ở bƣớc này, ta có thể thấy tất cả các A3 - luật sinh đã có dạng chuẩn. Tiếp tục, áp dụng bổ đề 3 để thay thế các A3 - luật sinh vào A2, A1, thu đƣợc tập luật sinh mới nhƣ sau:

A1 → aA2A1A1 | bA1A1 | aA2BA1A1 | bBA1A1 | aA1| aA2A1A3 | bA1A3 | aA2BA1A3 | bBA1A3 | aA3

A2 → aA2A1 | bA1 | aA2BA1| bBA1| a

A3 → aA2 | b | aA2B | bB

B → A1A2 | A1A2 B

Bƣớc 5 : Thay thế các Bk - luật sinh về đúng dạng.

B → aA2A1A1A2 | bA1A1A2 | aA2BA1A1A2 | bBA1A1A2 | aA1A2 | aA2A1A3A2 | bA1A3A2 | aA2BA1A3A2 | bBA1A3A2 | aA3A2

| aA2A1A1A2B | bA1A1A2B | aA2BA1A1A2B | bBA1A1A2B | aA1A2 B | aA2A1A3A2B | bA1A3A2B | aA2BA1A3A2B | bBA1A3A2B | aA3A2B Cuối cùng, ta thu đƣợc văn phạm có dạng GNF với 39 luật sinh.

Một phần của tài liệu công cụ hỗ trợ học tập tin học lý thuyết trên web (Trang 70 - 72)

Tải bản đầy đủ (PDF)

(106 trang)