Tải bản đầy đủ (.pdf) (61 trang)

Về Otomat đẩy xuống và ngôn ngữ phi ngữ cảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (296.51 KB, 61 trang )

Header Page 1 of 161.

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

KHOA TOÁN

Phạm Thị Thu Hà

VỀ OTOMAT ĐẨY XUỐNG
VÀ NGÔN NGHỮ PHI NGỮ CẢNH

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Hà Nội – Năm 2016

Footer Page 1 of 161.


Header Page 2 of 161.

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

KHOA TOÁN

Phạm Thị Thu Hà

VỀ OTOMAT ĐẨY XUỐNG
VÀ NGÔN NGỮ PHI NGỮ CẢNH


Chuyên ngành: Toán học ứng dụng

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

Footer Page 2 of 161.


Header Page 3 of 161.

Lời cảm ơn

Em 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 trong
suố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ình
họ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ận
tố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ầy
giá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à


Footer Page 3 of 161.


Header Page 4 of 161.

Lời cam đoan

Em 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óa
luậ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à

Footer Page 4 of 161.

ii


Header Page 5 of 161.

Mục lục

Lời mở đầu

ii


Danh mục các kí hiệu và chữ viết tắt

iv

1

Văn phạm phi ngữ cảnh
1.1

1
. . . . . . . . . . . . . . . . .

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

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

1.2

Văn phạm phi ngữ cảnh

2 Otomat đẩy xuống
2.1

32

Mô tả otomat đẩy xuống . . . . . . . . . . . . . . . . . .

Footer Page 5 of 161.


i

33


Header Page 6 of 161.
2.2

Otomat đẩy xuống không đơn định . . . . . . . . . . . .

35

2.2.1

Định nghĩa . . . . . . . . . . . . . . . . . . . . .

35

2.2.2

Hàm chuyển . . . . . . . . . . . . . . . . . . . . .

36

2.2.3

Hình trạng . . . . . . . . . . . . . . . . . . . . . .

37


2.2.4

Ngôn ngữ đoán nhận bởi otomat đẩy xuống không
đơn định . . . . . . . . . . . . . . . . . . . . . . .

2.2.5

Otomat đẩy xuống không đơn định và ngôn ngữ
phi ngữ cảnh . . . . . . . . . . . . . . . . . . . .

2.3

2.4

38

40

Otomat đẩy xuống đơn định và ngôn ngữ phi ngữ cảnh
đơn định . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

Kết luận


51

Tài liệu tham khảo

51

Footer Page 6 of 161.

ii


Header Page 7 of 161.

Lời mở đầu

Những năm gần đây, con người đã đạt được nhiều thành tựu khoa học
rực rỡ, một trong những thành tựu đó là sự bùng nổ của ngành khoa học
má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ển
toá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ác
cấ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ác
lĩ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ấu
hiểu khái niệm về ngôn ngữ nói chung (cả ngôn ngữ lập trình lẫn ngôn
ngữ tự nhiên), và các vấn đề cơ bản về ngôn ngữ như cách xây dựng văn
phạm sinh ra ngôn ngữ (xây dựng văn phạm cho ngôn ngữ lập trình, cho
quá trình phân tích cú pháp), dịch từ ngôn ngữ lập trình cấp cao sang
ngôn ngữ máy. . . Lý thuyết otomat là lý thuyết cơ bản cho việc nghiên
cứu các mô hình tự động để làm tiền đề cho sự phát triển đến dạng máy
tí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ôn

ngữ hình thức, vì nó áp dụng cho ngôn ngữ lập trình. Mục đích của khóa
luậ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ác
otomat 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ết
giữa otomat đẩy xuống và ngôn ngữ phi ngữ cảnh.

Footer Page 7 of 161.

iii


Header Page 8 of 161.

Hà Nội, ngày 04/05/2016
Tác giả khóa luận

Phạm Thị Thu Hà

Footer Page 8 of 161.

iv


Header Page 9 of 161.

Danh mục các kí hiệu và chữ viết tắt




tập rỗng

x∈M

x thuộc tập M

x∈
/M

x không thuộc tập M

∀ x ∈ M với mọi x thuộc tập M
∃x

tồn tại x

M ∩N

giao của hai tập hợp M và N

M ∪N

hợp của hai tập hợp M và N

Σ∗

tập mọi từ trên bảng chữ cái Σ


Footer Page 9 of 161.

v


Header Page 10 of 161.

Chương 1
Văn phạm phi ngữ cảnh
1.1

Văn phạm phi ngữ cảnh

1.1.1

Định nghĩa

Văn phạm phi ngữ cảnh là một bộ sắp thứ tự gồm 4 thành phần:
G = <Σ, ∆, S, P>,
trong đó:
+ Σ là một bảng chữ cái, gọi là bảng chữ cái cơ bản (hay bảng chữ cái
kế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ứa
một ký hiệu phụ còn vế phải là tùy ý, và được gọi là quy tắc phi ngữ

Footer Page 10 of 161.

1


Khóa luận tốt nghiệp Đại học
Header Page
11 of 161.

Phạm Thị Thu Hà

cảnh.

Ví dụ 1.1. Cho văn phạm G1 = <{a,b}, {S, A, B}, S, P1 >, trong đó:
P1 = {S → AB, A → aA, A → a, B → bB, B → b}.
G1 là văn phạm phi ngữ cảnh.
Ví dụ 1.2. Cho văn phạm G2 = <{0,1},{S},S,P2 >, trong đó:
P2 = {S → SS, S → 0S1, S → 1S0, S → ε}.
G2 là văn phạm phi ngữ cảnh.
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>

Footer Page 11 of 161.

2


Khóa luận tốt nghiệp Đại học
Header Page
12 of 161.

Phạm Thị Thu Hà

Bằ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|= a3 Sb3 |=... |= an−1 bn−1 |= an bn
Vậy L(G) chứa các chuỗi có dạng an bn , hay L(G) = {an bn |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 trong
tập Σ.
4. Nếu đỉnh m được gán nhãn là A ∈ ∆, còn các đỉnh n1 ,n2 ,..., nk
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 ,..., Bk tương ứng thì A → B1 B2 ...Bk là một quy tắc trong P của
vă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

Footer Page 12 of 161.
3


Khóa luận tốt nghiệp Đại học
Header Page

13 of 161.

Phạm Thị Thu Hà

giờ với mọi A ∈ ∆, đặt GA = <Σ, ∆, S, P>, ta có GA là văn phạm phi
ngữ cảnh. Ta sẽ chứng tỏ rằng ω ∈ L(GA ) khi và chỉ khi tồn tại một cây
suy dẫn trong GA có kết quả là ω.
Giả sử ω là kết quả của một cây suy dẫn trong GA 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(GA ).
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 ,..., bk . Theo định nghĩa của cây suy
dẫn, ta có A → b1 b2 ...bk 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 GA 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 , ...,Bk . 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 , ..., Cm . Xét các cây con mà gốc của nó là C1 , C2 ,
..., Cm . Gọi αi là kết quả của cây suy dẫn gốc Ci . Theo giả thiết quy
nạp, αi ∈ L(GA ). Vì tập các quy tắc trong GCi chứa trong tập các quy
tắc trong GA nên ta có các suy dẫn trong GA là C1 |= α1 , C2 |= α2 ,...,
Cm |= αm . Sử dụng các suy dẫn này và quy tắc A → B1 B2 ...Bk , ta nhận
được
A |= B1 B2 ...Bk |= ω1 C1 ω2 C2 ...ωm Cm ωm+1 |= ...|= ω1 α1 ω2 α2 ...ωm αm ωm+1
Do kết quả của cây suy dẫn trong GA là ω nên ω = ω1 α1 ω2 α2 ...ωm αm ωm+1
hay ω ∈ LG (A).
Đảo lại ta cần chứng minh rằng nếu có suy dẫn A |= ω(ω ̸= ε) trong
GA thì có thể xây dựng một cây suy dẫn trong GA 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.

Footer Page 13 of 161.
4


Khóa luận tốt nghiệp Đại học
Header Page
14 of 161.

Phạm Thị Thu Hà

Trước hết, nếu A |= ω = b1 b2 ...bk (suy dẫn một bước) thì có thể xây
dự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 ,.., bk .
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 GA là A |= ω có độ dài là n+1. Giả sử quy tắc đầu
tiên trong suy dẫn này là A → B1 B2 ...Bk và C1 , C2 ,..., Cm là các ký
hiệu không kết thúc trong các Bi (1 ≤ i ≤ k), có nghĩa là B1 B2 ...Bk =
ω1 C1 ω2 C2 ...ωm Cm ωm+1 , ở đây Ci |= ω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 Ti của GCi mà kết quả của nó là αi và
do đó ta có thể xây dựng trong GA 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

Footer Page 14 of 161.
5


Khóa luận tốt nghiệp Đại học
Header Page
15 of 161.

Phạm Thị Thu Hà

nghĩa.
Một văn phạm phi ngữ cảnh được gọi là nhập nhằng vĩnh cửu nếu
không tồn tại văn phạm phi ngữ cảnh đơn nghĩa nào tương đương với
nó.
Ngôn ngữ do văn phạm G sinh ra gọi là ngôn ngữ nhập nhằng nếu G
là văn phạm nhập nhằng.
Ví dụ 1.4. Văn phạm phi ngữ cảnh sau là đa nghĩa.
G’ = <{a,b,+,*}, {S}, S, {S → S + S, S → S ∗ S, S → a, S → b}>
vì xâu ω = b+a*b+a có hai suy dẫn trái khác nhau trong G’ được cho
trong hình:

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.

Footer Page 15 of 161.
6


Khóa luận tốt nghiệp Đại học
Header Page
16 of 161.

Phạm Thị Thu Hà

Hì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ẳng
hạ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ững
yế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ý

Footer Page 16 of 161.
7


Khóa luận tốt nghiệp Đại học
Header Page
17 of 161.

Phạm Thị Thu Hà

hiệ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 → X1 X2 ...Xk là quy tắc trong P mà Xi ∈ Σ hoặc Xi 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ạn
bướ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β.

Footer Page 17 of 161.
8


Khóa luận tốt nghiệp Đại học
Header Page
18 of 161.

Phạm Thị Thu Hà

Chứ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ì

Footer Page 18 of 161.
9


Khóa luận tốt nghiệp Đại học
Header Page
19 of 161.

Phạm Thị Thu Hà

vậ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ạm
phi ngữ cảnh G’ = <Σ, ∆, S, P’> tương đương với G và không chứa
quy 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 → ε).

Footer Page 19 of 161.
10


Khóa luận tốt nghiệp Đại học
Header Page
20 of 161.


Phạm Thị Thu Hà

Cá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ỗng
theo 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 → X1 X2 ...Xn
∈ P , Xi ∈ (Σ∪∆)∗ , thì đưa vào P’ tất cả các quy tắc dạng A → α1 α2 ...αn
sao cho:
a/. Nếu Xi không phải ký hiệu triệt tiêu thì αi = Xi , (giữ nguyên Xi )
b/. Với các Xi 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 Xi đều là


Footer Page 20 of 161.
11


Header Page 21 of 161.
ký hiệu triệt tiêu.
Ví dụ 1.7. Văn phạm phi ngữ cảnh G = <{a, b}, {I, A, B}, I, P> với
tập quy tắc P = {I → AB, A → aA, A → ε, B → bB, B → ε}. Xây
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.

1.2

Chuẩn hóa văn phạm phi ngữ cảnh


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

Footer Page 21 of 161.


Khóa luận tốt nghiệp Đại học
Header Page
22 of 161.

Phạm Thị Thu Hà

hai dạng hữu ích nhất trong số các văn phạm chuẩn, đó là dạng chuẩn
Chomsky 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 → BC hoặc A → a, với A, B, C ∈ ∆, a ∈ Σ.
Như vậy, các văn phạm dạng chuẩn Chomsky sẽ không có các quy tắc
thuộc các loại sau:
a/. Các ε-quy tắc (các quy tắc rỗng).
b/. Các quy tắc đơn, dạng A → B, A, B ∈ ∆.
c/. Các quy tắc mà vế phải có cả ký hiệu chính và ký hiệu phụ.
d/. Các quy tắc có vế phải nhiều hơn hai ký hiệu.
Đư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ải
nhiề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ến
hành theo hai bước sau:

Footer Page 22 of 161.
13


Khóa luận tốt nghiệp Đại học
Header Page
23 of 161.

Phạm Thị Thu Hà

Bướ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 → X1 X2 ...Xm , với Xi ∈ Σ ∪ ∆.(1)
Xét tất cả các Xi trong quy tắc (1), nếu Xi ∈ ∆ thì giữ nguyên Xi , nếu
Xi = a ∈ Σ, ta thêm vào ký hiệu phụ Aa , thay Xi trong quy tắc (1) bởi
Aa , và thêm vào quy tắc Aa → a.Lặp lại quá trình trên với tất cả các
Xi trong quy tắc (1), quy tắc (1) trở thành: A → Y1 Y2 ...Ym , với Yi là
các ký hiệu phụ (Yi = Xi nếu Xi ∈ ∆, Yi = Ai nếu Xi = 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ác
quy 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 → Y1 Y2 ...Ym
với m>2, Yi ∈ ∆1 .
Ta thêm m-2 ký hiệu phụ Z1 , Z2 ,..., Zm−2 vào tập ∆1 và thêm vào m-2
quy tắc sau đây:
A → Y1 Z1 ; Z1 → Y2 Z2 ; Y2 → Y3 Z3 ; ...; Zm−2 → Ym−1 Zm .
Ta nhận được văn phạm mới G2 = <Σ, ∆2 , S, P2 > không chứa các
quy tắc có vế phải nhiều hơn 2 ký hiệu, không chứa các quy tắc vế phải
gồm cả ký hiệu chính và ký hiệu phụ. Dễ dàng chỉ ra rằng L(G2 ) =
L(G1 ) = L(G), vậy G2 chính là văn phạm G’ ởdạng chuẩn Chomsky cần
tìm.
Ví dụ 1.9. 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 → A, S → ABA, A → aA, A → a, A → B,

Footer Page 23 of 161.
14


Khóa luận tốt nghiệp Đại học
Header Page
24 of 161.

Phạm Thị Thu Hà

B → 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 Aa , thêm Aa vào tập
ký hiệu phụ mới ∆2 , thêm quy tắc Aa → 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 Ab , thêm
Ab vào tập ký hiệu phụ mới ∆2 , thêm quy tắc Ab → b vào tập quy tắc
mới P2 .
Ta nhận được G2 = <{a, b},{S, A, B, Aa , Ab }, S, P2 >, với P2 = {S →
ABA, S → Aa A, S → a, S → Ab B, S → b, A → Aa A, A → a, A →
Ab B, A → b, B → Ab B, B → b} không có quy tắc nào mà vế phải có cả
ký hiệu chính và ký hiệu phụ, và rõ ràng G2 ∼ G1 ∼ G.
+ 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,
Sa , Ab ,C}, S, P3 > với P3 = {S → AC, C → BA, S → Aa a, S → a, S →
Ab B, S → b, A → Aa A, A → a, A → Ab B, A → b, B → Ab B, B → b}
Văn phạm G3 ở dạng chuẩn Chomsky và G3 ∼ G2 ∼ G1 ∼ G.

Footer Page 24 of 161.
15


Khóa luận tốt nghiệp Đại học
Header Page
25 of 161.

1.2.2

Phạm Thị Thu Hà


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 Greibach
cũng được sử dụng nhiều trong các chứng minh hay thiết kế các văn
phạ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 đầu
bằ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 → Bi 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

Footer Page 25 of 161.
16



×