Như vậy, các quy tắc trong văn phạm phi ngữ cảnh có vế trái chỉ chứamột ký hiệu phụ còn vế phải là tùy ý, và được gọi là quy tắc phi ngữ... Cây suy dẫn đầy đủ trong văn phạm G là một đồ
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS Kiều Văn Hưng
Hà Nội – Năm 2016
Trang 3Em xin được bày tỏ lòng biết ơn chân thành tới TS Kiều Văn Hưng,
người thầy đã truyền thụ kiến thức, tận tình giúp đỡ, hướng dẫn em trongsuốt quá trình học tập, nghiên cứu và hoàn thành khóa luận này
Em xin được gửi lời cảm ơn tới các thầy cô giáo trường Đại học Sưphạm Hà Nội 2, các thầy cô giáo khoa Toán đã giúp đỡ em trong quá trìnhhọc tập tại trường và tạo điều kiện cho em hoàn thành đề tài khóa luậntốt nghiệp Trong quá trình nghiên cứu, không tránh khỏi những thiếu sót
và hạn chế Em kính mong nhận được sự đóng góp ý kiến của các thầygiáo, cô giáo và toàn thể bạn đọc để khóa luận được hoàn thiện hơn
Hà Nội, ngày tháng 05 năm 2016
Sinh viên
Phạm Thị Thu Hà
Trang 4Em xin cam đoan dưới sự hướng dẫn của thầy giáo Kiều Văn Hưng khóa
luận của em được hoàn thành không trùng với bất kì đề tài nào khác
Em cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện khóaluận này đã được cảm ơn và các thông tin thu trích dẫn trong khóa luận
đã được chỉ rõ nguồn gốc
Hà Nội, tháng 5 năm 2016
Sinh viên
Phạm Thị Thu Hà
Trang 5Lời mở đầu ii
1.1 Văn phạm phi ngữ cảnh 1
1.1.1 Định nghĩa 1
1.1.2 Ngôn ngữ sinh bởi văn phạm phi ngữ cảnh 2
1.1.3 Cây suy dẫn đầy đủ trong văn phạm phi ngữ cảnh 3 1.1.4 Quan hệ giữa dẫn xuất và cây suy dẫn 3
1.1.5 Văn phạm phi ngữ cảnh đa nghĩa 5
1.1.6 Rút gọn các văn phạm phi ngữ cảnh 7
1.2 Chuẩn hóa văn phạm phi ngữ cảnh 12
1.2.1 Dạng chuẩn Chomsky 13
1.2.2 Dạng chuẩn Greibach 16
1.3 Bổ đề Bơm cho ngôn ngữ phi cảnh 20
1.4 Bài tập 24
2 Otomat đẩy xuống 32 2.1 Mô tả otomat đẩy xuống 33
Trang 62.2.1 Định nghĩa 352.2.2 Hàm chuyển 362.2.3 Hình trạng 372.2.4 Ngôn ngữ đoán nhận bởi otomat đẩy xuống không
đơn định 382.2.5 Otomat đẩy xuống không đơn định và ngôn ngữ
phi ngữ cảnh 402.3 Otomat đẩy xuống đơn định và ngôn ngữ phi ngữ cảnh
đơn định 442.4 Bài tập 44
Trang 7Những năm gần đây, con người đã đạt được nhiều thành tựu khoa họcrực rỡ, một trong những thành tựu đó là sự bùng nổ của ngành khoa họcmáy tính Sự phát triển kì diệu của máy tính gắn liền với sự phát triểntoán học hiện đại, đó là Toán rời rạc Toán học rời rạc nghiên cứu cáccấu trúc có tính chất rời rạc không liên tục Toán rời rạc bao gồm cáclĩnh vực như quan hệ, lý thuyết đồ thị, ngôn ngữ hình thức và otomat
Lý thuyết ngôn ngữ hình thức là lý thuyết nền tảng cho việc thấuhiểu khái niệm về ngôn ngữ nói chung (cả ngôn ngữ lập trình lẫn ngônngữ tự nhiên), và các vấn đề cơ bản về ngôn ngữ như cách xây dựng vănphạm sinh ra ngôn ngữ (xây dựng văn phạm cho ngôn ngữ lập trình, choquá trình phân tích cú pháp), dịch từ ngôn ngữ lập trình cấp cao sangngôn ngữ máy Lý thuyết otomat là lý thuyết cơ bản cho việc nghiêncứu các mô hình tự động để làm tiền đề cho sự phát triển đến dạng máytính số như hiện nay
Ngôn ngữ phi ngữ cảnh là chủ đề quan trọng nhất của lý thuyết ngônngữ hình thức, vì nó áp dụng cho ngôn ngữ lập trình Mục đích của khóaluận này nhằm tìm hiểu rõ hơn về ngôn ngữ phi ngữ cảnh cùng với cơchế để sinh lớp ngôn ngữ này, đó là các văn phạm phi ngữ cảnh và cácotomat có bộ nhớ đẩy xuống
Khóa luận được chia thành hai chương:
Chương 1 trình bày về văn phạm phi ngữ cảnh và ngôn ngữ phi ngữcảnh
Chương 2 trình bày về khái niệm otomat đẩy xuống và sự liên kếtgiữa otomat đẩy xuống và ngôn ngữ phi ngữ cảnh
Trang 8Tác giả khóa luận
Phạm Thị Thu Hà
Trang 10+ Σ là một bảng chữ cái, gọi là bảng chữ cái cơ bản (hay bảng chữ cáikết thúc), mỗi phần tử của nó được gọi là một ký hiệu kết thúc hay kýhiệu cơ bản.
+ ∆ là một bảng chữ cái, ∆∩ Σ = ∅, gọi là bảng ký hiệu phụ (hay
bảng chữ cái không kết thúc), mỗi phần tử của nó được gọi là một kýhiệu không kết thúc hay ký hiệu phụ
+ S ∈ ∆ được gọi là ký hiệu xuất phát hay tiên đề.
+ P là tập hợp các quy tắc sinh có dạng A → ω, trong đó A ∈ ∆,
ω ∈(Σ ∪ ∆).
Như vậy, các quy tắc trong văn phạm phi ngữ cảnh có vế trái chỉ chứamột ký hiệu phụ còn vế phải là tùy ý, và được gọi là quy tắc phi ngữ
Trang 11Ví dụ 1.1 Cho văn phạm G1 = <{a,b}, {S, A, B}, S, P1>, trong đó:
1.1.2 Ngôn ngữ sinh bởi văn phạm phi ngữ cảnh
Định nghĩa 1.1 Cho văn phạm phi ngữ cảnh G = <Σ, ∆, S, P> và
η, ω ∈ (Σ ∪ ∆) ∗ Ta nói ω được suy dẫn trực tiếp từ η trong G, ký hiệu
η ⊢ G ω hay ngắn gọn là η ⊢ ω, nếu tồn tại quy tắc α → β ∈ P và
γ, δ ∈ (Σ ∪ ∆) ∗ sao cho η = γαδ, ω = γβδ.
Định nghĩa 1.2 Cho văn phạm phi ngữ cảnh G = <Σ, ∆, S, P> và
η, ω ∈ (Σ ∪ ∆) ∗ Ta nói ω được suy dẫn từ η trong G, ký hiệu η |= G ω
hay ngắn gọn là η |= ω, nếu η = ω hoặc tồn tại một dãy D = ω0, ω1, ,
ω k ∈ (Σ ∪ ∆) ∗ sao cho ω
0 = η, ω k = ω và ω i −1 ⊢ ω i, với i = 1, 2, , k
Định nghĩa 1.3 Cho văn phạm phi ngữ cảnh G = <Σ, ∆, S, P> Từ
ω ∈ Σ ∗ được gọi là sinh bởi văn phạm phi ngữ cảnh G, ký hiệu L(G), là
tập hợp tất cả các từ sinh bởi văn phạm G: L(G) = {ω ∈ Σ ∗ | S |= G ω}.
Hai văn phạm G1 = <Σ1, ∆1, S1, P1> và G2 = <Σ2, ∆2, S2, P2>
được gọi là tương đương nếu L(G1) = L(G2)
Ví dụ 1.3 Xét văn phạm G = <{a,b}, {S}, S, S → aSb, S → ab>
Trang 12Bằng cách áp dụng quy tắc sinh thứ nhất n-1 lần và quy tắc sinh thứ
hai 1 lần, ta có: S ⊢ aSb|= aaSbb|= a3Sb3|= |= a n −1 b n −1 |= a n b n
Vậy L(G) chứa các chuỗi có dạng a n b n , hay L(G) = {a n b n |n ≥ 1}.
1.1.3 Cây suy dẫn đầy đủ trong văn phạm phi ngữ cảnh Định nghĩa 1.4 Văn phạm phi ngữ cảnh G= <Σ, ∆, S, P> Cây suy
dẫn đầy đủ trong văn phạm G là một đồ thị hữu hạn có hướng, không
có chu trình và thỏa mãn bốn điều kiện sau:
1.Mỗi đỉnh của cây được gán một nhãn là các ký hiệu trong tập
Σ∪ ∆ ∪ {ε} Gốc của cây được gán nhãn là S.
2 Mỗi đỉnh trong được gán nhãn là một ký hiệu nào đó trong ∆
3 Mỗi đỉnh ngoài (lá của cây) được gán nhãn là một ký hiệu trongtập Σ
4 Nếu đỉnh m được gán nhãn là A ∈ ∆, còn các đỉnh n1,n2, , n k
là các con của đỉnh m theo thứ tự từ trái sang phải và được gán nhãn
B1,B2, , B k tương ứng thì A → B1B2 B k là một quy tắc trong P củavăn phạm G
Nếu đọc tất cả nhãn ở các lá theo thứ tự từ trái sang phải, ta sẽ nhậnđược một từ nào đó Từ đó sẽ là một phần tử trong L(G) và được gọi làkết quả của cây suy dẫn trong G
1.1.4 Quan hệ giữa dẫn xuất và cây suy dẫn
Định lý 1.1 Cho G= <Σ, ∆, S, P> là văn phạm phi ngữ cảnh và
ω ∈ Σ ∗ \{ε} Khi đó ω ∈ L(G) khi và chỉ khi tồn tại một cây suy dẫn đầy đủ trong G có kết quả là ω.
Chứng minh Do ω ̸= ε nên ta có thể giả thiết rằng S → ε /∈ P Bây
Trang 13giờ với mọi A ∈ ∆, đặt G A = <Σ, ∆, S, P>, ta có G A là văn phạm phi
ngữ cảnh Ta sẽ chứng tỏ rằng ω ∈ L(G A) khi và chỉ khi tồn tại một cây
suy dẫn trong G A có kết quả là ω.
Giả sử ω là kết quả của một cây suy dẫn trong G A và n là số kýhiệu không kết thúc trong cây Bằng quy nạp theo n, ta sẽ chỉ ra rằng
ω ∈ L(G A)
Nếu tổng số ký hiệu không kết thúc trong cây là 1, ký hiệu phải là
A và là gốc của cây, do đó các con của A phải là các đỉnh được gán bởi
các ký hiệu kết thúc, chẳng hạn b1,b2, , b k Theo định nghĩa của cây suy
dẫn, ta có A → b1b2 b k hay A |= ω.
Giả sử mệnh đề đúng với mọi cây suy dẫn có số ký hiệu không kết
thúc là n-1 Xét một cây suy dẫn trong G A có kết quả là ω và trong cây
có n ký hiệu không kết thúc Gọi các con của A theo thứ tự từ trái sang
phải là B1, B2, ,B k Nếu các đỉnh này đều là lá thì cây gốc A chỉ cómột đỉnh có ký hiệu không kết thúc Giả sử trong các đỉnh này có các
đỉnh trong là C1, C2, , C m Xét các cây con mà gốc của nó là C1, C2,
, C m Gọi α i là kết quả của cây suy dẫn gốc C i Theo giả thiết quy
nạp, α i ∈ L(G A ) Vì tập các quy tắc trong G Ci chứa trong tập các quy
tắc trong G A nên ta có các suy dẫn trong G A là C1 |= α1, C2 |= α2, ,
C m |= α m Sử dụng các suy dẫn này và quy tắc A → B1B2 B k, ta nhậnđược
A |= B1B2 B k |= ω1C1ω2C2 ω m C m ω m+1 |= |= ω1α1ω2α2 ω m α m ω m+1
Do kết quả của cây suy dẫn trong G A là ω nên ω = ω1α1ω2α2 ω m α m ω m+1
hay ω ∈ L G (A).
Đảo lại ta cần chứng minh rằng nếu có suy dẫn A |= ω(ω ̸= ε) trong
G A thì có thể xây dựng một cây suy dẫn trong G A có kết quả là ω Mệnh
đề này được chứng minh bằng quy nạp theo độ dài của suy dẫn
Trang 14Trước hết, nếu A |= ω = b1b2 b k (suy dẫn một bước) thì có thể xâydựng một cây có gốc là A và các con từ trái sang phải lần lượt được gán
các nhãn là b1,b2, , b k
Giả sử mệnh đề đúng với mọi suy dẫn có độ dài không lớn hơn n
Cho suy dẫn trong G A là A |= ω có độ dài là n+1 Giả sử quy tắc đầu
tiên trong suy dẫn này là A → B1B2 B k và C1, C2, , C m là các ký
hiệu không kết thúc trong các B i(1 ≤ i ≤ k), có nghĩa là B1B2 B k =
ω1C1ω2C2 ω m C m ω m+1 , ở đây C i |= ω i có độ dài không vượt quá n Theo
giả thiết quy nạp, tồn tại các cây T i của G Ci mà kết quả của nó là α i và
do đó ta có thể xây dựng trong G A cây suy dẫn có kết quả là ω như sau:
Hình 1.1: Cây suy dẫn có kết quả ω
1.1.5 Văn phạm phi ngữ cảnh đa nghĩa
Định nghĩa 1.5 Cho văn phạm phi ngữ cảnh G= <Σ, ∆, S, P> Ta
nói văn phạm G là nhập nhằng hay đa nghĩa nếu tồn tại một xâu ω là
kết quả của hai cây suy dẫn khác nhau trong G
Trong trường hợp ngược lại, ta nói G là không nhập nhằng hay đơn
Trang 15Một văn phạm phi ngữ cảnh được gọi là nhập nhằng vĩnh cửu nếukhông tồn tại văn phạm phi ngữ cảnh đơn nghĩa nào tương đương vớinó
Ngôn ngữ do văn phạm G sinh ra gọi là ngôn ngữ nhập nhằng nếu G
Hình 1.2: Hai cây suy dẫn khác nhau cho từ ω = b+a*b+a
Ví dụ 1.5 Văn phạm phi ngữ cảnh G1 = <{a, b, c, +, *, (, )}, {E, T,
F, I}, E, {E → T , T → F , F → I, E → E + T , T → T ∗ F , F → (E),
I → a | b | c}> Cây suy dẫn của xâu ω = a + b * c được chỉ ra trong
hình, không có một cây dẫn xuất nào khác có xâu này Văn phạm này
là đơn nghĩa
Trang 16Hình 1.3: Cây suy dẫn cho từ ω = a + b * c
1.1.6 Rút gọn các văn phạm phi ngữ cảnh
Trong một văn phạm phi ngữ cảnh có thể có nhiều yếu tố thừa, chẳnghạn có những ký hiệu không hề tham gia vào quá trình sinh các ngôn
ngữ, hoặc có những quy tắc dang A → B chỉ làm mất thời gian trong
quá trình hình thành các xâu của ngôn ngữ Vì lẽ đó cần loại bỏ nhữngyếu tố dư thừa không có ích trong việc sinh ngôn ngữ, sao cho việc loại
bỏ đó không làm ảnh hưởng tới quá trình sinh ngôn ngữ Điều đó cónghĩa là chỉ cần giữ lại các ký hiệu và các quy tắc có ích trong văn phạm
G mà chúng thực sự là cần thiết trong quá trình sinh ngôn ngữ mà thôi
Rút gọn các ký hiệu thừa trong văn phạm phi ngữ cảnh
Định nghĩa 1.6 Cho văn phạm phi ngữ cảnh G= <Σ, ∆, S, P> X
được gọi là ký hiệu có ích nếu tồn tại suy dẫn S |= αXβ |= ω, trong đó
α, β ∈ (Σ ∪ ∆), X ∈ Σ ∪ ∆ và ω ∈ Σ ∗.
Nếu ký hiệu X không thỏa mãn điều kiện trên thì X được gọi là ký
Trang 17hiệu thừa.
Như vậy X là ký hiệu thừa nếu:
1/ Từ X không thể dẫn ra một xâu ω ∈ Σ ∗ Ký hiệu X có tính chất
như thế được gọi là ký hiệu vô sinh.
2/ Từ ký hiệu xuất phát S không thể dẫn được một xâu nào có chứa
ký hiệu X Khi đó ta nói ký hiệu X là ký hiệu không đến được.
Như vậy một ký hiệu là thừa nếu nó hoặc là ký hiệu vô sinh hoặc là
ký hiệu không đến được
Bổ đề 1.1 (Loại ký hiệu vô sinh) Cho văn phạm phi ngữ cảnh G= <Σ,
∆, S, P> với L(G) ̸= ∅ Khi đó tồn tại văn phạm phi ngữ cảnh G’=
<Σ, ∆′, S, P’> tương đương với G sao cho ∀A ∈ ∆ ′ có một xâu ω ∈ Σ ∗
để A |= ω.
Chứng minh Từ tập quy tắc P của G, ta xây dựng ∆ ′ như sau:
+ Nếu trong P có quy tắc dạng A → ω với A ∈ ∆, ω ∈ Σ ∗ thì kết nạp
A vào ∆′
+ Nếu A → X1X2 X k là quy tắc trong P mà X i ∈ Σ hoặc X i là biến
đã được kết nạp vào ∆′ thì ta kết nạp A vào ∆′
Cứ tiếp tục xét các quy tắc trong P, ta sẽ xây dựng các ký hiệu cho tập
∆′ Vì P là hữu hạn nên quá trình sẽ được dừng lại sau một số hữu hạnbước Khi đó ta xây dựng được tập ∆′
Ta xây dựng tiếp cận quy tắc P’ gồm các quy tắc trong P mà các kýhiệu có mặt trong đó đều thuộc tập Σ∪ ∆ ′.
Bổ đề 1.2 (Loại ký hiệu không đến được) Cho văn phạm phi ngữ cảnh
G = <Σ, ∆, S, P> Khi đó tồn tại văn phạm phi ngữ cảnh G’= <Σ′,
∆′, S, P’> tương đương với G sao cho ∀X ∈ Σ ′ ∪ ∆ ′ có α, β ∈ (Σ ′ ∪ ∆ ′)∗
để cho S |= αXβ.
Trang 18Chứng minh Xây dựng tập Σ ′ và ∆′ như sau:
Đưa ký hiệu S vào ∆′ Nếu một ký hiệu A đã được kết nạp vào ∆′ và
A → α, ở đây α ∈ (Σ ′ ∪ ∆ ′)∗ thì ta kết nạp các ký hiệu phụ trong α vào
∆′ , còn các ký hiệu kết thúc trong α thì kết nạp vào Σ ′
Thủ tục kết nạp trên sẽ ngừng khi không còn bổ sung thêm được bất
kỳ ký hiệu nào nữa vào các tập Σ′ và ∆′
P’ bao gồm mọi quy tắc trong P mà chứa các ký hiệu thuộc tập
Σ′ ∪ ∆ ′ Với cách xây dựng đó, ta có L(G) = L(G’), trong đó G’ chỉ
gồm các ký hiệu đến được
Định lý 1.2 Mọi ngôn ngữ phi ngữ cảnh khác rỗng đều có thể được sinh
ra từ một văn phạm phi ngữ cảnh không có ký hiệu thừa.
Chứng minh Đặt L = L(G) là ngôn ngữ phi ngữ cảnh không rỗng.
Đặt G1 là kết quả của việc áp dụng bổ đề 1.1 vào G và G2 là kết quả
của việc áp dụng bổ đề 1.2 vào G1
Giả sử G2 có ký hiệu vô ích X Theo bổ đề 1.2 ta có S |= G2 αXβ Vì tất
cả các ký hiệu trong G2 đều có trong G1 nên theo bổ đề 1.1
S |= G1 αXβ |= G1 ω với ω là chuỗi ký hiệu kết thúc Vì vậy không có ký
hiệu nào trong dẫn xuất αXβ |= G1 ω bị loại bởi bổ đề 1.2 Vậy X dẫn
ra ký hiệu kết thúc trong G2 Suy ra X là ký hiệu có ích (mâu thuẫn)
Vậy văn phạm phi ngữ cảnh G2 không có ký hiệu thừa nào
Rút gọn các quy tắc thừa trong văn phạm phi ngữ cảnh
Định nghĩa 1.8 Cho văn phạm phi ngữ cảnh G = <Σ, ∆, S, P> Quy
tắc trong P có dạng A → B, ở đây A, B∈ ∆, được gọi là quy tắc đơn
hay phép đổi tên
Quy tắc đơn có tác dụng làm kéo dài quá trình sinh ra ngôn ngữ, vì
Trang 19vậy ta sẽ tìm cách loại quy tắc đơn mà không làm ảnh hưởng tới quátrình sinh ra ngôn ngữ của văn phạm đã cho.
Định lý 1.3 Đối với mọi phạm phi ngữ cảnh mà trong tập các quy tắc
của nó có quy tắc đơn thì tồn tại một văn phạm phi ngữ cảnh tương đương với nó mà trong tập các quy tắc của nó không chứa quy tắc đơn Chứng minh Giả sử G = <Σ, ∆, S, P> là văn phạm phi ngữ cảnh có
chứa quy tắc đơn (và không chứa ký hiệu thừa) Ta xây dựng văn phạmphi ngữ cảnh G’ = <Σ, ∆, S, P’> tương đương với G và không chứaquy tắc đơn
Đưa tất cả các quy tắc không đơn của P vào P’ Nếu trong P có quy
tắc A → B, với A, B∈ ∆, thì tồn tại suy dẫn S |= αAβ |= αBβ |= α ω
β, ở đây α, β ∈ (Σ ∪ ∆) ∗ , ω ∈ Σ ∗ do ∆ gồm các ký hiệu không thừa.
Vậy thay cho A → B, ta đưa vào P’ quy tắc S → αAβ và A → ω đều
là các quy tắc không đơn nhưng chức năng sinh ngôn ngữ tương đương
với quy tắc A → B.
Ví dụ 1.6 Văn phạm phi ngữ cảnh G = <{a,+,*}, {S,A,B}, S, {S →
S + A, S → A, A → A ∗ B, S → a, A → B, B → a}> tương đương với
văn phạm phi ngữ cảnh sau không còn các quy tắc đơn
G = <{a,+,*}, {S,A,B}, S, {S → S + A, A → A ∗ B, B → a, S → a,S → A ∗ B, A → a, S → a}>.
Định nghĩa 1.9 Cho văn phạm phi ngữ cảnh G = <Σ, ∆, S, P>, nếu
trong P có quy tắc A → ε, A ∈ ∆, thì ta nói G có ε-quy tắc.
Nếu L(G) không chứa từ rỗng ε thì có thể loại hết các ε-quy tắc trong
P để được một văn phạm mới tương đương với G; còn nếu trong L(G)
có chứa từ rỗng ε, thì không thể loại hết các ε-quy tắc khỏi G (ít nhất trong G phải chứa quy tắc S → ε).
Trang 20Các ε-quy tắc cũng làm văn phạm phi ngữ cảnh trở nên cồng kềnh, thiếu chính xác Định lí dưới đây cho phép loại bỏ các ε-quy tắc trong
văn phạm phi ngữ cảnh để được một văn phạm mới tương đương, chỉsai khác một từ rỗng
Định lý 1.4 Cho văn phạm phi ngữ cảnh G = <Σ, ∆, S, P>, giả sử
L = L(G) khi đó tồn tại một văn phạm phi ngữ cảnh G’ = <Σ ′ , ∆ ′ , S, P’> không chứa các ε-quy tắc sao cho L(G’) = L(G) \ {ε}.
Chứng minh Theo định lý 1.2, ta luôn giả thiết văn phạm G là không
chứa các ký hiệu thừa Ta sẽ xây dựng G’ không chứa các quy tắc rỗngtheo các bước sau:
1/ Tìm tất cả các ký hiệu triệt tiêu (nullable symbol) theo thủ tục:
• Nếu A → ε ∈ P thì A là ký hiệu triệt tiêu.
• Nếu B → α ∈ P mà α là một xâu gồm toàn ký hiệu triệt tiêu thì
B là ký hiệu triệt tiêu
• Lặp lại các bước trên cho đến khi không tìm thêm được ký hiệu
triệt tiêu nào nữa
2/ Xây dựng tập quy tắc P’
• Loại tất cả các quy tắc rỗng trong P (có dạng A → ε).
• Tập quy tắc mới P’ được xác định như sau: Nếu A → X1X2 X n
∈ P , X i ∈ (Σ∪∆) ∗ , thì đưa vào P’ tất cả các quy tắc dạng A → α1α2 α n
sao cho:
a/ Nếu X i không phải ký hiệu triệt tiêu thì α i = X i , (giữ nguyên X i)
b/ Với các X i là ký hiệu triệt tiêu thì mỗi lần thay một tập con của
các ký hiệu triệt tiêu này bởi các ký hiệu rỗng ε để được một quy tắc
mới
c/ Không thay tất cả các α i bởi các ký hiệu rỗng, dù mọi X i đều là
Trang 21Ví dụ 1.7 Văn phạm phi ngữ cảnh G = <{a, b}, {I, A, B}, I, P> với
dựng văn phạm G’ không có các ε-quy tắc, không có các ký hiệu thừa,
sao cho L(G’) = L(G) \ {ε}.
+ Dễ thấy G là không có các ký hiệu thừa
+ Các ký hiệu triệt tiêu là A và B
+ Tập quy tắc P’ = {I → AB, I → A, I → B, A → aA, A → a,
B → bB, B → b}.
Vậy ta có G’ = <{a, b}, {I, A, B}, I, P’> là văn phạm không chứa các
ε-quy tắc.
Ví dụ 1.8 Văn phạm phi ngữ cảnh G1 = <{a, b, d}, {S, A, B, C, D},
S, P1> với tập quy tắc P1 = {S → ABaC, A → BC, B → b | ε, C → D
| ε, D → a} Xây dựng văn phạm G1’ không có các ε-quy tắc sao cho L(G ′1) = L(G1) \ {ε}.
+ Các ký hiệu triệt tiêu là A, B, C
+ Tập quy tắc P1′ = {S → ABaC | BaC | AaC | ABa | aC | Aa | Ba |
a, A → BC | B | C, B → b, C → D, D → d}.
Vậy ta có G1’ = <{a, b, d}, {S, A, B, C, D}, S, P1’> là văn phạm
không chứa các ε-quy tắc.
Một văn phạm có dạng chuẩn là một văn phạm mà, cho dù hạn chế,
nó vẫn đủ, để có một dạng chuẩn tương đương Chúng tôi giới thiệu
Trang 22hai dạng hữu ích nhất trong số các văn phạm chuẩn, đó là dạng chuẩnChomsky và dạng chuẩn Greibach.
1.2.1 Dạng chuẩn Chomsky
Định nghĩa 1.10 Văn phạm phi ngữ cảnh G = <Σ, ∆, S, P> được
gọi là văn phạm dạng chuẩn Chomsky, nếu mọi quy tắc đều có dạng
Đưa văn phạm phi ngữ cảnh về dạng chuẩn Chomsky
Định lý 1.5 Đối với văn phạm phi ngữ cảnh tùy ý G = <Σ, ∆, S, P>,
luôn tồn tại một văn phạm phi ngữ cảnh ở dạng chuẩn Chomsky G’ =
<Σ, ∆ ′ , S, P’> tương đương với nó, tức là L(G) = L(G’).
Chứng minh Theo các định lý 1.2, 1.3 và 1.4 phần trên, ta có thể giả
thiết văn phạm G không chứa các ký hiệu thừa, không chứa các ε-quy
tắc và không chứa các quy tắc đơn Để xây dựng văn phạm mới G’ ởdạng chuẩn Chomsky, ta chỉ cần loại bỏ các quy tắc mà vế phải cóchứa cả ký hiệu chính và ký hiệu phụ hoặc các quy tắc mà vế phảinhiều hơn hai ký hiệu Việc loại bỏ các quy tắc không hợp lệ này tiếnhành theo hai bước sau:
Trang 23Bước 1 Với các quy tắc vế phải có chứa cả ký hiệu chính và ký hiệu
phụ, tức là các quy tắc có dạng A → X1X2 X m , với X i ∈ Σ ∪ ∆.(1)
Xét tất cả các X i trong quy tắc (1), nếu X i ∈ ∆ thì giữ nguyên X i, nếu
X i = a ∈ Σ, ta thêm vào ký hiệu phụ A a , thay X i trong quy tắc (1) bởi
A a , và thêm vào quy tắc A a → a.Lặp lại quá trình trên với tất cả các
X i trong quy tắc (1), quy tắc (1) trở thành: A → Y1Y2 Y m , với Y i là
các ký hiệu phụ (Y i = X i nếu X i ∈ ∆, Y i = A i nếu X i = a ∈ Σ).
Sau bước 1, ta nhận được văn phạm G1 = <Σ, ∆1, S, P1> với ∆1 và
P1 nhận được từ ∆ và P sau khi thêm vào các ký hiệu phụ mới và các
quy tắc mới như trên Rõ ràng L(G1) = L(G) mà G1 không chứa cácquy tắc mà vế phải có cả ký hiệu chính và ký hiệu phụ
Bước 2 Bây giờ trong G1 cần loại bỏ các quy tắc mà vế phải có độ dài
lớn hơn 2, gồm toàn ký hiệu phụ, là các quy tắc dạng: A → Y1Y2 Y m
Ví dụ 1.9 Cho văn phạm phi ngữ cảnh G = <{a, b},{S, A, B}, S, P>,
Trang 24B → bB, B → b} Hãy xây dựng văn phạm ở dạng chuẩn Chomsky
tương đương với G
Lời giải Áp dụng định lý 1.3, ta có thể loại hết các quy tắc đơn trong
G, để được văn phạm tương đương mà không chứa quy tắc đơn G1 =
<{a, b},{S, A, B}, S, P1>, với P1 = {S → ABA, S → aA, S → a,
S → bB, S → b, A → aA, A → a, A → bB, A → b, B → bB, B → b}
Bây giờ ta thay tất cả các quy tắc mà vế phải có chứa cả ký hiệu chính
và ký hiệu phụ:
+ Với các quy tắc S → aA, A → aA ta thay a bởi A a , thêm A a vào tập
ký hiệu phụ mới ∆2, thêm quy tắc A a → a vào tập quy tắc mới P2
+ Với các quy tắc S → bB, A → bB, B → bB ta thay b bởi A b, thêm
A b vào tập ký hiệu phụ mới ∆2, thêm quy tắc A b → b vào tập quy tắc
+ Với G2, ta giảm độ dài vế phải các quy tắc có hơn hai ký hiệu: thay
quy tắc S → ABA bởi hai quy tắc S → AC, C → BA, và thêm C vào
tập ký hiệu phụ Cuối cùng, ta được văn phạm G3 = <{a, b},{S, A, B,
S a , A b ,C}, S, P3> với P3 = {S → AC, C → BA, S → A a a, S → a, S →
A b B, S → b, A → A a A, A → a, A → A b B, A → b, B → A b B, B → b}
Văn phạm G3 ở dạng chuẩn Chomsky và G3 ∼ G2 ∼ G1 ∼ G.
Trang 251.2.2 Dạng chuẩn Greibach
Một dạng chuẩn khác của văn phạm phi ngữ cảnh là dạng chuẩn Greibachcũng được sử dụng nhiều trong các chứng minh hay thiết kế các vănphạm
Định nghĩa 1.11 Văn phạm phi ngữ cảnh G = <Σ, ∆, S, P> được
gọi là văn phạm dạng chuẩn Greibach, nếu mọi quy tắc đều có dạng
A → aα với a ∈ Σ, α ∈ ∆ ∗ , và S → ε nếu ε ∈ L(G) Khi ε ∈ L(G) thì S
không xuất hiện ở vế phải của mọi quy tắc
Trong dạng chuẩn Greibach, vế phải của mọi quy tắc đều bắt đầubằng một ký hiệu kết thúc
Ví dụ 1.10 Văn phạm G = <{a, b, c}, {S, A, B, C}, S, S → aAB,
S → ε, A → bC, B → b, C → c> là văn phạm ở dạng chuẩn Greibach.
Đưa văn phạm phi ngữ cảnh về dạng chuẩn Greibach
Trước hết ta xét hai bổ đề hỗ trợ sau
Bổ đề 1.3 Giả sử G = <Σ, ∆, S, P> là văn phạm phi ngữ cảnh Cho
trước A → Bγ là A-quy tắc trong P và B → β1 | β2 | | β k Văn phạm
G1 = <Σ, ∆, S, P1> thu được từ G bằng cách loại bỏ quy tắc A → Bγ
và thêm vào quy tắc A → β i γ (1 ≤ i ≤ k) thì L(G) = L(G1).
Chứng minh áp dụng A → Bγ trong suy dẫn để ω ∈ L(G) thì chúng
ta sẽ phải sử dụng B → B i với i nào đó ở bước tiếp theo Vây
A |= G β i γ Kết quả của việc sử dụng A → Bγ và loại bỏ B khỏi P
trong G thì hoàn toàn tương đương với việc sử dụng A → β i γ trong G1
Do vậy L(G1) = L(G)
Bổ đề 1.4 G = <Σ, ∆, S, P> là văn phạm phi ngữ cảnh Giả sử tập
Trang 26các A-dẫn xuất là A → Aα1 | Aα2 | Aα n | β1 | β2 | | β m, trong đó
β i không bắt đầu bằng A
G’ = <Σ, ∆∪ {Z}, S, P1> với P1 được xác định như sau:
1) Tập các A-dẫn xuất trong P1 là A → β1 | β2 | | β m và A → β1Z
| β2Z | | β m Z.
2) Tập các Z-dẫn xuất trong P1 là Z → α1 | α2 | α n và Z → α1Z |
α2Z | | α n Z.
3) Các quy tắc đối với các ký hiệu khác cũng thuộc P1
Khi đó G’ là văn phạm phi ngữ cảnh tương đương với G
Chứng minh Trong một dẫn xuất trái, một chuỗi quy tắc dạng A → α i
phải kết thúc bằng A → β j Tức là:
A ⊢ Aα i1 ⊢ Aα i2α i1 ⊢ ⊢ Aα i p α i p −1 α i1 ⊢ β j α i p α i p −1 α i1 (1 ≤ i ≤ n).
Dẫn xuất trong G có thể thay bằng dẫn xuất trong G’ bởi:
Định lý 1.6 Mọi ngôn ngữ phi ngữ cảnh L đều có thể được sinh bởi văn
phạm phi ngữ cảnh G ở dạng chuẩn Greibach.
Trang 27Chứng minh Chứng minh định lý theo hai trường hợp: L không chứa ε
và sau đó mở rộng khi có chứa ε.
Trường hợp 1 ε / ∈ L(G)
Bước 1 Xây dựng văn phạm phi ngữ cảnh G ở dạng chuẩn Chomsky
để sinh ra L Giả sử G = <Σ, {A1, A2, , A n }, A1, P >.
Bước 2.Để có được các quy tắc dạng A i → aγ hoặc A i → A j γ với j > i,
thì phải chuyển A i -dẫn xuất về dạng A i → A j γ sao cho j > i Điều này
thực hiện được bằng phương pháp quy nạp theo i và sử dụng bổ đề 1.4
Cuối cùng chúng ta có A i → A j γ, với i = 1, 2, , n-1 và j > i hoặc
A i → aγ ′.
A n -dẫn xuất sẽ có dạng A n → A n γ hoặc A n → aγ ′.
Bước 3 Chuyển A n -dẫn xuất về dạng A n → aγ Ở đây sử dụng bổ đề
1.4 để loại quy tắc dạng A n → A n γ.
Bước 4 Chuyển trạng thái A i -dẫn xuất về dạng A i → aγ với i = 1, 2,
, n-1
Cuối bước 3 ta đã thu được A n → aγ Các A n −1-dẫn xuất có dạng
A n −1 → A n γ hoặc A n −1 → aγ ′ Áp dụng bổ đề 1.3 để loại đi những quy
tắc A n −1 → A n γ và chỉ còn lại những quy tắc dạng A n −1 → aγ Lặp lại
tương tự đối với A n −2 , A n −3 , , A1
Bước 5 Biến đổi các Z i-dẫn xuất Mỗi khi áp dụng bổ đề 1.4 ta sẽ có
một biến mới, thêm biến Z i khi áp dụng bổ đề với A i-dẫn xuất Khi đó
Z i -dẫn xuất có dạng Z i → αγ|A k γ, với k nào đó Sau bước 4, vế phải
của mọi A k-dẫn xuất đều bắt đầu bằng một ký hiệu kết thúc Ta áp
dụng bổ đề 1.3 để loại bỏ Z i → A k γ Kết thúc bước 5 ta nhận được văn
phạm ở dạng chuản Greibach
Trường hợp 2 Xây dựng G để sinh ra L có chứa ε.
Trong trường hợp 1 đã xây dựng được văn phạm phi ngữ cảnh G =
Trang 28<Σ, ∆, S, P > để L(G) = L \{ε}.
Định nghĩa G1 = <Σ, ∆ ∪ {S1}, S1, P ∪ {S1 → S, S1 → ε} >
Quy tắc S1 → S có thể được loại bỏ theo định lý 1.3
Khi đó L(G1) = L
Ví dụ 1.12 Cho văn phạm phi ngữ cảnh G = <{a, b},{S, A, B}, S,
P>, với tập quy tắc P = {S → AA, S → a, A → SS, A → b} Hãy xây
dựng văn phạm ở dạng chuẩn Greibach tương đương với G
Bước 1 Văn phạm G ở dạng chuẩn Chomsky Đặt A1 = S, A2 = A các quy tắc trên chuyển thành A1 → A2A2, A1 → a, A2 → A1A1, A2 → b
và không có quy tắc thừa
Bước 2.
• A1-dẫn xuất có dạng đúng theo yêu cầu: A1 → A2A2, A1 → a
• A2 → b thỏa mãn điều kiện bước 2 ở trên Sử dụng bổ đề 1.3 để
Trong số các A1-dẫn xuất chỉ còn lại A1 → a vì A1 → A2A2 bị loại bỏ
theo bổ dề 1.3 Các A1-dẫn xuất sau khi chuyển đổi sẽ là
A1 → a | aA1A2 | bA2 | aA1Z2A2 | bZ2A2
Bước 5 Biến đổi Z2 → A2A1, Z2 → A2A1Z2 Áp dụng bổ đề 1.3 tanhận được
Z2 → aA1A1 | bA1 | aA1Z2A1 | bZ2A2,
Trang 29Để chứng minh ngôn ngữ cho trước là phi ngữ cảnh thì có nhiều cách.Một trong các cách đó là xây dựng một văn phạm phi ngữ cảnh để đoánnhận ngôn ngữ đó.Tuy nhiên, muốn chứng minh một ngôn ngữ khôngphải là phi ngữ cảnh thì khó hơn nhiều Ta không thể xét được tất cảcác văn phạm phi ngữ cảnh để chứng tỏ ngôn ngữ đã cho không đượcsinh bởi các văn phạm phi ngữ cảnh Để khắc phục khó khăn này, người
ta đưa ra một số "tiêu chuẩn đặc trưng" của ngôn ngữ phi ngữ cảnh vàdựa vào đó để xem xét khả năng thỏa mãn của ngôn ngữ cho trước.Sau đây, chúng ta xét một số tính chất quan trọng của ngôn ngữ phingữ cảnh dựa vào bổ đề Bơm Dựa vào đó chúng ta có thể khẳng địnhkhá nhiều ngôn ngữ không phải là phi ngữ cảnh
Bổ đề 1.5 Giả sử G = <Σ, ∆, S, P>là văn phạm phi ngữ cảnh ở dạng
chuẩn Chomsky và T là một cây suy dẫn của G Nếu độ dài của đường
đi dài nhất trong T nhỏ hơn hoặc bằng k thì mọi kết quả sinh ra của T đều có độ dài nhỏ hơn hoặc bằng 2 k −1
Chứng minh: Chứng minh quy nạp theo độ dài k, độ dài của đường
đi dài nhất trong số tất cả các cây suy dẫn có gốc được gán nhãn là S.Khi k = 1, tức là gốc của cây dẫn xuất chỉ có một đỉnh con mà nhãncủa nó là ký hiệu kết thúc Nếu đỉnh gốc có 2 đỉnh con thì nhãn của
Trang 30chúng sẽ phải là một ký hiệu trong ∆ bởi G ở dạng chuẩn Chomsky Từ
đó suy ra kết quả sinh ra có độ dài là 1 ≤ 21−1 = 1.
Giả sử kết luận trên đúng với mọi k - 1 (k > 1)
Ta cần chứng minh nó đúng với k, tức nếu T là cây suy dẫn có gốcđược dán nhãn là S có các đường đi dài nhất nhỏ hơn hoặc bằng k thìmọi kết quả sinh ra của T đều có độ dài nhỏ hơn hoặc bằng 2k −1 Bởi vì
k > 1 nên đỉnh gốc của T có đúng hai cây con A1 và A2 có các đường đidài nhất là nhỏ hơn hoặc bằng k - 1
Theo giả thiết quy nạp mọi kết quả ω1, ω2 sinh ra trên hai cây suy
dẫn A1 và A2 tương ứng đều thỏa mãn |ω1| ≤ 2 k −2, |ω2| ≤ 2 k −2 Kết quả
sinh ra bởi T khi đó có thể là ω1ω2 và |ω1ω2| ≤ 2 k −2 + 2k −2 = 2k −1 Đó
là điều cần chứng minh
Định lý 1.7 (Bổ đề Bơm cho ngôn ngữ phi ngữ cảnh) Nếu L là
ngôn ngữ phi cảnh thì sẽ tồn tại số tự nhiên n sao cho:
1) ∀z ∈ L với |z| ≥ n đều có thể viết được dưới dạng: z = uvωxy, với
u, v, x, y là các xâu nào đó.
2) |vx| ≥ 1
3) |vωx| ≤ n
4) uv k ωx k y ∈ L với mọi k ≥ 0.
Chứng minh Ta kiểm tra xem ε ∈ L hay không Khi ε ∈ L thì ta xây
dựng văn phạm phi ngữ cảnh G = <Σ, ∆, S, P> ở dạng chuẩn
Chomsky để sinh ra L \{ε} (trường hợp ε /∈ L thì xây dựng văn phạm
phi ngữ cảnh G = <Σ, ∆, S, P> ở dạng chuẩn Chomsky để sinh ra L).Giả sử G có m ký hiệu trong ∆, ta đặt n = 2m
Với z ∈ L, |z| ≥ n ta đi xây dựng cây suy dẫn cho z Nếu độ dài đường
đi dài nhất trong T nhiều nhất là m thì theo bổ đề 1.5, ta có