Một ngôn ngữ hình thức L trên bộ chữ cái ∑ là một tập hợp các chuỗi từ các ký hiệu của bộ chữ cái ∑ ∑* : tập hợp tất cả các chuỗi con, kể cả chuỗi rỗng ε, sinh ra từ bộ chữ cái ∑ ∑+ : tậ
Trang 1ĐỀ CƯƠNG AUTOMAT
Câu 1 : Khái niệm về ngôn ngữ,từ(chuỗi,xâu) 1 số phép toán cơ bản trên từ và trên ngôn ngữ.Các hình thức biểu diễn ngôn ngữ?Cho ví dụ minh họa?
Ngôn ngữ : theo từ điển, là một hệ thống thích hợp cho việc biểu thị các ý nghĩ,
các sự kiện, hay các khái niệm, bao gồm tập các ký hiệu, các qui tắc ểđ vận dụng chúng
Một ngôn ngữ (hình thức) L trên bộ chữ cái ∑ là một tập hợp các chuỗi từ các ký
hiệu của bộ chữ cái ∑
∑* : tập hợp tất cả các chuỗi con, kể cả chuỗi rỗng ε, sinh ra từ bộ chữ cái ∑
∑+ : tập hợp tất cả các chuỗi con, ngoại trừ chuỗi rỗng ε, sinh ra từ bộ chữ cái
1 số phép toán cơ bản trên từ:
Chuỗi nối kết : chuỗi ượđ c tạo thành bằng cách viết chuỗi thứ nhất sau đó viết chuỗi thứ 2…… ε là ơđ n vị của phép nối kết
Chuỗi ả đ o ngược : chuỗi ảđ o ngược của W là WR,là chuỗi ượđ c viết theo thứ tự ngược lại
Phép cắt trái : của từ α cho từ β - là phần còn lại của từ α sau khi cắt bỏ
phần ầđ u β trong từ α
Phép cắt phải : của từ α cho từ β - là phần còn lại của từ α sau khi cắt bỏ
phần đuôi β trong từ α
1 số phép toán cơ bản trên ngôn ngữ :
Vì ngôn ngữ là 1 tập hợp nên ta có các phép toán ạđ i số tập hợp trên ngôn ngữ
Phép hợp :
Trang 2Phép phần bù :
Phép nhân ghép : L1L2 = {w1w2 | w1 thuộc L1 và w2 thuộc L2} trên bộ chữ cái
Σ1 Σ2
LLL…LL = Li (kết nối i lần trên cùng ngôn ngữ L) L0 = {ε}
Ngôn ngữ lặp (bao đóng Kleenr hoặc Closure)
Ngôn ngữ lặp cắt (bao đóng dương – positive closure)
Ngôn ngữ ngược
Ngôn ngữ cắt trái của ngôn ngữ X cho ngôn ngữ Y
Ngôn ngữ cắt phải của ngôn ngữ X cho ngôn ngữ Y
Các hình thức biểu diễn ngôn ngữ :
Liệt kê các phần tử (chuỗi) : L={aa,ab,bb}
Mô tả các ặđ c điểm chủ yếu : L={ai | I là số nguyên tố}
Biễu diễn ngôn ngữ 1 cách tổng quát thông qua văn phạm (grammar) và automata
Văn phạm : là cơ chế sinh ra mọi chuỗi của ngôn ngữ
Automata : là 1 máy trừu tượng hay 1 cơ chế cho đoán nhận 1 chuỗi bất kỳ
có thuộc 1 ngôn ngữ L hay không
(các ví dụ xem trong bài giảng)
Câu 2 : Định nghĩa văn phạm,dẫn xuất và ngôn ngữ sinh bởi văn
phạm.Cho ví dụ minh họa
Trang 3 Theo từ điển, văn phạm là một tập các quy tắc về cấu tạo từ và các quy tắc về
cách thức liên kết từ lại thành câu
S ∈ Δ - ký hiệu xuất phát hay tiên ềđ (start variable);
P - tập các luật sinh (production rules) dạng α→β, α, β ∈ (Σ ∪ Δ)*, trong
α chứa ít nhất một ký hiệu không kết thúc (đôi khi, ta gọi chúng là các qui tắc hoặc luật viết lại)
Dẫn xuất :
Nếu A → b là luật sinh trong văn phạm G và γ, 𝞭 là 2 chuỗi bất kỳ, thì khi áp dụng luật sinh A → b vào chuỗi γA𝞭 ta sẽ thu ượ đ c chuỗi γb𝞭
Dẫn xuất trực tiếp: nếu α→β là một luật sinh thì
Dẫn xuất gián tiếp: nếu các chuỗi a1, a2, , am và a1 → a2, a2 →
a3, , am-1 → am thì am có thể ượđ c dẫn xuất gián tiếp từ a1
Trang 4Avram Noam Chomsky ưđ a ra một hệ thống phõn loại cỏc văn phạm dựa vào tớnh chất của cỏc luật sinh.
Văn phạm loại 0 (văn phạm khụng hạn chế- UG – Unrestricted Grammar) : khụng cần thỏa điều kiện ràng buộc nào trờn tập cỏc luật sinh;
Văn phạm loại 1 (văn phạm ngữ cảnh CSG-Context Sensitive Grammar) :
nếu văn phạm G cú cỏc luật sinh dạng α→β và :
,|β|≥|α|
Văn phạm loại 2 (văn phạm phi ngữ cảnh - CFG – Context-Free Grammar) :
cú luật sinh dạng A→α với A là một biến ơđ n và α là chuỗi cỏc ký hiệu thuộc ( )*
● Vớ dụ : G=({a, b}, {S, A, B}, P, S) với P gồm cỏc luật sinh:
Tuyến tớnh phải: A → wB hoặc A → w;
Tuyến tớnh trỏi: A → Bw hoặc A → w;
Với A, B là cỏc biến ơ đ n, w là chuỗi ký hiệu kết thỳc (cú thể là rỗng).
(vớ dụ xem trong bài giảng)
Cõu 4 : Cho văn phạm phi ngữ cảnh G = < Σ, Δ, S, P > hóy chỉ ra rằng xõu w khỏc rỗng nằm trong L(G) khi tồn tại cõy dẫn xuất trong văn phạm G mà cỏc nỳt lỏ của nú tạo nờn xõu w
Cõu 5 :Chứng minh ngụn ngữ sinh ra bởi văn phạm là là đúng với phộp hợp (Tính đóng có nghĩa là nếu 2 văn phạm cùng loại thì ngôn ngữ sinh ra cùng loại và hợp giao và nhân của các ngôn ngữ trên cùng loại)
Trang 5- Ta mô tả các tính chất trên thông qua ví dụ sau: Cho văn phạm G1=(N1,T,S1,P1),
G2=(N2,T,S2,P2) là 2 văn phạm cùng loại trong đó N1={S}, S1}, T1={S}, a, b}, P1={S}, S1
ab, S1aS1b}; N2={S}, S2}, T2={S}, c}, P2={S}, S2 cS2, S2c}
Xây dựng văn phạm G3=(N, T, S, P) sao cho: L(G3)= L(G1)L(G2); L(G3)= L(G1)
L(G );
Trang 6L(G3)= L(G1) L(G2).
1
2 Ta đã biết L(G1)={S}, anbn, n>=1}, L(G2)={S}, cm, m>=1} Ta chứng minh L(G3)=L(G1)L(G2)={S}, anbn,cm, n, m>=1}.Văn phạm G3 đợc xây dựng nh sau:N:={S}, N1N2{S}, S N1N2}; T:={S}, a,b,c} và các luật sinh nh sau:P:={S}, S S1, S
2 Ta xây dựng G3 sao cho L(G3)= L(G1) L(G2)={S}, anbncm}}
N:={S}, S, S1,S2}, T:={S}, a,b,c}, P:={S}, SS1S2, S1 ab, S1aS1b, S2 cS2, S2c}
ở vế phải của quy tắc dẫn xuất
Trang 7Chứng minh Xây dựng G’=(N’,T,S’,P’) nh sau:
- N’:=N{S}, S’}, ở đây S’ là ký hiệu mới cha có trong N và T
P’:=P{S}, S’/SSP, (NT)+}, nghĩa là P’ gồm các quy tắc của G bổ sungthêm các quy tắc dạng S’ nếu trong P có quy tắc S Với quy ớc trên ta thấy
- Không có quy tắc nào mà ký tự xuất phát xuất hiện ở vế phải của dẫn xuất.Giả sử wL(G) khi đó tồn tại dãy dẫn xuât S* w và tồn tại (NT)* sao choS* w Theo cách xây dựng dẫn xuất vì trong G có S nên trong G’ có S’vì vậy dẫn xuất S’* w là dẫn xuất trong G’ vậy nên wL(G) do đó L(G)
L(G’)
Ngợc lại nếu wL(G’) nghĩa là S’*w tồn tại (NT)* S’* w mà S’*
có tơng ứng S2fg trong G vậy nên S*w là dẫn xuất trong G cho nên L(G’)
L(G)
Nhận xột : chúng ta coi các văn phạm loại 1,2,3 không có các ký tự xuất phát nằm
ở vế phải của các dẫn xuất và do eL(G) nên trong luật sinh phải có Se
Cõu 8 : Khỏi niệm văn phạm phi ngữ cảnh?Khỏi niệm về dẫn xuất vầ cõy dẫn xuất?Sự nhập nhằng của văn phạm?
Văn phạm phi ngữ cảnh : cú luật sinh dạng A→α với A là một biến ơđ n và α làchuỗi cỏc ký hiệu thuộc ( )*
Cõy dẫn xuất :
Cây :là tập hợp hữu hạn các nút và các cung trong đó:
Có duy nhất 1 nút gọi là nút gốc
Mỗi một nút trong cây trừ nút gốc đợc nối với một nút khác bằng một cung đivào duy nhất
Mỗi một nút trong cây trừ nút gốc nếu bỏ cung đi vào thì nó trở thành gốc của
Trang 8C©y dÉn xuÊt Cho v¨n ph¹m phi ng÷ c¶nh G=(N,T,S,P) Gi¶ sö wL(G),
w=w1w2…wn , wiT vµ S*w, gi¶ sö r»ng dÉn xuÊt cña w
Trang 9(a+a)*a hay a+(a*a)???????????????????????
Khắc phục sự nhập nhằng trong văn phạm :
Quy ịđ nh rằng các phép cộng và nhân luôn ượđ c thực hiện theo thứ tự
từ trái sang phải (trừ khi gặp ngoặc ơđ n)
Quy ịđ nh rằng khi không có dấu ngoặc ơđ n ngăn cách thì phép nhânluôn ượđ c thực hiện ưu tiên hơn phép cộng
Câu 9 : Cho văn phạm phi ngữ cảnh G=< Σ, Δ, S, P > không chứa xâu
rỗng.Trình bày giải thuật loại bỏ các ký hiệu thừa ,loại bỏ luật sinh 𝞮,luậtsinh ơn vịđ
Các yếu tố thừa :
Các ký hiệu không tham gia vào quá trình dẫn xuất ra chuỗi ký hiệu kếtthúc;
Luật sinh dạng A B (làm kéo dài chuỗi dẫn xuất)
Khái niệm văn phạm rút gọn :
Trang 10vẫn giữ khả năng sản sinh ngôn ngữ đó mà không chứa những yếu tố vô ích khôngsinh ra chuỗi, làm phức tạp hay kéo dài dẫn xuất sinh chuỗi.
Loại bỏ các ký hiệu thừa :
Có thể loại bỏ các biến không dẫn ra chuỗi ký hiệu kết thúc
Giải thuật tìm ký hiệu phụ :
1.Old Δ’ :=⌀ ;
3.while (Old Δ’ ≠ New Δ’)
Trang 11Cho CFG G=< Σ, Δ, S, P > ta có thể tìm ượđ c 1 CFG G=< Σ’, Δ’, S, P’ >tương đương sao cho mỗi X ⋲ (Δ’⋃ Σ’) tồn tại α,β ⋲ (Δ’⋃ Σ’)* ểđ
S *αXβ
Có thể loại các biến không dẫn ra từ S
Thuật toán :
Đặt Δ’:={S};
If(A ⋲ Δ’ và A α1|α2…|αn là các luật sinh trong P)
if(X là 1 ký hiệu phụ trong α1,α2…,αn và X không có trong Δ’)
thêm X vào trong Δ’;
Lặp lại bước trên cho ếđ n khi không biến nào ượđ c thêm nữa
Định lý : Mỗi một ngôn ngữ phi ngữ cảnh (CFL) không rỗng ượđ c sinh ra
từ một văn phạm phi ngữ cảnh (CFG) không có ký hiệu vô ích
Loại bỏ luật sinh ε
Định lý : Cho CFG G(Σ, Δ, S, P) và L là ngôn ngữ sinh ra bởi G Khi đó L–{ε} là ngôn ngữ sinh ra bởi CFG G(Σ’, Δ’, S, P’) không có ký hiệu vô ích
và không có luật sinh ε
Loại bỏ luật sinh dạng A ε
Giải thuật :
B1 : Ω := ⌀;
Trang 12Nếu luật sinh A ε thì them A vào Ω.
Nếu BX1X2………Xn với mọi Xi⋲ Ω thì thêm B vào Ω;
B2 : xây dựng P’ với mỗi AX1X2………Xn trong P ta xây dựng luật sinhA α1,α2…,αn với điều kiện :
Nếu Xi ⋶ Ω thì αi = Xi
Nếu Xi⋲ Ω thì αi = Xi|𝞮
Không phải thì tất cả αi ềđ u bằng 𝞮;
Luật sinh ơđ n vị :
Mỗi CFL không chứa ε ượđ c sinh ra bởi CFG không có ký hiệu vô ích, không
có luật sinh ε hoặc luật sinh ơđ n vị
Loại bỏ ượđ c các luật sinh ơđ n vị
Cho G=(Σ, Δ, S, P), ặđ t L(G) là CFL sinh ra bởi G và không chứa ε.Ta có thể loại
bỏ các ký hiệu thừa và các luật sinh ε trong G
Giải thuật xây dựng P’ không chứa luật sinh ơđ n vị :
for(mỗi biến A ⋲ Δ)
{ tính ΔA ={B|B⋲ Δ và A *B};
for( mỗi biến B⋲ ΔA)
{ for( mỗi luật sinh Bα thuộc P)
{ if(Bα không là luật sinh ơđ n vị)
Trang 13{ thêm luật sinh Aα vào P’ }}}}
Câu 10 : ị đ nh nghĩa luật sinh 𝞮 Cho văn phạm phi ngữ cảnh G=< Σ, Δ, S, P > không chứa xâu,không chứa các ký hiệu thừa.Trình bày giải thuật loại bỏ luật sinh 𝞮
Loại bỏ luật sinh ε
Định lý : Cho CFG G(Σ, Δ, S, P) và L là ngôn ngữ sinh ra bởi G Khi đó L–{ε} là ngôn ngữ sinh ra bởi CFG G(Σ’, Δ’, S, P’) không có ký hiệu vô ích
và không có luật sinh ε
Loại bỏ luật sinh dạng A ε
Giải thuật :
B1 : Ω := ⌀;
Nếu luật sinh A ε thì them A vào Ω
Nếu BX1X2………Xn với mọi Xi⋲ Ω thì thêm B vào Ω;
B2 : xây dựng P’ với mỗi AX1X2………Xn trong P ta xây dựng luật sinhA α1,α2…,αn với điều kiện :
Nếu Xi ⋶ Ω thì αi = Xi
Nếu Xi⋲ Ω thì αi = Xi|𝞮
Không phải thì tất cả αi ềđ u bằng 𝞮;
Trang 14Câu 11 : ị đ nh nghĩa luật sinh 𝞮 Cho văn phạm phi ngữ cảnh G=< Σ, Δ, S, P > không chứa xâu,không chứa các ký hiệu thừa.Trình bày giải thuật loại bỏ luật sinh ơ đ n vị ?
Luật sinh ơđ n vị :
Mỗi CFL không chứa ε ượđ c sinh ra bởi CFG không có ký hiệu vô ích, không
có luật sinh ε hoặc luật sinh ơđ n vị
Loại bỏ ượđ c các luật sinh ơđ n vị
Cho G=(Σ, Δ, S, P), ặđ t L(G) là CFL sinh ra bởi G và không chứa ε.Ta có thể loại
bỏ các ký hiệu thừa và các luật sinh ε trong G
Giải thuật xây dựng P’ không chứa luật sinh ơđ n vị :
for(mỗi biến A ⋲ Δ)
{ tính ΔA ={B|B⋲ Δ và A *B};
for( mỗi biến B⋲ ΔA)
{ for( mỗi luật sinh Bα thuộc P)
{ if(Bα không là luật sinh ơđ n vị)
{ thêm luật sinh Aα vào P’ }}}}
Câu 12 : Trình bày các bước chuẩn hóa văn phạm phi ngữ cảnh về dạng chuẩn Chomsky tương ươ đ ng.
Văn phạm CFG G=(Σ, Δ, S, P) có dạng chuẩn Chomsky nếu:
Trang 15 G không chứa các ký hiệu thừa;
G không chứa các luật sinh ơđ n vị
Tất cả các luật sinh của nó có dạng ABC hoặc Aa (nếu ε không thuộc Lngược lại chỉ cần 1 luật sinh S ε)
Định lý : một ngôn ngữ phi ngữ cảnh bất kỳ không chứa ε ềđ u ượđ c sinh rabằng một văn phạm nào đó mà các luật sinh có dạng A BC hoặc Aa, với
A X1X2…Xi……Xn; aXi
A X1X2…Ca……Xn ; Caa
B3.Thay thế các luật sinh mà vế phải có nhiều hơn 2 ký tự chưa kết thúc
A B1B2 Bm (m>2) A BD 1 D1
1 B2 D2
Dm-2 Bm-1 Bm
Trang 16Câu 13 : Cho ví dụ minh họa chuyển 1 văn phạm phi ngữ cảnh về dạng chuẩn Chomsky tương ươ đ ng.
tìm văn phạm có dạng CNF tương ươđ ng CFG:
Trang 17Câu 14 : Trình bày các bước chuẩn hóa văn phạm phi ngữ cảnh về dạng chuẩn Greibach(không cần ví dụ)
Văn phạm CFG G(Σ, Δ, S, P) có dạng chuẩn Greibach nếu:
G không chứa các ký hiệu thừa;
G không chứa các luật sinh ơđ n vị
Các luật sinh của nó có dạng A → aα (α là chuỗi các biến hoặc ε nếu ε ∉ L,ngược lại thêm vào luật sinh S → ε)
Bổ ề đ 1:
Cho G(Σ, Δ, S, P) 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(Σ, Δ1, S, P1) thu ượđ c từ G bằng cách loại bỏ luật sinh A → α1Bα2
và thêm vào các luật sinh A→ α1β1α2| α1β2α2|…….| α1βrα2 tương ươđ ng G
Áp dụng thay thế các luật sinh trực tiếp
Bổ ề đ 2 :
Đặt G(Σ, Δ, S, P) 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(Σ, Δ ⋃ {B}, S, P1) là CFG ượđ c tạo thànhbằng cách thêm biến mới B và thay các A - luật sinh bằng các luật dạng
A → β; A → βB; (1 ≤ i ≤ s)
Trang 18B → αi; B → αiB; (1≤i≤r)
thì ta có G1 tương ươđ ng G, hay L(G) = L(G1).(loại bỏ VP ệđ quy trái)
Các bước chuyển văn phạm phi ngữ cảnh về dạng chuẩn Greibach
Đặt G là CFG sinh ra CFL không chứa ε
Bước 1: xây dựng G' có dạng GNF tương ươđ ng G
Bước 2: ổđ i tên các biến trong G' thành A1, A2, , Am (m ≥1 ) với A1 là ký hiệu bắtầ
đ u Đặt V = {A1, A2, , Am}
Bước 3: thay thế luật sinh sao cho nếu Ai → Ajγ thì j > i
Nếu j<i : áp dụng bổ ềđ 1 Nếu i=j: áp dụng bổ ềđ 2
Trong P chỉ chứa các luật sinh dạng : Ai → Ajγ ( j > i), Ai → aγ , Bk →
γ (γ thuộc (V⋃ { B1,B2, ,Bi-1 }))*
Bước 4 : thay thế các Ai – luật sinh về đúng dạng(áp dụng bổ ềđ 1)
Bước 5 : thay thế các Bk – luật sinh về đúng dạng (áp dụng bổ ềđ 1)
Câu 15.Trình bày về Automat hữu hạn.Phân biệt các dạng Automat hữu hạn? Ngôn ngữ đoán nhận bởi Automat hữu hạn.VD minh họa
Automata là một mô hình toán học hay máy trừu tượng có cơ cấu và hoạtộ
đ ng ơđ n giản nhưng có khả năng đoán nhận ngôn ngữ
Một finite automata (FA) là một mô hình tính toán hữu hạn: mọi cái liên
quan ếđ n nó ềđ u có kích thước hữu hạn cố ịđ nh và không thể mở rộng trongsuốt quá trình tính toán;
Trang 19 Một FA làm việc theo thời gian rời rạc (time steps);
Nói chung, thông tin ra sản sinh bởi một FA phụ thuộc vào cả thông tin vào hiện tại lẫn các thông tin vào trước đó Nếu sử dụng bộ nhớ (memory), giả
sử rằng nó có ít nhất một bộ nhớ vô hạn về tiềm năng;
Sự phân biệt giữa các loại automata khác nhau chủ yếu dựa trên việc thôngtin có thể ượđ c ưđ a vào memory hay không;
Các dạng Automat hữu hạn : Đơn ịđ nh và đa ịđ nh
Ngôn ngữ đoán nhận bởi AutoMat hữu hạn :
Đoán nhận ngôn ngữ: đoán nhận các chuỗi của nó
Hoạt ộđ ng của automata bắt ầđ u từ một trạng thái ặđ c biệt, trang thái ầđ u
tiên (start state);
Giả sử rằng tại mỗi thời điểm (step, time step), automata đang ở một trạng thái nào đó (current state), ầđ u vào của automata đón nhận một ký tự củachuỗi cần xử lý, dưới tác ộđ ng của ký tự đó automata chuyển sang một trạng
thái kế tiếp (next state);
Trang 20 Chuỗi ượđ c đoỏn nhận nếu trạng thỏi cuối cựng của automata rơi vào một
trong cỏc trạng thỏi kết thỳc (finish states).
Vớ dụ minh họa (xem trong bài giảng)
Cõu 16 : Khỏi niệm về Automat Mealy và Automat Moore.Phõn biệt chỳng với Automat hữu hạn?Vớ dụ ?
Automat Mealy
Bộ M=( X,Y, S,,) trong đó
X -Tập hữu hạn các ký hiệu vào
Y - Tập hữu hạn các ký hiệu ra
S - Tập hữu hạn gọi là tập các trạng thái
- ánh xạ từ XxSS gọi là hàm chuyển trạng thái
- ánh xạ từ XxSY gọi là hàm đa thông tin ra
Đợc gọi là Automat Mealy
Với định nghĩa trên ta hiểu Automat Mealy hoạt động theo cơ chế tín hiệu phát raphụ thuộc vào tín hiệu vào và trạng thái nhận tín hiệu
Automat Moore
Bộ M=( X,Y, S,,) trong đó
X -Tập hữu hạn các ký hiệu vào
Y - Tập hữu hạn các ký hiệu ra
S - Tập hữu hạn gọi là tập các trạng thái
- ánh xạ từ XxSS gọi là hàm chuyển trạng thái
- ánh xạ từ SY gọi là hàm đa thông tin ra
Đợc gọi là Automat Moore