Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
104,11 KB
Nội dung
1 Chương 2 NGÔN NGỮ CHÍNH QUY, BIỂU THỨC CHÍNH QUY • I.Ngôn ngữ Chính quy & Biểu thức chính quy. • II. Văn phạm chính quy suy rộng • III. Quan hệ giữa NNCQ VÀ NNCQ suy rộng 2 1. Ngôn ngữ chính quy • Các phép toán trên tập các ngôn ngữ. Giả sử L 1 , L 2 là hai ngôn ngữ trên từ điển V, khi đó định nghĩa: • Phép tuyển. Tuyển của hai ngôn ngữ này là • L 1 ∪ L 2 = {w | w∈ L 1 , hoặc w∈ L 2 } • Phép ghép. Ghép hai ngôn ngữ này là L 1 .L 2 = {αβ | α ∈ L 1 , β∈ L 2 } • Phép lặp (Phép đóng Kleene). Với ngôn ngữ L trên V định nghĩa phép lặp của L là ngôn ngữ L*: • { } λ == =∪∪= − ∞ = 01 0 3210 ;. , * LLLE LLLLLL nn n n 1.Ngôn ngữ chính quy. • Giả sử V= {a 1 ,a 2 , ,a n }, ngôn ngữ φ và ngôn ngữ {a i } gọi là các ngôn ngữ sơ cấp trên V. • Định nghĩa ngôn ngữ chính quy. • a) Các ngôn ngữ sơ cấp trên V gọi là NNCQ trên V ; • b) Nếu E và F là hai NNCQ trên V thì E ∪ F , E.F và E * cũng là các ngôn ngữ chính quy trên V; • c) Không có NNCQ nào khác trên V ngoài các NNCQ được định nghĩa trong các bước a) và b) ở trên. • Để diễn đạt NNCQ người ta dùng khái niệm BTCQ. 3 2.Biểu thức chính quy • Trên bảng V ta định nghĩa đệ quy Biểu thức chính quy như sau: a) φ là BTCQ, nó biểu diễn ngôn ngữ rỗng. b ) λ là một BTCQ, nó biểu diễn ngôn ngữ {λ} c) Nếu a∈V thì a là một BTCQ nó biểu diễn ngôn ngữ {a}; d) Giả sử r và s là 2 BTCQ trên V biểu diễn 2 ngôn ngữ chính quy R và S tương ứng khi đó: • (r) ∪ (s) là BTCQ biểu diễn ngôn ngữ R ∪ S • (r).(s) là BTCQ biểu diễn ngôn ngữ R.S • (r)* là BTCQ biểu diễn ngôn ngữ R* Định lý 1. Một ngôn ngữ trên V là chính quy khi và chỉ khi nó biểu diễn được bằng một BTCQ. 4 3. Văn phạm & ngôn ngữ chính quy suy rộng Định nghĩa. a.Văn phạm G={T,N,S,P} gọi là Văn phạm chính quy suy rộng nếu và chỉ nếu các sản xuất dạng A→ aB, A →a, A → λ, ở đây A, B∈N còn a∈T, λ- xâu rỗng . b.Ngôn ngữ do VPCQ suy rộng sinh ra gọi là ngôn ngữ chính quy suy rộng. Dễ thấy: • L VPCQ = L VPCQSR \ {λ}. • Định lý 2 . Ngôn ngữ L⊆L* là NNCQ khi và chỉ khi có VPCQ suy rộng G={T,N,S,P} sao cho L(G)=L. 5 4.Một số ví dụ. 6 BTCQ (suy rộng) VPCQ (suy rộng) NNCQ (suy rộng) Sinh raBiểu diễn 4.Một số ví dụ. • Ví dụ 1.Cho A= {0, 11 } và B= {1, 10,110 } với Σ={0,1}. Tìm A∪B, B.A. • Bài giải. A ∪B={0,11}∪{1,10,110} ={0,11,1,10,110} A.B={01,010,0110, 111,1110,11110} • Ví dụ 2. Cho A={0}, B={0,1}, C={11}. Tìm A*, B* và C*. • Bài giải. A*={λ}∪A 1 ∪A 2 ∪…={λ} ∪{0}∪{0}{0} ∪ ={λ,0,0 2 , 0 3 ,…} B*={λ}∪B 1 ∪B 2 ∪B 3 ∪…={λ} ∪{0,1}∪{0,1}{0,1} ∪ … = Σ* = {λ, 0, 1, 00, 01, 10,11, 000,001,…} C*={λ}∪C 1 ∪C 2 ∪…={λ,11, 1111, 111111,… = {11 }*= {λ,1 2n } 7 4.Một số ví dụ. • Ví dụ 3. Cho các biểu thức chính quy trên Σ={0,1} sau: • 10*, (10)*, 0 ∪01, 0(0∪1)* và 00(0∪1)*11. • Hãy tìm NNCQ trên Σ được biểu diễn bởi các BTCQ trên. • Bài giải. • 10* biểu diễn NNCQ {10 n , n≥0} (10)* biểu diễn NNCQ {(10) n , n≥0} 0 ∪01 biểu diễn NNCQ {0, 01} 0(0∪1)* biểu diễn NNCQ {0w | w ∈ {0,1 }* }; 00(0∪1)*11 biểu diễn NNCQ {00w11 | w ∈ {0,1 }* }; 8 4.Một số ví dụ. Ví dụ 4. Tìm các NNCQ có các BTCQ quy trên Σ={0,1} sau đây: • a) 00*1 b)(0∪1)(0,1)(0,1)*0000* • c) 0*∪111*(00)* d) (1∪10)* Bài giải. a) 00*1 có NNCQ L={00 n 1 | n≥0 } b) (0∪1)(0∪1)(0∪1)*0000* có NNCQ L= {00w0 n , 01w0 n , 10w0 n , 11w0 n | n≥3 } c) 0*∪111*(00)* có NNCQ L= {0 n , 111 m 0 2k | n,m,k≥0 } d) (1∪10)* có NNCQ L= {λ }∪ {1, 10 }∪{1, 10 }{1,10 }∪ … = {λ, 1, 10, 11,101, 110, 1010, | n≥0 } gồm xâu rỗng và các xâu có số 1 đứng đầu và không có hai số 0 liền nhau 9 4.Một số ví dụ. • Ví dụ 5. Cho VPCQ suy rộng G=<Σ,∆,I,P> với P={I→1A, I→λ,I→0, A→0B, B→1B, B→1}, Tìm : a) L(G)=? b) Tìm BTCQ trên Σ, Bài giải. a) L(G)={0, λ, 101 n | n≥1} b) 0∪ λ ∪ 1011* Ví dụ 6. Cho BTCQ abba*b ∪ abaa*b ∪ abbb. Xây dựng VPCQ sinh ra NNCQ suy rộng được biểu diễn bởi BTCQ trên. Bài giải. NNCQ ứng với BTCQ trên: L={abba n b, abaa m b, abbb| n≥0} 10 [...]... dẫn xuất đầy đủ của các xâu trong L Ví dụ 8 Cho ngôn ngữ L={λ, 1w1 , 0 | w∈ {0,1 }*} Xây dựng VPCQ suy rộng G={T,N,S,P} sao cho L(G)=L và chỉ ra BTCQ biểu diễn L 12 4.Một số ví dụ Bài giải • • Σ={0,1}, ∆={S, A} P={S→ λ, S→1A, A→0A, A→1A, A→ λ, S→0} D(λ)=D(S,λ), D(1w1)=D(S,1A, 1wA, 1w1A, 1w1) D(0)=D(S, 0) • BTCQ của L là λ ∪1(0∪1)*1∪0 Ví dụ 9 Cho ngôn ngữ n m L={λ, 0 1w , 1 0w, 1w | n,m ≥1, w∈ {0,1... n,m ≥1, w∈ {0,1 }*} Xây dựng VPCQ suy rộng G={T,N,S,P} sao cho L(G)=L và chỉ ra BTCQ biểu diễn L 13 4.Một số ví dụ Bài giải • • Σ={0,1}, ∆={S, A,B,C,D,E} P={S→ λ, S→0A, A→0A, A→1B, B→0B, B→1B, B→ λ, S→1C, C→1C, C →0D , D→0D, D→1D, D→ λ, S→1E, E→0E, E→1E, E→ λ} Có thể CM G sinh ra L bằng cách tìm các dẫn xuất đầy đủ BTCQ biểu diễn L(G)=L là: λ ∪ 00*1(0∪1)* ∪ 11*0(0∪1)*∪1(0∪1)* 14 4.Một số ví dụ • Ví dụ... I→aB1, B1→bB2, B2→aB3, B3→aB3, B3→b, I→aC1, C1→bC2, C2 →bC3, C3→ b Các xâu trong NNCQ đều có dẫn xuất đầy đủ trong G Ví dụ 7 Cho BTCQ 00(111)*00 ∪ 1(00)*1 ∪ 01* ∪ 11 ∪ λ a) Hãy tìm NNCQ suy rộng được biểu diễn bởi BTCQ trên b) Xây dựng VPCQ suy rộng sinh ra NNCQ suy rộng trên Bài giải a) NNCQ suy rộng n m k L(G)={00(111) 00, 1(00) 1, 01 , 11, λ |n,m,k≥0} 11 4.Một số ví dụ • b) VPCQ suy rộng sinh ra . 2 NGÔN NGỮ CHÍNH QUY, BIỂU THỨC CHÍNH QUY • I .Ngôn ngữ Chính quy & Biểu thức chính quy. • II. Văn phạm chính quy suy rộng • III. Quan hệ giữa NNCQ VÀ NNCQ suy rộng 2 1. Ngôn ngữ chính quy. * LLLE LLLLLL nn n n 1 .Ngôn ngữ chính quy. • Giả sử V= {a 1 ,a 2 , ,a n }, ngôn ngữ φ và ngôn ngữ {a i } gọi là các ngôn ngữ sơ cấp trên V. • Định nghĩa ngôn ngữ chính quy. • a) Các ngôn ngữ sơ cấp trên. BTCQ. 3 2 .Biểu thức chính quy • Trên bảng V ta định nghĩa đệ quy Biểu thức chính quy như sau: a) φ là BTCQ, nó biểu diễn ngôn ngữ rỗng. b ) λ là một BTCQ, nó biểu diễn ngôn ngữ {λ} c) Nếu a∈V