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

Bước đầu tìm hiểu một số nội dung về đại số tổ hợp trên các từ

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 (816.3 KB, 64 trang )

Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
1


LỜI CẢM ƠN

Trong suốt thời gian thực hiện khóa luận tốt nghiệp ngoài sự nỗ lực của
bản thân, tôi còn nhận ñược sự giúp ñỡ, chỉ bảo tận tình của các thầy giáo, cô
giáo trong Khoa Toán – Công nghệ, Trường ðại học Hùng Vương.
ðặc biệt tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo Th.S Hà Ngọc Phú
-Giảng viên bộ môn Toán ứng dụng - Khoa Toán – Công nghệ - Trường ðại học
Hùng Vương. Thầy ñã dành nhiều thời gian quý báu tận tình hướng dẫn tôi trong
suốt quá trình thực hiện khóa luận tốt nghiệp, ñồng thời thầy còn là người giúp
tôi lĩnh hội ñược những kiến thức chuyên môn và rèn luyện cho tôi tác phong
nghiên cứu khoa học.
Qua ñây, tôi xin gửi lời cảm ơn chân thành và sâu sắc tới các thầy giáo, cô
giáo trong Khoa Toán – Công nghệ, tới gia ñình, bạn bè là những người luôn sát
cánh bên tôi, ñã nhiệt tình giúp ñỡ, chia sẻ, ñộng viên tôi trong suốt quá trình
học tập cũng như khi tôi thực hiện và hoàn chỉnh khóa luận này.
Mặc dù ñã rất cố gắng xong khóa luận không khỏi có những thiếu sót. Vì
vậy, tôi rất mong nhận ñược sự góp ý của các thầy giáo, cô giáo và các bạn ñể
khóa luận ñược hoàn thiện hơn.
Tôi xin chân thành cảm ơn!
Việt trì, tháng 05 năm 2012
Sinh viên
Hoàng Thị Hồng Hải

Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
2

MỤC LỤC


CHƯƠNG I: VĂN PHẠM VÀ NGÔN NGỮ HÌNH THỨC 6

1.1. Nửa nhóm 6

1.2. Khái niệm ngôn ngữ 6

1.3. Văn phạm và ngôn ngữ sinh bởi văn phạm 11

1.4. Một số tính chất của ngôn ngữ 18

BÀI TẬP CHƯƠNG I 24

CHƯƠNG II: AUTOMATA HỮU HẠN VÀ NGÔN NGỮ CHÍNH QUY 26

2.1. Automata hữu hạn 26

2.2. Quan hệ giữa Automata hữu hạn và ngôn ngữ chính quy 34

2.3. Biểu thức chính quy 39

2.4. Cực tiểu hóa Automata hữu hạn 41

BÀI TẬP CHƯƠNG II 50

CHƯƠNG III: TỪ STURMIAN 52

3.1. Từ Sturmian 52

3.2. Từ cơ học, nhân tử của từ Sturmian 58


BÀI TẬP CHƯƠNG III 62

KẾT LUẬN 63

TÀI LIỆU THAM KHẢO 64


Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
3

MỞ ðẦU
1. Lý do chọn ñề tài
Tổ hợp là một nhánh của toán học liên quan ñến việc nghiên cứu cấu trúc
rời rạc hữu hạn hay ñếm ñược của một tập hợp. Vấn ñề tổ hợp phát sinh trong
nhiều lĩnh vực của toán học thuần túy ñặc biệt là trong ñại số, lý thuyết xác
suất, cấu trúc liên kết và hình học. Tổ hợp cũng có nhiều ứng dụng trong tối ưu
hóa, khoa học máy tính, lý thuyết ergodic và vật lý thống kê. Toán học tổ hợp
liên quan ñến cả khía cạnh giải quyết vấn ñề lẫn xây dựng cơ sở lý thuyết, trong
ñó “ðại số tổ hợp trên các từ” là một lĩnh vực khá mới mẻ, phát triển ñộc lập
trong một số ngành của toán học như lý thuyết số, lý thuyết nhóm và xác suất…
“Tổ hợp trên từ” xuất hiện thường xuyên trong các vấn ñề của khoa học máy
tính lý thuyết, lý thuyết thiết bị tự ñộng, ñộng lực biểu tượng và ngôn ngữ hình
thức. Cách ñây khoảng 30 năm, các vấn ñề về lý thuyết “Tổ hợp trên từ” vẫn
chưa ñược nghiên cứu một cách kỹ càng hoặc thậm chí còn chưa ñược biết tới.
Nội dung thống nhất của lý thuyết này chính thức xuất hiện lần ñầu tiên trong
cuốn “Tổ hợp trên từ” của Lothaire vào năm 1983, kể từ ñó lĩnh vực này ngày
càng phát triển nhanh chóng. “Tổ hợp trên từ” ñã nghiên cứu các vấn ñề xung
quanh một chuỗi ký tự rút ra từ một bảng chữ cái cố ñịnh, ñây là một kết quả
ñáng ngạc nhiên trong toán học và ngày càng có nhiều ứng dụng rộng rãi trong
các ngành khoa học khác, ñặc biệt là tin học. Các khái niệm về từ, ngôn ngữ,

văn phạm và các phép toán xây dựng trên chúng hay những nghiên cứu về
Automata, mối quan hệ giữa Automata và ngôn ngữ chính quy, từ Sturmian là
một trong những kiến thức chung nhất về “ðại số tổ hợp trên các từ”. Bước ñầu
tìm hiểu về những vấn ñề này giúp ta hình dung ñược rõ hơn một số mô hình,
cấu trúc ñại số ñược xây dựng trên các từ và những ứng dụng của lý thuyết này
trong các ngành khoa học có liên quan.
Là một sinh viên theo học chuyên ngành toán, tôi nhận thức ñược sự cần
thiết và tiềm năng phát triển của vấn ñề này trong tương lai không xa. Do ñó,
chúng tôi mạnh dạn lựa chọn ñề tài “Bước ñầu tìm hiểu một số nội dung về ñại
số tổ hợp trên các từ” làm ñề tài nghiên cứu cho khóa luận tốt nghiệp với mong
muốn có ñược những hiểu biết chung nhất về ñại số tổ hợp trên từ ñồng thời hy
vọng ñây có thể là tài liệu tham khảo bước ñầu ñưa sinh viên chuyên ngành toán
tiếp cận với lĩnh vực mới mẻ này.

Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
4

2. Mục ñích nghiên cứu
“Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ” nhằm
ñưa ra các khái niệm liên quan ñến ngôn ngữ hình thức, các phép toán ñược xây
dựng trên các từ và tính chất của chúng. Từ ñó giúp ta phần nào hiểu ñược
những ứng dụng của lý thuyết này trong các ngành khoa học có liên quan ñặc
biệt là trong lĩnh vực công nghệ thông tin.
3. Nhiệm vụ nghiên cứu
Khóa luận tập trung nghiên cứu các khái niệm về ngôn ngữ hình thức, các
phép toán trên các mô hình, không gian hay cấu trúc ñại số xây dựng trên các từ
và một số tính chất của chúng.
4. Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý luận: ðọc giáo trình, tài liệu liên quan ñến
lý thuyết ngôn ngữ hình thức, ñại số tổ hợp, ñại số tổ hợp trên từ, từ ñó tổng

hợp, ñưa ra các khái niệm, tính chất cơ bản của ñối tượng ñược nghiên cứu
- Phương pháp tổng kết kinh nghiệm: Tổng kết và hệ thống hóa các kiến
thức về vấn ñề nghiên cứu một cách khoa học, ñầy ñủ và chính xác.
- Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giảng viên trực tiếp
hướng dẫn và các giảng viên khác ñể hoàn thiện về mặt nội dung cũng như hình
thức của khoá luận.
5. ðối tượng và phạm vi nghiên cứu
ðối tượng chính mà khóa luận nghiên cứu là những vấn ñề chung nhất về
ñại số tổ hợp trên các từ mà cụ thể là: Văn phạm và ngôn ngữ hình thức,
Automata, và từ Sturmian.
6. Ý nghĩa khoa học và thực tiễn
Ý nghĩa khoa học: Khóa luận là tài liệu tham khảo phần nào trợ giúp cho
sinh viên chuyên ngành toán muốn bước ñầu tìm hiểu về ñại số tổ hợp trên từ.
Ý nghĩa thực tiễn: ðề tài giúp tôi bước ñầu làm quen với việc nghiên cứu
khoa học, ñồng thời, giúp tôi hiểu những kiến thức cơ bản nhất về ñại số tổ hợp
trên các từ.
7. Bố cục của khóa luận
Ngoài các phần mở ñầu, kết luận và tài liệu tham khảo, nội dung của khóa
luận bao gồm 3 chương:
Chương I: Văn phạm và ngôn ngữ hình thức
1.1. Nửa nhóm
1.2. Khái niệm ngôn ngữ
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
5

1.3. Văn phạm và ngôn ngữ sinh bởi văn phạm
1.4. Một số tính chất của ngôn ngữ
Bài tập chương I
Chương II: Automata hữu hạn và ngôn ngữ chính quy
2.1. Automata hữu hạn

2.2. Quan hệ giữa Automata hữu hạn và ngôn ngữ chính quy
2.3. Biểu thức chính quy
2.4. Cực tiểu hóa Automata hữu hạn
Chương III: Từ Sturmian
3.1. Từ Sturmian
3.2. Từ cơ học, nhân tử của từ Sturmian
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
6

CHƯƠNG I: VĂN PHẠM VÀ NGÔN NGỮ HÌNH THỨC
1.1. Nửa nhóm
1.1.1. ðịnh nghĩa: Nửa nhóm là một tập hợp ñược trang bị một phép toán hai
ngôi có tính chất kết hợp.
Ví dụ 1: Tập hợp các số hữu tỉ

cùng với phép cộng thông thường làm thành
một nửa nhóm.
1.1.2. ðịnh nghĩa: Cho X là một nửa nhóm, A là một tập con của X. A ñược
gọi là nửa nhóm con của X nếu A cùng với phép toán cảm sinh trên X làm
thành một nửa nhóm.
Ví dụ 2: Tập hợp các số tự nhiên

là một nửa nhóm con của tập các số hữu tỉ

.
1.1.3. ðịnh nghĩa: Cho (X, .) và (Y, .) là hai nửa nhóm. Một ánh xạ f ñi từ nửa
nhóm X ñến nửa nhóm Y
:
f X Y
→

thỏa mãn :
( ) ( ) ( ) ,
f uv f u f v u v X
= ∀ ∈

ñược gọi là một cấu xạ.
1.1.4. ðịnh nghĩa : Cho (X, .) là một nửa nhóm,
X
ε

ñược gọi là phần tử
trung lập của X nếu
:
x X x x x
ε ε
∀ ∈ = =
.
Ví dụ 3 : 0 là phần tử trung lập của nửa nhóm (

,+)
1.1.5. ðịnh nghĩa : Một nửa nhóm tồn tại phần tử trung lập ñược gọi là vị
nhóm. Phần tử trung lập ñó ñược gọi là phần tử ñơn vị của vị nhóm.
1.1.6. ðịnh nghĩa : X và Y là hai tập con của nửa nhóm S. Tích của X và Y là
một tập hợp :
{ , }
XY xy x X y Y
= ∈ ∈

Khi ñ
ó, t


p X
+

ñượ
c
ñị
nh ngh
ĩ
a :
1 2
{ 1, }
n i
X x x x n x X
+
= ≥ ∈
c
ũ
ng là n

a
nhóm con c

a X.
N
ế
u S là m

t v


nhóm v

i ph

n t


ñơ
n v


ε
thì
*
{ }
X X
ε
+
= ∪
c
ũ
ng là m

t v


nhóm v

i ph


n t


ñơ
n v


ε
.
1.2. Khái niệm ngôn ngữ
C

ngôn ng

l

p trình l

n ngôn ng

t

nhiên
ñề
u có th

xem nh
ư
t


p các
t

, t

c là t

p các xâu h

u h

n các ph

n t

c

a m

t b

ch

cái c
ơ
s

nào
ñ
ó.

Khái ni

m ngôn ng


ñượ
c
ñư
a vào trong ch
ươ
ng này r

t t

ng quát, bao hàm c


ngôn ng

t

nhiên l

n ngôn ng

l

p trình, và c

nh


ng ngôn ng

vô ngh
ĩ
a mà ta
có th

ngh
ĩ

ñế
n. V

m

t truy

n th

ng, lý thuy
ế
t ngôn ng

hình th

c liên quan
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
7


ñến các ñặc tả cú pháp của ngôn ngữ nhiều hơn là ñến những vấn ñề ngữ nghĩa.
Ở ñây, ta xem các bảng chữ cái, các từ, các ngôn ngữ, văn phạm… như là
những ñối tượng của ñại số tổ hợp, việc xây dựng trên chúng các phép toán và
nghiên cứu tính chất của chúng có tác dụng ñặc biệt quan trọng trong lĩnh vực
công nghệ thông tin.
1.2.1. ðịnh nghĩa: Một bảng chữ cái là một tập hữu hạn khác rỗng. Các phần
tử của một bảng chữ cái

ñược gọi là các chữ cái hay các kí hiệu.
Ví dụ 4: Dưới ñây là các bảng chữ cái:
{ , , , , }
a b c z
∑ =

{
}
, , , , , , , , , , , , , , ,
U
α β χ δ ε ϕ γ η λ µ π σ ω ξ ψ ζ
=

V= {0, 1}
1.2.2. ðịnh nghĩa: Một từ trên bảng chữ cái

là một dãy (xâu) hữu hạn
gồm một số lớn hơn hay bằng không các chữ của

, trong ñó một chữ có
thể xuất hiện vài lần.


Từ không có chữ nào gọi là từ rỗng (xâu rỗng) và ñược ký hiệu là
ε
.
Hai từ
1 2

n
a a a
α
=

1 2

m
b b b
β
=
là bằng nhau, kí hiệu
α β
=
, nếu n = m và
1,2, ,
i i
a b i n
= ∀ =
.
Tập mọi từ (tương ứng từ khác rỗng) trên bảng chữ cái

ñược ký hiệu là
*



(tương ứng là
+

). Các tập
*


+

là vô hạn ñối với bất kỳ

nào.
Về mặt ñại số,
*

là một vị nhóm tự do với ñơn vị là từ rỗng
ε
sinh bởi


+

là một nửa nhóm tự do sinh bởi

.
ðối với các từ
* *
, ' '

α α
∈∑ ∈ ∑
, việc ñặt
α

'
α
cạnh nhau ñể có từ mới
' ( ')
αα
∈ ∑∪∑
ñược gọi là phép ghép
α
với
'
α
. Từ rỗng là phần tử ñơn vị ñối
với phép ghép:
ωε εω ω ω
= = ∀ ∈∑
. Vì phép ghép có tính kết hợp, nghĩa là với
mọi từ
, ,
α β γ
ta có
( ) ( )
αβ γ α βγ
=
, nên ký hiệu
n

ω
, với n là số tự nhiên, ñược
dùng theo nghĩa quen thuộc
1
0
1
. 1
n
n
khin
khin
khin
ε
ω ω
ω ω


=

= =


>


Ví dụ 5:
ε
, 0, 01, 101, 1010, 110011 là các từ trên bảng chữ cái V={0,1}.
daisotohoptrentu là một từ trên bảng chữ cái


={a, b, c,…, z}.
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
8

Trên bảng chữ cái

={a, b, c,…, z}, nếu
α
là từ daiso và
β
là từ tohop thì
αβ

là từ daisotohop.
1.2.3. ðịnh nghĩa: ðộ dài của một từ
ω
, kí hiệu là
ω
hay d(
ω
), là số các chữ
cái có mặt trong
ω
. Theo ñịnh nghĩa,
0
ε
=

Hàm ñộ dài có một số tính chất của lôgarit. Với mọi từ
α

,
β
và số tự
nhiên n:
αβ α β
= +
;
n
n
α α
=
.
Gương (hay từ ngược, từ ñảo) của từ
ω
có ñược bằng cách viết các chữ
cái của
ω
theo chiều ngược lại.
Nếu
1 2

n
a a a
ω
=
là một từ trên bảng chữ cái

thì từ ngược của
ω
, kí hiệu là

R
ω

2 1

R
n
a a a
ω
=
.
ω
ñượ
c g

i là
từ không ñảo
n
ế
u
ω
=
R
ω

T


α


ñượ
c g

i là
từ con
hay m

t
nhân tử
c

a t


β
n
ế
u có các t

u và v
sao cho
u v
β α
=
. Ngoài ra, n
ế
u
u
ε
=

(t
ươ
ng

ng
v
ε
=
) thì
α

ñượ
c g

i là
từ
con ñầu
hay
tiền tố
(t
ươ
ng

ng
từ con cuối
hay
hậu tố
) c

a

β
.
S

nguyên
1
p


ñượ
c g

i là
chu kì
c

a t


1 2
( )
n i
a a a a
ω
= ∈∑
n
ế
u p là
s


nguyên nh

nh

t sao cho
, 1,2,
i i p
a a i n p
+
= ∀ = −
. Khi
ñ
ó
ω

ñượ
c g

i là
từ
có chu kì
. N
ế
u t

n t

i hai nhân t

u, v c


a
ω
, t

n t

i s

nguyên d
ươ
ng k sao cho
m
uv
ω
=
thì
ω

ñượ
c g

i là
từ có chu kì cuối
.
Ví dụ 6: Từ
ω
=
010111001 trên bảng chữ cái {0,1} có ñộ dài là 9,trong
ñó 0101 là tiền tố và 11001 là hậu tố của

ω
.
Tập các từ con của từ
ω
ñược ký hiệu là
( )
F
ω
, tập các từ con có ñộ dài n của
ω
ñược ký hiệu là
( )
n
F
ω

1.2.4. Mệnh ñề: Nếu

là bảng chữ cái thì
*

là tập vô hạn ñếm ñược.
Chứng minh:
Do mỗi số tự nhiên n ñều tồn tại một từ trên
*

có ñộ dài n nên
*

là một

tập vô hạn.
Giả sử
{
}
1 2
, , ,
n
a a a
∑ =
. Xét ánh xạ f từ
*

vào tập hợp

các số tự
nhiên xác ñịnh bởi
*
( ) 0; ( ) ; ( ) ( 1). ( )
i i
f f a i f a n f i
ε α α α
= = = + + ∀ ∈∑

0 1

i i ik
a a a
α
=
,

0 1

j j jh
b b b
β
=

( ) ( )
f f
α β
=
.
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
9

Khi ñó
1
0 1 1
1
0 1 1
( 1) . ( 1) . ( 1).
( 1) . ( 1) . ( 1).
k k
k k
h h
h h
n i n i n i i
n j n j n j j





+ + + + + + +
= + + + + + + +

Trong ñó 2 vế là khai triển của một số nguyên theo cơ số n+1. Do ñó k = h và
u u
i j
=
với
1
u k
≤ ≤
hay
α β
=
. Vì vậy f là một ñơn ánh. Từ ñó suy ra
*

là một
tập ñếm ñược.

1.2.5. ðịnh nghĩa: Mỗi tập con của
*

ñược gọi là một ngôn ngữ hình thức
hay ngắn gọn hơn là ngôn ngữ trên

. ðặc biệt, tập


là một ngôn ngữ trên

, gọi là ngôn ngữ rỗng; tập
{
}
ε
cũng là một ngôn ngữ trên

, ñây là ngôn
ngữ chỉ chứa từ rỗng và
*

là ngôn ngữ gồm tất cả các từ trên

.
Ví dụ 7: L
1
={
ε
, a, b, ab, aab, aabb, abbb}
L
2
={a
n
b
n

n N

}

là các ngôn ngữ trên bảng chữ cái

={a,b} trong ñó, L
1
là ngôn ngữ hữu hạn,
L
2
là ngôn ngữ vô hạn.
Các họ ngôn ngữ cụ thể thường ñược ñặc trưng một cách tiện lợi qua các
phép toán xác ñịnh trên ngôn ngữ, họ ñó gồm các ngôn ngữ nhận ñược bằng
việc tổ hợp từ một số ngôn ngữ cho trước bởi một số phép toán nào ñó. Vì ngôn
ngữ là tập hợp nên ta có các phép toán: phép giao, phép hợp, phép hiệu, phép lấy
phần bù.
Chẳng hạn, với L
1
và L
2
cho ở trên thì ta có các ngôn ngữ mới sau cũng
trên bảng chữ cái

:
*
1 2 1 2 1 2 1
; ; \ ; \
L L L L L L L
∩ ∪ ∑
. Ngoài ra, ta còn có các
phép toán khác nh
ư
: phép ghép, phép c


u x


ñượ
c
ñị
nh ngh
ĩ
a d
ướ
i
ñ
ây.
1.2.6. ðịnh nghĩa: Cho hai ngôn ngữ
1
L
trên bảng
1


2
L
trên bảng
2

.
Ghép hay tích của hai ngôn ngữ
1
L


2
L
là ngôn ngữ trên bảng chữ
1 2
∑ ∪∑
,
kí hiệu là
1
L
2
L
, ñược xác ñịnh bởi:
L
1
L
2
=
1 2
{ , }
L L
αβ α β
∈ ∈

Dễ dàng thấy rằng, phép ghép có tính chất kết hợp, nghĩa là với mọi ngôn ngữ
L
1
, L
2
, L

3
ta luôn có:
(L
1
L
2
) L
3
= L
1
(L
2
L
3
)
Ngoài ra, với mọi ngôn ngữ L, ta có:
; { } { }
L L L L L
ε ε
∅ = ∅ = ∅ = =

và phép ghép có tính chất phân phối ñối với phép hợp, nghĩa là
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
10

L
1
(L
2


L
3
)= L
1
L
2


L
1
L
3
; (L
2

L
3
)L
1
= L
2
L
1


L
3
L
1


Vì phép ghép ngôn ngữ có tính chất kết hợp nên kí hiệu L
n
ñược dùng cho mọi
ngôn ngữ L và mọi số tự nhiên n theo nghĩa quen thuộc như sau:
1
{ } 0
1
. 1
n
n
khi n
L L khi n
L L khi n
ε


=

= =


>


Lặp hay bao ñóng ghép của ngôn ngữ L, kí hiệu là L
*
, ñược ñịnh nghĩa là hợp
của mọi lũy thừa của L:
*
0

n
n
L L

=
=


Lặp không -
ε
hay bao ñóng ghép không -
ε
của L, kí hiệu là L
+
, ñược ñịnh
nghĩa là hợp của mọi lũy thừa dương của L:
1
n
n
L L

+
=
=


Ví dụ 8: 1) Xét các ngôn ngữ trên bảng chữ cái
{0,1}
∑ =
:

{
}
{
}
{
}
{ } { }
{ } { } { }
1 2 3
2 3 1 2 3
1 2 1 3 1 2 1 3
0,01 , 01,10 , 0
010,100 ; ( ) 0,01,010,100
0,01,10 ; 0,01 ;( )( ) 00,001,010,0101,100,101
0
L L L
L L L L L
L L L L L L L L
= = =
= ∪ =
∪ = ∪ = ∪ ∪ =
Do ñó
1 2 3 1 2 1 3
( ) ( )( )
L L L L L L L
∪ ≠ ∪ ∪
tức là phép hợp không có tính chất phân
phối ñối với phép ghép.
{ } { } { }
2 3 1 2 3

1 2 1 3 1 2 1 3
; ( )
001,010,0101,0110 ; 00,010 ;( ) ( ) 010
L L L L L
L L L L L L L L
∩ = ∅ ∩ = ∅
= = ∩ =

Do ñó
1 2 3 1 2 1 3
( ) ( ) ( )
L L L L L L L
∩ ≠ ∩
, tức là phép ghép không có tính chất phân
phối ñối với phép giao.
{ }
1 2 3 1 2 1 3
1 2 1 3
( ) ; {01}; {0};
( )( ) 010
L L L L L L L
L L L L
∩ = ∅ ∩ = ∩ =
∩ ∩ =

Do ñó
1 2 3 1 2 1 3
( ) ( )( )
L L L L L L L
∩ ≠ ∩ ∩

, tức là phép giao không có tính chất phân
phối ñối với phép ghép.
2) Xét ngôn ngữ L={0, 1} trên bảng chữ cái
{0,1}
∑ =
:
Ta có:
{
}
2
00,01,10,11
L =
- Tập hợp tất cả các xâu nhị phân có ñộ dài bằng 2.
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
11

{
}
3
000,001,010,011,100,101,110,111
L =
- Tập hợp tất cả các xâu nhị phân có
ñộ dài bằng 3.
Tương tự:
n
L
là tập hợp tất cả các xâu nhị phân có ñộ dài bằng n.
Vậy
*
L

là tập hợp tất cả các xâu nhị phân.
1.2.7. ðịnh nghĩa: Cho hai bảng chữ cái


'

. Ánh xạ f:
* *
'
∑ →∑
thỏa
mãn ñiều kiện:
( ) ( ) ( )
f f f
αβ α β
=
với mọi từ
*
,
α β
∈∑
(1)
ñượ
c g

i là m

t
cấu xạ.


ðố
i v

i ngôn ng

L trên

,
{
}
( ) ( )
f L f L
α α
= ∈
là ngôn ng

trên
'

. Theo
ñ
i

u ki

n (1),
ñể
xác
ñị
nh c


u x

f ta ch

c

n li

t kê m

i ph

n t

c

a f(a) trên
'

v

i a ch

y trên m

i ch

cái c


a

.
C

u x

f g

i là
không xóa
( t
ươ
ng

ng
chữ-thành-chữ
) n
ế
u
( )
f a
ε

(t
ươ
ng

ng
( ) '

f a
∈∑
) v

i m

i
a
∈∑
.
Ví dụ 9: Xét bảng chữ cái tiếng anh
{
}
, , ,
a b z
∑ =
. Mỗi cấu xạ chữ - thành-
chữ f
i
:
* *
∑ →∑
,
0 25
i
≤ ≤
ñược xác ñịnh: Cấu xạ biến mỗi chữ thành mỗi
chữ ñứng sau nó i vị trí trong bảng chữ cái, trong ñó phần cuối của bảng chữ cái
ñược nối tiếp vòng tròn lên phần ñầu.
Chẳng hạn:

3 7 25
( ) , ( ) , ( )
f a d f y f f z y
= = =

Dễ dàng thấy rằng các cấu xạ
i
f
có tính chất giao hoán:
,
i j j i
f f f f i j N
= ∀ ∈
 

26 0
1
i i
f f f i

= ∀ ≥


1.3. Văn phạm và ngôn ngữ sinh bởi văn phạm
Ta có thể hình dung một văn phạm như một “thiết bị tự ñộng” mà nó có
khả năng sinh ra một tập hợp các từ trên một bảng chữ cái cho trước. Mỗi từ
ñược sinh ra sau một số hữu hạn bước thực hiện các quy tắc của văn phạm.
Việc xác ñịnh một ngôn ngữ trên bảng chữ cái cho trước có thể ñược thực
hiện bằng một trong các cách thức sau:
Cách 1: ðối với mỗi từ thuộc ngôn ngữ ñã cho, ta có thể chọn một quy

cách hoạt ñộng của “thiết bị tự ñộng” ñể sau một số bước làm việc hữu hạn, nó
dừng và sinh ra chính từ ñó.
Cách 2: “Thiết bị tự ñộng” có khả năng lần lượt sinh ra tất cả các từ
trong ngôn ngữ ñã cho.
Cách 3: Với mỗi từ
ω
cho trước, “thiết bị tự ñộng” có thể cho biết từ ñó
có thuộc ngôn ngữ ñã cho hay không
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
12

Trong lý thuyết văn phạm, người ta chứng minh ñược rằng ba cách thức
trên là tương ñương nhau hay văn phạm làm việc theo các cách trên là tương
ñương nhau. Vì vậy, ở ñây ta quan tâm ñến cách thứ nhất, tức là xét văn phạm
như một “thiết bị tự ñộng” sinh ra các từ. Vì lẽ ñó, người ta còn gọi các “thiết
bị tự ñộng” ñó là văn phạm sinh.
1.3.1. ðịnh nghĩa: Văn phạm G là một bộ sắp thứ tự gồm 4 thành phần:
, , ,
G S P
= ∑ ∆
.
Trong ñó:
a)

là một bảng chữ cái, gọi là bảng chữ kết thúc hay từ ñiển hỗ trợ, 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 hỗ trợ.
b)

là một bảng chữ cái,
∆ ∩ ∑ = ∅

, gọi là bảng chữ không kết thúc hay từ
ñiển cơ bản, 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 cơ bản.
c)
S
∈∆
ñược gọi là kí hiệu ñầu.
d) P là tập hợp các cặp thứ tự
,
α β
< >
, trong ñó
*
, ( )
α β
∈ ∑∪∆
và trong
α

ch

a ít nh

t m

t kí hi

u không k
ế
t thúc, P

ñượ
c g

i là
tập các quy tắc thay thế,
,
α β
< >

ñượ
c g

i là m

t
quy tắc
hay
sản xuất
và th
ườ
ng
ñượ
c vi
ế
t cho thu

n
ti

n là

α β

,
α

ñượ
c g

i là
vế trái

β

ñ
u

c g

i là
vế phải
c

a quy t

c này.
Ví dụ 10: Các bộ bốn sau là các văn phạm:
1
2
{0,1},{ }, ,{ 0 1, }
{ , },{ , }, ,{ , , }

G S S S S S
G a b S A S S Ab A aAb A
ε
ε
=< → → >
=< → → → >

3
{ , , },{ , , , }, ,{ , , , , , , }
G a b c S A B C S S ABC A aA B bB C cC A a B b C c
=< → → → → → → → >

1.3.2. ðịnh nghĩa: Cho văn phạm
, , ,
G S P
=< ∑ ∆ >

*
, ( )
η ω
∈ ∑∪∆
. 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
không sợ nhầm lẫn), nếu tồn tại quy tắc
P
α β
→ ∈

*
, ( )
δ γ
∈ ∑∪∆
sao cho
,
η γαδ ω γβδ
= =
.
ðiều này có nghĩa là nếu
η
nhận vế trái
α
của quy tắc
α β

như là từ con thì
ta thay
α
bằng
β

ñể ñược từ mới
ω
.
1.3.3. ðịnh nghĩa: Cho văn phạm
, , ,
G S P
=< ∑ ∆ >

*
, ( )
η ω
∈ ∑∪∆
. Ta nói
ω
ñược suy dẫn từ
η
trong G, kí hiệu
G
η ω
hay ngắn gọn là
G
η ω
(nếu không
sợ nhầm lẫn), nếu
η ω
=
hoặc tồn tại một dãy
*
0 1
, , , ( )

k
ω ω ω
∈ ∑∪∆
sao cho
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
13

0
,
k
ω η ω ω
= =

1
,
i i
G
ω ω

v

i i=1, 2, …,k. Khi
ñ
ó dãy
0 1
, , ,
k
ω ω ω

ñượ

c g

i
là m

t
dẫn xuất của
ω
từ
η
trong G và k ñược gọi là ñộ dài của dẫn xuất này.
Nếu
i
ω
ñược dẫn xuất trực tiếp từ
1
i
ω

bằng việc áp dụng một quy tắc nào ñó
trong G thì ta nói quy tắc p ñược áp dụng ở bước thứ i.
1.3.4. ðịnh nghĩa: Cho văn phạm
, , ,
G S P
=< ∑ ∆ >
. Từ
*
ω
∈∑
ñược gọi là sinh

bởi văn phạm G nếu tồn tại suy dẫn
S G
ω
. Ngôn ngữ sinh bởi văn phạm G
ñược kí hiệu là L(G), là tập hợp xác ñịnh bởi:
*
( ) { }
L G S G
ω ω
= ∈∑
.
Hai văn phạm G
1
và G
2
ñược gọi là tương ñương nếu L(G
1
) = L(G
2
).
Ví dụ 11:
1) Xét văn phạm
1
{0,1},{ }, ,{ 0 1, }
G S S S S S
ε
=< → → >
. Từ 0
4
1

4
ñược suy dẫn
từ S bằng dãy dẫn xuất ñộ dài 5:
4 4
0 1 00 11 000 111 0000 1111 0 1
S S S S S− − − − −

Bằng việc sử dụng n lần (
0
n

) quy tắc 1 rồi quy tắc 2, ta có:
0 1
n n
S =
. Do ñó
1
( ) {0 1 0}.
n n
L G n= ≥

2) Xét văn phạm
2
{ , },{ , }, ,{ , , }
G a b S A S S Ab A aAb A
ε
=< → → → >

Sử dụng quy tắc 1, rồi n lần (
0

n

) quy tắc 2, sau ñó sử dụng quy tắc 3 ñể kết
thúc, ta có:
1
.
n n n n
S Ab a Ab b a b
+
− = −

Do ñó
1
2
( ) { 0}.
n n
L G a b n
+
= ≥

3) Xét văn phạm
3
{ , , },{ , , , }, ,{ , , , , , , }
G a b c S A B C S S ABC A aA B bB C cC A a B b C c
=< → → → → → → → >

Sử dụng quy tắc 1, rồi m – 1 lần quy tắc 2 (m>0), n-1 lần quy tắc 3 (n>0), k-1 lần
quy tắc 4 (k>0) (có thể xen kẽ). Sau ñó, ñể kết thúc ta sử dụng quy tắc 5, 6, 7 ta
có:
.

m n k m n k
S ABC a Ab Bc C a b c
− = =

Do ñó
2
( ) { 1, 1, 1}.
m n k
L G a b c m n k
= ≥ ≥ ≥

Ví dụ 12:
1) Cho văn phạm
1
{ , },{ }, ,{ , } ,
G a b S S S aSb S ab
=< → → >
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
14

2
{ , },{ , , }, ,{ , , , }
G a b S A B S S ASB A a B b S ab
=< → → → → >
Dễ dàng có ñuợc L(G
1
) = L(G
2
)=
{

}
1
n n
a b n


Hay G
1
và G
2
là tương ñương nhau.
Chẳng hạn như trong G
1
ta có thể viết hai quy tắc ñó dưới dạng
.
S aSb ab


2) Cho 2 vă
n ph

m
3 3 4 4
,{ }, , , ,{ }, ,
G S S P G S S P
=< ∑ > =< ∑ >
, trong
ñ
ó
{0,1,2,3,4,5,6,7,8,9}


=

3
{ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9}
P S S S S S S S S S S S
= →

4
{ 01 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 }
P S S S S S S S S S S
= →
.
S

d

ng k-1 l

n (
1
k

) các quy t

c trong nhóm 10 quy t

c cu

i c


a G
3
, r

i 1 quy
t

c trong nhóm 9 quy t

c c

a nó, ta có:
1 2 1 1 2 1 1 1

k k k
S Si Si i Si i i i i i
− −
− − − −
. Trong
ñ
ó
1 2 1
, , , 0, 1.
k k
i i i i

≥ ≥

Do

ñ
ó,
3
( ) { 1}
L G n n
= ≥
. L

p lu

n nh
ư
trên ta
ñượ
c
4
( ) {
L G n N n
= ∈
có ch

s


hàng
ñơ
n v

tùy ý các ch


s

khác
1}
n

. Vì v

y G
3
và G
4
không t
ươ
ng
ñươ
ng
nhau.
1.3.5. Bổ ñề: Cho văn phạm
, , ,
G S P
=< ∑ ∆ >
. Khi ñó nếu tồn tại trong P quy
tắc chứa kí hiệu ñầu S ở vế phải thì tồn tại văn phạm G’ tương ñương với G mà
các quy tắc của nó không chứa ký hiệu ñầu ở vế phải.
Chứng minh: Lấy
' ( )
S
∉ ∑∪∆
, xét văn phạm

' , { '}, ', '
G S S P
=< ∑ ∆ ∪ >

Trong ñó
' { ' }
P P S S P
α α
= ∪ → → ∈
. Rõ ràng trong P’ không chứ
a quy t

c
nào có S’

v
ế
ph

i. Ta ch

ng minh L(G) = L(G’)
+
( )
L G
ω

(hay
S G
ω

): Gi

s

dãy d

n xu

t c

a
ω

1

S G G G G
α ω ω
.

S G
α
nên ta có
,
S P
α
→ ∈
do
ñ
ó
' ',

S P
α
→ ∈
và vì
'
P P

nên ta có
' ' '
S G G
α ω
. V

y hay
( ')
L G
ω

.
+
( ')
L G
ω

(hay
' '
S G
ω
): Gi


s

dãy d

n xu

t c

a
ω

' ' '
S G G
α ω
.

' '
S G
α
nên ta có
' ',
S P
α
→ ∈
do
ñ
ó t

n t


i
S P
α
→ ∈
. M

t khác, trong
α

không ch

a S’ nên các suy d

n tr

c ti
ế
p trong
'
G
α ω
ch

s

d

ng các quy t

c

c

a P. V

y ta có
S G
ω
hay
( )
L G
ω

.
1.3.6. ðịnh nghĩa : Văn phạm
, , ,
G S P
=< ∑ ∆ >
mà không có một ràng buộc nào
trên các quy tắc của nó ñược gọi là văn phạm tổng quát hay văn phạm nhóm 0.
Như vậy, G là văn phạm nhóm 0 khi và chỉ khi các quy tắc của nó có dạng
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
15

A
α β ω

, trong ñó
(
)
*

, , ,A
α β ω
∈∆ ∈ ∑∪∆
.
1.3.7. ðịnh nghĩa : Văn phạm
, , ,
G S P
=< ∑ ∆ >
mà các quy tắc của nó có dạng
A
α β αωβ

, trong ñó
(
)
*
, , ,A
α β ω
∈∆ ∈ ∑∪∆
,
ω ε

, ñược gọi là văn phạm
cảm ngữ cảnh hay văn phạm nhóm 1.
Các văn phạm mà các quy tắc của nó có dạng trên ñồng thời chứa thêm quy tắc
S
ε

, miễn sao kí kiệu S ñầu không xuất hiện ở bất kì quy tắc nào cũng ñược
xếp vào lớp văn phạm nhóm 1.

Ví dụ 13 : Cho văn phạm
{ , , },{ , , , }, ,
G a b c S A B C S P
=< >
trong ñó
{ , , , , , , }
P S aSAC S abC CA BA BA BC BC AC bA bb C c
= → → → → → → →

Khi ñó văn phạm G là văn phạm cảm ngữ cảnh.
Sử dụng n-1 lần quy tắc 1 (n>0), rồi quy tắc 2, kế ñến sử dụng liên tiếp quy tắc 3,
4, 5 (ñể ñổi chỗ A và C), sau ñó sử dụng n-1 lần quy tắc 6 và n lần quy tắc 7, ta
có :
1
1 1 1
( ) ( )
n
n n n n n n n n n
S a S AC a bC AC a bA C a b c

− − −
= − = =

Từ ñó suy ra L(G)=
{
}
1
n n n
a b c n



1.3.8. ðịnh nghĩa: Văn phạm
, , ,
G S P
=<
∑ ∆ >
mà các quy tắc của nó có dạng
A
ω

, trong ñó
(
)
*
,A
ω
∈∆ ∈

∪∆
,
ω ε

ñược gọi là văn phạm phi ngữ
cảnh hay là văn phạm nhóm 2.
Các văn phạm mà các quy tắc của chúng có dạng trên, ñồng thời chứa thêm quy
tắc
S
ε

, miễn sao kí hiệu ñầu S không xuất hiện ở vế phải của bất kì quy tắc

nào cũng ñược xếp vào lớp văn phạm nhóm 2.
Ví dụ 14:
1) Cho văn phạm
1
{ , },{ , }, ,
G a b S A S P
=< >

Trong ñó:
{ , , , }
P S Sa S Aa A aAb A ab
= → → → →
. Khi ñó G
1
là văn phạm phi
ngữ cảnh.
Sử dụng (m-1) lần quy tắc 1 (m

1), rồi quy tắc 2, sau ñó sử dụng (n-1) lần quy
tắc 3 (n

1), cuối cùng là quy tắc 4 ta có:
1
1 1 1
n
m m n m n n m
S Sa Aaa a Ab a a b a

− − −
= − = −


Từ ñó suy ra L(G
1
)=
{ 1, 1}
n n m
a b a n m
≥ ≥
.
2) Cho văn phạm
2
{0,1},{ }, ,{ , 0 1, 1 0, }
G S S S SS S S S S S
ε
=< → → → → >
. Khi
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
16

ñó G
2
không là văn phạm phi ngữ cảnh vì có quy tắc
S
ε

, mà S lại xuất hiện ở
vế phải của một quy tắc khác. Theo bổ ñề 1.2.6, G
2
tương ñương với văn
phạm

2
' {0,1},{ , '}, ', '
G S S S P
=< >

Trong ñó:
' { , 0 1, 1 0, , ' , ' 0 1, ' 1 0, ' }
P S SS S S S S S S SS S S S S S
ε ε
= → → → → → → → →

Ở ñây G
2
’ cũng không là phi ngữ cảnh. Tuy nhiên, văn phạm G
2
’’ sau là phi ngữ
cảnh và tương ñương với G
2
’, nên cũng tương ñương với văn phạm G
2

2
'' {0,1},{ , '}, ', ''
G S S S P
=< >
.
Trong ñó
'' { , 0 1, 1 0, 01, 10,
' , ' 0 1, ' 1 0, ' 01, ' 10, }
P S SS S S S S S S

S SS S S S S S S S
ε
= → → → → →
→ → → → → →

T
ừ các quy tắc của G
2
ta có ñược:
*
2 2 2
( '') ( ') ( ) { {0,1}
L G L G L G
ω
= = = ∈
số các chữ số 0 và 1 trong
ω
bằng nhau}.
1.3.9. ðịnh nghĩa: Văn phạm
, , ,
G S P
=< ∑ ∆ >
mà các quy tắc của nó có dạng
,
A aB A a
→ →
, trong ñó
, , ,A B a
ω ε
∈∆ ∈



ñược gọi là văn phạm chính quy
hay là văn phạm nhóm 3.
Các văn phạm mà quy tắc của chúng có dạng trên, ñồng thời chứa thêm quy tắc
S
ε

, miễn sao các kí hiệu ñầu S không xuất hiện ở bất kì vế phải của bất kì
quy tắc nào cũng ñược xếp vào lớp các văn phạm nhóm 3.
Ví dụ 15:
1) Cho văn phạm:
1
{1},{ , , }, ,{ , 1 , 1 , 1 , 1}
G S A B S S S A S B B A A
ε
=< → → → → → >

Khi ñó, G
1
là văn phạm chính quy và
2
1
( ) {1 0}
n
L G n
= ≥
.
Thật vậy, sử dụng quy tắc 1 ta có
2

1
n
S

, với n=0, sử dụng quy tắc 2 rồi sử dụng
n-1 lần liên tiếp cặp quy tắc 3 và 4 (n>0), cuối cùng là quy tắc 5 ta có:
2 2 2 2 2
1 11 111 1(1 ) 1(1 )1 1
n n n
S A B A A
− −
− − − − = − =

2) Cho văn phạm
2
{0,1},{ , }, ,{ 0 , 0 , 1 , 0}
G S A S s A A A A A A
=< → → → → >

Khi ñó G
2
là văn phạm chính quy và
*
2
( ) {0 0 {0,1} }
L G
ω ω
= ∈

Thật vậy sử dụng quy tắc 1, rồi hữu hạn tùy ý có thể xen cả các quy tắc 2 và 3,

cuối cùng là quy tắc 4, ta có:
0 0 0 0
S A A
ω ω
− = −

1.3.10. ðịnh nghĩa: Từ các ñịnh nghĩa trên, ta thấy lớp văn phạm tổng quát là
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
17

rộng nhất, nó chứa ñựng các văn phạm cảm ngữ cảnh, lớp văn phạm cảm ngữ
cảnh chứa các văn phạm phi ngữ cảnh và lớp văn phạm phi ngữ cảnh chứa các
văn phạm chính quy. Hệ thống các lớp văn phạm này gọi là sự phân cấp
Chomsky.
Ngôn ngữ hình thức ñược gọi là ngôn ngữ tổng quát (tương ứng cảm ngữ
cảnh, phi ngữ cảnh, chính quy) nếu tồn tại văn phạm tổng quát (tương ứng cảm
ngữ cảnh, phi ngữ cảnh, chính quy) sinh ra nó. Vì vậy, ñối với các lớp ngôn ngữ
ta có bao hàm thức:
{ngôn ngữ chính quy}

{ngôn ngữ phi ngữ cảnh}

{ngôn ngữ cảm ngữ
cảnh}

{ngôn ngữ tổng quát}.
Ta cũng thấy, về mặt cấu trúc ngữ pháp thì các quy tắc của các văn phạm
phi ngữ cảnh và văn phạm chính quy là ñơn giản hơn cả và chúng có nhiều ứng
dụng trong việc thiết kế ngôn ngữ lập trình và trong nghiên cứu về chương trình
dịch…Vì vậy, trong các phần tiếp theo, chúng ta sẽ dành thêm sự quan tâm tới

hai lớp văn phạm ñó.
Ví dụ 16: Cho bảng chữ cái
1 2
{ , , , }
n
a a a
∑ =
.
Khi ñó các ngôn ngữ
1 1 2
{ }
n
L a a a
ω
= =
,
2 3
,L L
+
= ∑ = ∅
là ngôn ngữ chính quy
trên bảng chữ cái


Thật vậy,
1 1 2 2 3 3 4 4
( ), ( ), ( ), ( )
L L G L L G L L G L L G
= = = =
, trong ñó

1 1 1 1 1 1 2 2 2 1 1 1
2
3
4
,{ , , , }, ,{ , , , , }
,{ }, ,{ , }
,{ , }, ,{ , , , , }
,{ }, ,{ }
n n n n n n
G S A A S S a A A a A A a A A a
G S S S aS S a a
G S A S S S a S aA A aA A a a
G S S S aS a
ε
− − − − −
=< ∑ → → → → >
=< ∑ → → ∈∑ >
=< ∑ → → → → → ∈∑ >
=< ∑ → ∈∑ >

Là các văn phạm chính quy (Riêng ñối với G
4
, nó làm việc không bao giờ dừng,
tức là không có
*
,
ω ω ε
∈∑ ≠
mà G
4

sinh ra, hay G
4
sinh ra ngôn ng



.
2) Xét hai ngôn ng

:
*
5
*
6
{ { , } },
{ { , } }
R
L a b
L a b
ωω ω
ωω ω
= ∈
= ∈

(
R
ω
còn
ñượ
c g


i là

nh g
ươ
ng c

a
ω
và nh
ư
ta
ñ
ã bi
ế
t, nó nh

n
ñượ
c b

ng cách
vi
ế
t
ω
theo h
ướ
ng ng
ượ

c l

i).
M

c dù, xem qua thì L
5
và L
6
ph

c t

p nh
ư
nhau, vi

c xác
ñị
nh L
5
b

ng v
ă
n
ph

m
ñơ

n gi

n h
ơ
n r

t nhi

u. Th

t v

y, L
5
sinh b

i v
ă
n ph

m phi ng

c

nh sau:
5
{ , },{ , }, ,{ , , , , , }
G a b S A S S S A A aAa A bAb A aa A bb
ε
=< → → → → → → >


Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
18

ðể
sinh ra L
6
ta xét v
ă
n ph

m c

m ng

c

nh sau
ñ
ây:
{
}
6 6
, ,{ , , , , , }, ,
G a b S A B C D E S P
=< >

Trong
ñ
ó

6
{ , , , , ,
, , , , , ,
, , , , }
P S ABC AB aAD AB bAE Da aD Db bD
Ea aE Eb bE DC BaC EC BbC aB Ba bB Bb
aAB a bAB b aC a bC b S
ε
= → → → → →
→ → → → → →
→ → → → →

và b

ng vi

c s

d

ng các quy t

c trên v

i ph
ươ
ng pháp quy n

p ta có
ñượ

c
L(G
6
)=L
6
.
1.3.11. Bổ ñề: Nếu L là một ngôn ngữ cảm ngữ cảnh (tương ứng phi ngữ cảnh,
chính quy) thì
{ }
L
ε


\{ }
L
ε
cũng vậy.
Chứng minh: a)
{ }: : { }
L L L L
ε ε ε
∪ ∈ ∪ =

:
L
ε

Giả sử L=L(G), với
, , ,
G S P

=<

∆ >
là văn phạm ngữ cảnh ( tương ứng
phi ngữ cảnh, chính quy). Theo bổ ñề 1.2.6 tồn tại
' , { '}, ', '
G S S P
=< ∑ ∆ ∪ >

tương ñương với G và S’ không xuất hiện ở bất kì quy tắc nào trong P’.
Khi ñó văn phạm:
'' , { '}, ', ' { ' }
G S S P S
ε
=< ∑ ∆ ∪ ∪ → >
cùng loại với G’ và
L(G’’)=L(G’)

{ }
ε
=L(G)

{ }
ε
=L

{ }
ε
.
b)

\{ }: : \ { }
L L L L
ε ε ε
∉ =

L
ε

: Giả sử L=L(G), với
, , ,
G S P
=<

∆ >
là văn phạm cảm ngữ cảnh (tương
ứng phi ngữ cảnh, chính quy). Khi ñó
S P
ε
→ ∈
và S không xuất hiện ở vế phải
bất kì một quy tắc nào trong P. Khi ñó văn phạm
' , , , \{ }
G S P s
ε
=<

∆ → >

cùng nhóm với G và L(G’)=L(G)\{
ε

}=L{
ε
}\{
ε
}.
1.4. Một số tính chất của ngôn ngữ
1.4.1. ðịnh nghĩa: Giả sử L
1
và L
2
là hai ngôn ngữ bất kì ñược sinh bởi văn
phạm và

là một phép toán nào ñó trên lớp các ngôn ngữ. Nếu L
1


L
2
là ngôn
ngữ cũng sinh bởi một văn phạm thì ta nói lớp ngôn ngữ ñó do văn phạm sinh ra
ñóng ñối với phép toán

.
1.4.2. ðịnh lý: Lớp ngôn ngữ sinh ra bởi văn phạm là ñóng ñối với phép hợp.
Chứng minh: Giả sử L
1
, L
2
là ngôn ngữ ñược sinh bởi văn phạm G

1
, G
2
hay
L
1
= L(G
1
), L
2
= L(G
2
). Chứng minh tồn tại văn phạm G sao cho L(G) = L
1

L
2

Giả sử
1 1 1 1 1
, , ,
G S P
=< ∑ ∆ >

2 2 2 2 2
, , ,
G S P
=< ∑ ∆ >
.
Không mất tính tổng quát, giả thiết rằng

1 2 2 2 1 1
( ) ( )
∆ ∩ ∑ ∪∆ = ∆ ∩ ∑ ∪∆ = ∅
.
Lấy
1 1 2 2
S
∉∑ ∪∆ ∪ ∑ ∪∆
.
Xét văn phạm
1 2 1 2
, { }, ,
G S S P
=< ∑ ∪∑ ∆ ∪ ∆ ∪ >
, trong ñó:
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
19

1 1 2 2 1 1
( \{ }) ( \{ }) (
P P S P S S S P
ε ε ε ε
= → ∪ → ∪ → → ∈
hoặc
2 2
S P
ε
→ ∈ ∪

1 2

{ , }
S S S S
→ →

(Ở ñây ta hiểu rằng nếu
1 1
S P
ε
→ ∈
(tương ứng
2 2
S P
ε
→ ∈
thì S
1
(tương ứng S
2
)
không xuất hiện ở vế phải của bất kì một quy tắc nào trong P
1
(tương ứng P
2
).
a)
( ) : :
L G
ω ω ε
∈ =
Tồn tại

S P
ε
→ ∈
, nên có
1 1
S P
ε
→ ∈
hoặc
2 2
S P
ε
→ ∈
.
Do ñó
1 2
L L
ω ε
= ∈ ∪
.
ω ε

: Tồn tại suy dẫn
S G
ω
và giả sử suy dẫn này là

S G G G G
α β ω
.

T


ñ
ó, ta có
( )
S P
α α ε
→ ∈ ≠
, nên ta có
1
S
α
=
ho

c
2
S
α
=
. N
ế
u
1
S
α
=
thì
dãy d


n xu

t
, , ,
α β ω


trong G
1
, nên ta có
1 1 1 1
S G G G
β ω
, t

c là
1
( )
L G
ω

. N
ế
u
2
S
α
=
thì dãy d


n xu

t
, , ,
α β ω


trong G
2
, nên ta có
2 2 2 2
S G G G
β ω
, t

c là
2
( )
L G
ω

. Do
ñ
ó
1 2
L L
ω
∈ ∪
.

b)
1 1
: :
L L
ω ω ε
∈ ∪ =
T

n t

i
1 1
S P
ε
→ ∈
ho

c
2 2
S P
ε
→ ∈
, nên có
S P
ε
→ ∈
.
Do
ñ
ó

( )
L G
ω ε
= ∈
.
ω ε

:
1
L
ω

ho

c
2
L
ω

. N
ế
u
1
L
ω

(t
ươ
ng


ng
2
L
ω

0 thì ta có suy d

n
1 1
S G
ω
(t
ươ
ng

ng
2 2
S G
ω
) v

i các quy t

c
ñượ
c s

d

ng thu


c
1 1
\{ }
P S
ε


(t
ươ
ng

ng
2 2
\{ }
P S
ε

). Khi
ñ
ó ta có
1
S G S G
ω
(t
ươ
ng

ng
2

S G S G
ω
).
Do
ñ
ó
( )
L G
ω

.
Vì v

y,
1 2
( )
L G L L
= ∪
.
T

p quy t

c P c

a v
ă
n ph

m G


trên có th


ñượ
c xác
ñị
nh nh
ư
sau mà ta v

n có
1 2
( )
L G L L
= ∪

1 1 2 2 1 1
( \ { }) ( \{ }) {
P P S P S S S P
ε ε α α
= → ∪ → ∪ → → ∈
ho

c
2 2
}
S P
α
→ ∈

.
1.4.3. Hệ quả : Nếu L
1
hoặc L
2
là hai ngôn ngữ chính quy (tương ứng phi ngữ
cảnh, cảm ngữ cảnh) thì
1 2
L L

cũng là ngôn ngữ chính quy (tương ứng phi ngữ
cảnh, cảm ngữ cảnh).
Ví dụ 17 : Cho hai ngôn ngữ
2
1
{ 0}
n n
L a cb n
= ≥

2
2
{ 0}
n n
L a cb n
= ≥
trên bảng
chữ cái
{ , , }
a b c

∑ =
. Khi ñó L
1
= L(G
1
) và L
2
= L(G
2
), trong ñó
1 1 1 1 1 1
2 2 2 2 2 2
,{ , , }, ,{ , , , } ;
,{ , , }, ,{ , , , }
G S A B S S AS B S c A a B bb
G S C D S S CS D S c C aa D b
=< ∑ → → → → >
=< ∑ → → → → >

Thật vậy, trong G
1
sử dụng n lần (
0
n

) quy tắc 1 sau ñó sử dụng n lần quy tắc
3, n lần quy tắc 4 và quy tắc 2 ta có :
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
20


2
1 1 1 1
( )
n n n n n n
S G A S B G a c bb a cb
=

Tương tự, trong G
2
ta có
2
2 2
n n
S G a cb
. Từ ñó văn phạm G và G’ :
1 2
1 2
,{ , , , , , , }, , ;
' ,{ , , , , , , }, , '
G S A B S C D S S P
G S A B S C D S S P
=<

>
=<

>

Trong ñó :
1 1 1 2 2 2

1 2
{ , , , , , , , ,
, }
P S AS B S c A a B bb S CS D S c C aa D b
S S S S
= → → → → → → → →
→ →
1 1 1 2 2 2 1
2
' { , , , , , , , , ,
, }
P S AS B S c A a B bb S CS D S c C aa D b S AS B
S CS D S c
= → → → → → → → → →
→ →

Ở ñây, G
1
, G
2
là hai văn phạm phi ngữ cảnh, G, G’ cũng là hai văn phạm phi ngữ
c
ảnh và L(G) = L(G’) = L
2


L
2
= {a
n

cb
2n
, a
2n
cb
n
n

0}.
1.4.4. ðịnh lý : Lớp ngôn ngữ sinh ra bởi văn phạm là ñóng ñối với phép ghép.
Chứng minh : Giả sử L
1
, L
2
là ngôn ngữ ñược sinh bởi văn phạm G
1
, G
2
hay
L
1
= L(G
1
), L
2
= L(G
2
)
Ta chứng minh tồn tại văn phạm G sao cho L(G) = L
1

L
2

Giả sử
1 1 1 1 1
, , ,
G S P
=< ∑ ∆ >

2 2 2 2 2
, , ,
G S P
=< ∑ ∆ >
.
Không mất tính tổng quát, giả thiết rằng
1 2 2 2 1 1
( ) ( )
∆ ∩ ∑ ∪∆ = ∆ ∩ ∑ ∪∆ = ∅
.
Lấy
1 1 2 2
S
∉∑ ∪∆ ∪ ∑ ∪∆
.
Xét văn phạm
1 2 1 2
, { }, ,
G S S P
=< ∑ ∪∑ ∆ ∪ ∆ ∪ >
, trong ñó

1 1 2 2 1 2 2 2 1 1
( \ { }) ( \{ }) { } { }
P P S P S S S S P S S S P
ε ε ε ε
= → ∪ → ∪ → → ∈ ∪ → → ∈ ∪
1 1
{
S S P
ε ε
→ → ∈

2 2
S P
ε
→ ∈ ∪
1 2
{ }
S S S


(


ñ
ây ta hi

u r

ng n
ế

u
1 1
S P
ε
→ ∈
(t
ươ
ng

ng
2 2
S P
ε
→ ∈
thì S
1
(t
ươ
ng

ng S
2
)
không xu

t hi

n

v

ế
ph

i c

a b

t kì m

t quy t

c nào trong P
1
(t
ươ
ng

ng P
2
).
V

i v
ă
n ph

m G này, d

dàng có
ñượ

c L(G)

L
1
L
2
và L
1
L
2

L(G).
ðặ
c bi

t, khi G
1
và G
2
là hai v
ă
n ph

m chính quy thì ta có th

xây d

ng v
ă
n

ph

m chính quy G’ sao cho L(G’)=L
1
L
2

a)
1
L
ε


2
L
ε

(t

c là
1 1
S P
ε
→ ∉

2 2
S P
ε
→ ∉
:

V
ă
n ph

m chính quy G’ c

n tìm là G
1 2 1 2 1
' , , , '
G S P
=< ∑ ∪∑ ∆ ∪ ∆ >
, trong
ñ
ó
1 1 2 1 2
' ( \{ }) { }
P P A a A a P A aS A a P P
= → → ∈ ∪ → → ∈ ∪

b)
1
L
ε


2
L
ε

:

ðặ
t L
1
’ = L
1
\{
ε
} thì theo b


ñề
1.2.12, ta xây d

ng
ñượ
c
v
ă
n ph

m chính quy G
1
’ sao cho L(G
1
’) = L
1
’. Khi
ñ
ó theo a), ta có v
ă

n ph

m G’
sao cho L(G’) = L
1
’L
2
. T


1 2 1 2 1 2 2
( ' { }) '
L L L L L L L
ε
= ∪ = ∪
và t

cách xây d

ng
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
21

văn phạm trong chứng minh ñịnh lý 1.3.2, ta tìm ñược văn phạm chính quy G’’
sao cho L(G’’) = L
1
L
2
.
c)

1
L
ε


2
L
ε

, tương tự như trường hợp b)
d)
1
L
ε


2
L
ε

: ðặt L
1
’ = L
1
\{
ε
} và L
2
’ = L
2

\{
ε
} thì ta có :
1 2 1 2 1 2 1 2
( ' { })( ' { }) ' ' ' ' { }
L L L L L L L L
ε ε ε
= ∪ ∪ = ∪ ∪ ∪
, và lập luận như trên ta tìm
ñược văn phạm chính quy sinh ra ngôn ngữ L
1
L
2
.
1.4.5. Hệ quả : Nếu L
1
và L
2
là hai ngôn ngữ chính quy (tương ứng phi ngữ
cảnh, cảm ngữ cảnh) thì L
1
L
2
cũng là ngôn ngữ chính quy (tương ứng phi ngữ
cảnh, cảm ngữ cảnh).
Ví dụ 18 : 1) Cho hai ngôn ngữ
1
{ 1}
n n
L a b n

= ≥

2
{ 1}
n
L c n
= ≥
. Dễ dàng có
ñược L
1
=L(G
1
) và L
2
=L(G
2
), trong ñó
1 1 1 1 1 1
2 2 2 2 2 2
{ , },{ }, ,{ , } ,
{ },{ }, ,{ , }
G a b S S S aS b S ab
G c S S S cS S c
=< → → >
=< → → >

Từ ñó nhận ñược văn phạm phi ngữ cảnh G :
1 2 1 1 1 2 2 2 1 2
{ , , },{ , , }, ,{ , ,{ , , }
G a b c S S S S S aS b S ab S cS S c S S S

=< → → → → → >
,
thỏa mãn L(G)=L
1
L
2
=
{ 1, 1}
n n m
a b c n m
≥ ≥
.
2) Cho hai ngôn ngữ chính quy
3
{ 0}
n
L ba n
= ≥

4
{ 0}
n
L b a n
= ≥
. Ta có ngay
L
3
= L(G
3
), L

4
= L(G
4
), trong ñó G
3
và G
4
là hai văn phạm chính quy:
1 1 1 1 1
4 2 2 2 2 2
{ , },{ , }, ,{ , , , } ,
{ , },{ }, ,{ , }
G a b S A S S b S bA A aA A a
G a b S S S bS S a
=< → → → → >
=< → → >

T
ừ ñó ta nhận ñược văn phạm chính quy G’ :
1 2 1
1 1 2 2
' { , },{ , , }, , '} ,
' { , , , }
G a b S S S S P
P S bA A aA S bS S a
=< >
= → → → →

Thỏa mãn L(G’) = L
3

L
4
=
{ 0, 0}
n m
ba b a n m
≥ ≥

1.4.6. ðịnh lý : Nếu L là ngôn ngữ chính quy thì lặp L
*
của L cũng là ngôn ngữ
chính quy. Nói m
ột cách khác, lớp ngôn ngữ chính quy ñóng với phép toán một
ngôi l
ặp.
Chứng minh : Giả sử L = L(G), với
, , ,
G S P
=< ∑ ∆ >
là văn phạm chính quy.
Xét văn phạm
' , , , '
G S P
=< ∑ ∆ >
, trong ñó
' ( \{ }) { }
P P S A aS A a P
ε
= → ∪ → → ∈
.

Khi ñ
ó G’ là v
ă
n ph

m chính quy. Ta ch

ng minh L(G’)=L\
{ }
ε
.
a)
( ') :
L G
ω

Ta có
S G
ω
v

i
ω ε


'
S P
ε
→ ∉
. Không m


t tính ch

t t

ng
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
22

quát, ta có thể giả thiết kí hiệu ñầu S không xuất hiện ở vế phải của bất kì quy
tắc nào trong P. Giả sử dãy dẫn xuất của
ω
có sử dụng n-1 quy tắc của P dạng
A aS

. Khi ñó ta có :
1 1 1 2 2 1 2 1
' '
n n
S a S a S
ω ω ω ω ω ω ω ω

= = = = =



ñ
ây,
'
i i i

a
ω ω
=
. Nh
ư
v

y t

n t

i các quy t

c
1 1 2 2 1 1
, , ,
n n
A a S A a S A a S
− −
→ → →
trong P’ và do
ñ
ó t

n t

i các quy t

c
1 1 2 2 1 1

, , ,
n n
A a A a A a
− −
→ → →
trong P.
Ta có
1 1 1 1 1 2 2 2 2 2 1 1 1
' ' , ' ' , ,
n n n n n
S A a S A a S A a
ω ω ω ω ω ω ω ω ω
− − −
= − = = − = = − =

là các suy d

n trong G hay
1 2 1
, , , ( )
n
L G
ω ω ω


. M

t khác, suy d

n

n
S
ω
=

không s

d

ng m

t quy t

c nào khác ngoài quy t

c c

a P, nên
( )
n
L G
ω

.
V

y
*
n
n

L L
ω
∈ ⊂

b)
*
\{ }
L
ω ε

: T

n t

i s

nguyên d
ươ
ng n sao cho
n
L
ω

hay
1 2 1

n n
ω ω ω ω ω

=


trong
ñ
ó
1
\{ },1
L i n
ω ε
∈ ≤ ≤
. Nh
ư
v

y trong G có các suy d

n
' '
i i i i i
S A a
ω ω ω
= − =
và cu

i các suy d

n này có s

d

ng các quy t


c
,1
i i
A a i n
→ ≤ ≤
, do
ñ
ó ta có các quy t

c
i i
A a S

trong G’. T


ñ
ó ta có suy d

n
trong G’ :
1 1 1 2 2 1 2 1 1 1 2 1
' ' '
n n n n
S a S a S a S
ω ω ω ω ω ω ω ω ω ω ω
− − −
= = = = = =


Hay
( ')
L G
ω

.
Cu

i cùng, theo b


ñề
1.2.12, L(G) chính quy, kéo theo L(G)
{ }
ε

c
ũ
ng chính
quy.
1.4.7. Mệnh ñề : Mọi ngôn ngữ hữu hạn ñều là ngôn ngữ chính quy.
Chứng minh : Ngôn ngữ hữu hạn là hợp hữu hạn của các ngôn ngữ một từ, từ ví
dụ 13 (ngôn ngữ một từ là ngôn ngữ chính quy) và từ hệ quả 1.3.3 (hợp hữu hạn
của các ngôn ngữ chính quy là chính quy), ta có ngôn ngữ hữu hạn là chính quy.
Ví dụ 19 : Cho ngôn ngữ chính quy L={0, 01, 011, 0111}. Khi ñó L sinh bởi văn
phạm chính quy G=<{0,1}, {S, A, B, C}, S, P>.
Trong ñó
{ 0, 0 , 1, 1 , 1, 1 , 1}
P S S A A A B B B C C
= → → → → → → →

.
Văn phạm chính quy G’=<{0,1}, {S, A, B, C}, S, P’>.
Trong ñó
' { 0, 0 , 0 , 1, 1 , 1, 1 , 1 , 1, 1 }
P S S S S A A A B B B S B C C C S
= → → → → → → → → → →
sinh ra ngôn ngữ L
*
\
{ }
ε
. Do ñó văn phạm sinh ra ngôn ngữ L
*

Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
23

G’’=<{0,1}, {S’,S, A, B, C}, S’, P’’>.
Trong ñó
'' { 0, ' 0, ' 0 , 0 , ' 0 , 1 , 1 , 1, 1 ,
1 , 1, 1 , ' }.
P S S S S S A S A A S A B B B S
B C C C S S
ε
= → → → → → → → → →
→ → → →

Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
24



BÀI TẬP CHƯƠNG I
1. Tìm các ngôn ngữ L
1
, L
2
, L
3
sao cho :
a)
* * *
1 2 1 2
( )
L L L L


b)
* * *
1 2 1 2
( )
L L L L
∩ ≠ ∩

c)
* * *
1 2 1 2
( )
L L L L
∪ ≠ ∪


d)
* * * *
1 2 3 1 2 1 3
( ) ( ) ( )
L L L L L L L
∩ ≠ ∩
2.
Cho L
1
, L
2
, L
3
là các ngôn ng

trên b

ng ch

cái

. Chứng minh rằng :
a)
1 2 3 1 2 1 3 2 3 1 2 1 3 1
( ) , ( )
L L L L L L L L L L L L L L
∪ = ∪ ∪ = ∪

b)
* * * *

1 2 1 2
( ) ( )
L L L L
= ∪

3. Hãy xác ñịnh xem các văn phạm dưới ñây sinh ra ngôn ngữ nào ?
a) G=<{0,1}, {S, A}, S,
{ 0 , 1 , }
S A A S S
ε
→ → →
>.
b) G=<{a, b}, {S}, S,
{ , }
S SaS S b
→ →
>.
c) G=<{a, b, c}, {S}, S,
{ , , , }
S aca S bcb S aSa S bSb
→ → → →
>.
d) G=<{0, 1, 2,…, 9}, {S,A}, S,
{ , 01 2 3 4 5 6 7 9}
S SA A A
→ → >
.
4. Hãy thành lập các văn phạm sinh ra các ngôn ngữ dưới ñây:
a)
*

{ { } mod3 0}
L a
ω ω
= ∈ =
.
b)
2 1
{ 0}
n
L a n
+
= ≥

c)
*
{ { , } ( ) ( )} ( ( )
a b X
L a b n n n
ω ω ω ω
= ∈ >
là số chữ cái x có mặt trong
}
ω
.
d)
{ 0, }
m n
L a b n m n
= ≥ ≥


5. Hãy xây dựng các văn phạm chính quy sinh ra các ngôn ngữ sau ñây trên bảng
chữ cái
{0,1}
∑ =
;
a)
*
{0 1 }
L
ω ω
= ∈∑

b)
*
{L
ω
= ∈∑
trong
ω
chứa ñúng một chữ số 1}.
c)
*
{L
ω
= ∈∑
trong
ω
chứa ñúng một chữ số 0}.
d)
*

{L
ω
= ∈∑
ω
không kết thúc bằng hai chữ số 1}.
6. Hãy tìm văn phạm phi ngữ cảnh sinh ra ngôn ngữ sau:
{ 0, 0, }
n m
L a b n m n m
= ≥ ≥ ≠
.
7. Hãy xây dựng các văn phạm chính quy sinh ra các ngôn ngữ dưới ñây:
Bước ñầu tìm hiểu một số nội dung về ñại số tổ hợp trên các từ
25

a)
{( ) ( ) 1, 1}
m n
L baa aab n m
= ≥ ≥

b) L = {1}
*
{010}
*
(0)
*

c) L = {010}
*



{1100}
*
.
d)
{ 0, 0, 0}
m n k
L a b c n m k
= ≥ ≥ ≥

8. Chứng minh rằng lớp ngôn ngữ sinh bởi văn phạm là ñóng ñối với phép giao.

×