Chương 2NGÔ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.. Ngôn ngữ chính quy • Các phép toán trên tập các ngôn ngữ... 2.Biểu thức chính quy• Trên bả
Trang 1Chươ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
Trang 21 Ngôn ngữ chính quy
• Các phép toán trên tập các ngôn ngữ Giả sử L1, L2 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à
• L1∪ L2= {w | w∈ L1, hoặc w∈ L2}
• Phép ghép Ghép hai ngôn ngữ này là
L1.L2= {αβ | α ∈ L1, β∈ L2}
• 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*:
•
=
∪
∪
Trang 31.Ngôn ngữ chính quy.
• Giả sử V= {a1,a2, ,an }, ngôn ngữ φ và ngôn ngữ {ai} 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.
Trang 42.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
Trang 53 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:
• LVPCQ = LVPCQSR \ {λ}
• Đị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
Trang 64.Một số ví dụ.
BTCQ (suy rộng) VPCQ (suy rộng)
NNCQ (suy rộng)
Sinh ra Biểu diễn
Trang 74.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*={λ}∪A1∪A2∪…={λ} ∪{0}∪{0}{0} ∪ ={λ,0,02, 03,…}
B*={λ}∪B1∪B2∪B3∪…={λ} ∪{0,1}∪{0,1}{0,1} ∪ …
= Σ* = {λ, 0, 1, 00, 01, 10,11, 000,001,…}
C*={λ}∪C1∪C2∪…={λ,11, 1111, 111111,…
= {11 }*= {λ,12n }
Trang 84.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 {10n , 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 }* };
Trang 94.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={00n1 | n≥0 }
b) (0∪1)(0∪1)(0∪1)*0000* có NNCQ
L= {00w0n, 01w0n, 10w0n, 11w0n | n≥3 }
c) 0*∪111*(00)* có NNCQ L= {0n, 111m02k | 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
Trang 104.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, λ, 101n | 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
Trang 114.Một số ví dụ.
• VPCQ sinh ra NNCQ :
• P={I→aA1, A1→bA2, A2→bA3,A3→ aA3, A3→ b,
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
L(G)={00(111)n00, 1(00)m1, 01k, 11, λ |n,m,k≥0}
Trang 124.Một số ví dụ.
• b) VPCQ suy rộng sinh ra NNCQ s.rộng trên là G={T,N,S,P}
• Với T= {0,1, λ}, N= {S, A1, A2, A3, A4, A5, B1, B2, D, E } trong đó:
• P={S→0A1, A1→0A2, A2→1A3, A3→1A4, A4→1A2,A2→0A5,
A5→0, S→1B1, B1 →0B2 , B2→0B1, B1→1,
S→0D, D→1, S→1E, E→1, S→λ }
• Kiểm ra các xâu 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
Trang 134.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ữ
L={λ, 0n1w , 1m0w, 1w | 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
Trang 144.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)*
Trang 154.Một số ví dụ.
• Ví dụ 1
Trang 164.Một số ví dụ.
• Ví dụ 1