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

TÌM HIỂU VỀ BÀI TOÁN THỨ MƯỜI CỦA HILBERT

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 (1.16 MB, 81 trang )



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





NGUYỄN THU THẢO



TÌM HIỂU VỀ BÀI TOÁN THỨ MƯỜI
CỦA HILBERT




LUẬN VĂN TỐT NGHIỆP








HÀ NỘI - 2011



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





NGUYỄN THU THẢO


TÌM HIỂU VỀ BÀI TOÁN THỨ MƯỜI
CỦA HILBERT

Chuyên ngành : Đại số và lý thuyết số
Mã số : 60.46.05

LUẬN VĂN TỐT NGHIỆP



Người hướng dẫn khoa học:
PGS.TS. DƯƠNG QUỐC VIỆT





HÀ NỘI - 2011

1

Mục lục
Lời mở đầu………………………………………………………………… 2
Chương 1. Sơ bộ về ngôn ngữ hình thức, văn phạm và
ôtômát ………… 4
1.1. Vị nhóm, vị nhóm tự do………………………………………… 4
1.2.

Ngôn ngữ hình thức……………………………………………… 6

1.3.

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

1.4.

Ôtômát hữu hạn………………………………………………… 28

Chương 2. Máy Turing và hàm đệ quy………………………………… 32
1.1. Máy Turing…………………………………………………… 32
1.2.

Hàm đệ quy…………………………………………………… ….37

1.3.

Các tập hợp và các tân từ đệ quy, đệ quy kể được……………… 41

1.4.


Các tính chất của tập đệ quy, đệ quy kể được………………… 46

1.5.

Đánh số Gödel các máy Turing………………………………… 49

1.6.

Luận đề Turing – Church……………………………………… 51

1.7.

Các kết quả không quyết định được cơ bản……………………… 52

1.8.

Khả năng rút gọn………………………………………………… 57

Chương 3. Bài toán thứ mười của Hilbert …………………… ………… 60
3.1. Bài toán quyết định và vấn đề giải được………………………… 60
3.2. Bài toán tương ứng Post………………………………………… 63
3.3. Bài toán thứ mười của Hilber và hệ quả…………………… . … 70
Kết luận…………………………………………………………………… 78
Tài liệu tham khảo…………………………………………………………. 79

2

Lời mở đầu



Trong Toán học nói chung và trong lĩnh vực Đại số, số học nói riêng, từ cổ
xưa con người đã gặp rất nhiều bài toán khó, trong đó có lớp bài toán
Điôphăng về giải phương trình nguyên. Mỗi một bài toán thuộc lớp này là một
bài toán khó. Câu hỏi đặt ra là giải các bài toán này như thế nào. Người ta
luôn nghĩ rằng đã đưa ra bài toán là có thể giải được. Gần đây, có những nhà
toán học luôn nghi ngờ mọi sự kiện hiển nhiên, trong đó có một đại diện là
Hilbert. Ông đặt ra câu hỏi là liệu có thể tìm được một thuật toán giúp ta xác
định sau một số hữu hạn bước, một phương trình Điôphăng bất kỳ có nghiệm
nguyên hay không. Đó cũng là nội dung bài toán thứ mười trong số 23 bài
toán được ông nêu ra tại Đại hội toán học thế giới năm 1900. Câu trả lời đã
được nhà toán học Matijasevitch đưa ra năm 1970 là không có thuật toán như
vậy.
Nếu như để trả lời cho câu hỏi khi nào một phương trình đa thức giải được
bằng căn thức hay khi nào một hình có thể dựng được bằng thước kẻ và
compa, người ta cần đến lý thuyết mới đó là lý thuyết Galois, thì vấn đề một
bài toán có quyết định (giải) được hay không đòi hỏi phải sử dụng đến các
công cụ để hiểu sâu về bản chất tư duy tính toán của con người về các hàm số
học và thuật toán mà đối tượng cần nghiên cứu để dẫn đến kết quả của
Matijasevitch là các hàm đệ quy, các hàm số học tính được, tập và quan hệ đệ
quy và khái niệm thuật toán theo nghĩa của mô hình máy Turing.
Luận văn này được hoàn thành với mục đích tìm hiểu các khái niệm này,
trình bày các kết quả có liên quan đưa đến kết quả về tính không giải được của
bài toán thứ mười của Hilbert. Với mục tiêu như vậy luận văn được chia thành
các chương với nội dung như sau:
3


Chương 1.
Sơ bộ về ngôn ngữ hình thức, văn phạm và ôtômát. Trong

chương này tác giả trình bày các kiến thức cơ bản về ngôn ngữ hình thức, văn
phạm và ôtômát.
Chương 2. Máy Turing và hàm đệ quy. Chương này tác giả tập trung trình
bày các
đối tượng để dẫn đến kết quả của Matijasevitch đó là các hàm đệ quy,
các hàm số học tính được, tập và quan hệ đệ quy và khái niệm thuật toán theo
nghĩa của mô hình máy Turing. Sau đó đi đến luận đề Turing-Church cho
phép đồng nhất khái niệm trực giác về thuật toán với khái niệm chính xác toán
học (máy Turing). Cuối cùng tác giả trình bày một số kết quả không quyết
định được cơ bản và khả năng rút gọn của các tập.

Chương 3.

Bài toán thứ mười của Hilbert. Từ các kết quả của chương 2,
tác giả sẽ trình bày đến tính không giải được của bài toán thứ mười của Hilbert,
cũng như một số bài toán không giải được khác.
Mặc dù bản thân đã có nhiều cố gắng nhưng do điều kiện thời gian ngắn,
trình độ và kinh nghiệm nghiên cứu khoa học còn hạn chế, nên luận văn chắc
chắn không tránh khỏi những thiếu sót. Tác giả rất mong nhận được những
đóng góp của các thầy cô và các bạn đồng nghiệp để tác giả có thể tiếp tục
nghiên cứu tốt hơn.
Luận văn được thực hiện và hoàn thành dưới sự hướng dẫn của PGS.TS
Phan Trung Huy. Nhân dịp này em xin bày tỏ lòng biết ơn sâu sắc và kính
trọng tới thầy đã tận tình giúp đỡ để em hoàn thành luận văn này.
Cuối cùng tác giả xin chân thành cảm ơn các thầy cô trong tổ Đại số, Ban
chủ nhiệm khoa Toán-Tin, phòng quản lý nghiên cứu khoa học của trường Đại
học sư phạm Hà nội đã tạo điều kiện thuận lợi để tác giả hoàn thành công việc
học tập và nghiên cứu của mình.

Hà nội, tháng 11 năm 2011


Tác giả
4

Chương 1
Sơ bộ về ngôn ngữ hình thức, văn phạm và
ôtômát

Chương này tác giả trình bày một số kiến thức cơ bản về nửa nhóm tự do, vị
nhóm tự do, ngôn ngữ hình thức, văn phạm, ngôn ngữ sinh bởi văn phạm và
ôtômát.

1.1 Vị nhóm. Vị nhóm tự do
1.1.1 Nửa nhóm.Vị nhóm
Định nghĩa 1.1.1. Tập hợp S cùng với phép toán hai ngôi có tính chất kết hợp
được gọi là một nửa nhóm, tức là (ab)c = a(bc) với mọi a,b,c
S

.
Định nghĩa 1.1.2. Nửa nhóm S có đơn vị được gọi là một vị nhóm, nghĩa là
trong S tồn tại phần tử e sao cho ea = ae =a với mọi a
S

.
1.1.2 Nửa nhóm tự do. Vị nhóm tự do
Định nghĩa 1.1.3. Tập Σ khác rỗng gồm hũu hạn hay vô hạn các ký hiệu
được gọi là bảng chữ cái. Mỗi phần tử a

Σ được gọi là một chữ cái hay một
ký hiệu.

Thí dụ: Dưới đây là các bảng chữ cái:
1.

= {a, b, c, … , x, y, z}.
2. Δ = {α, β, γ, δ, ε, η, ϕ, κ, μ, χ, ν, π, θ, ρ, σ, τ, ω,ξ, ψ}.
3. Г = {0, 1}.
Định nghĩa 1.1.4. Giả sử có bảng chữ cái Σ = {a
1
, a
2
, …, a
m
}, một dãy các chữ
cái α =
1 2

t
i i i
a a a
, với
j
i
a

Σ (1 ≤

j ≤ t) được gọi là một từ hay một xâu trên
5

bảng chữ cái Σ. Xâu rỗng là từ đặc biệt không có chữ cái nào, ký hiệu là


.
 Tổng số vị trí của các ký hiệu xuất hiện trong xâu α được gọi là độ dài
của xâu α và kí hiệu là

.
 Hai từ α = a
1
a
2
…a
n
và β = b
1
b
2
…b
m
được gọi là bằng nhau, và được ký
hiệu là α = β, nếu n = m và a
i
= b
i
với mọi i = 1, 2, …, n.
 Phép toán nhân ghép (.) là phép toán thỏa mãn: ωε = εω = ω và α =
a
1
a
2
…a

m
, β = b
1
b
2
…b
n
thì γ = α.β = a
1
a
2
…a
m
b
1
b
2
…b
n
với mọi
, ,
  
.
 Tập mọi từ trên bảng chữ cái Σ được kí hiệu là
*

.
 Tập mọi từ khác rỗng trên bảng chữ cái Σ được ký hiệu là



.
Như vậy


*
\

   



* 
    
. Dễ thấy rằng các tập
*




là vô
hạn.
Nhận xét 1.1.5. Dễ thấy


cùng với phép nhân ghép (.) làm thành một nửa
nhóm, còn

*



cùng với phép nhân ghép (.) làm thành một vị nhóm với đơn vị là
ε.
Định nghĩa 1.1.6.


cùng với phép nhân ghép (.) làm thành một nửa nhóm
được gọi là nửa nhóm tự do sinh bởi Σ.
Định nghĩa 1.1.7.
*


cùng với phép nhân ghép (.) làm thành một vị nhóm với
đơn vị là từ rỗng ε được gọi là vị nhóm tự do sinh bởi Σ .
Mệnh đề 1.1.8. 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ử Σ={a
1
, a
2
, …, a
n
}. Xét ánh xạ f từ Σ
*
vào tập hợp N
các số tự nhiên xác định bởi:
f(ε) = 0, f(a

i
) = i, f(αa
i
) = (n+1)f(α)+i,

α

Σ
*
.
6

với α =
0 1

k
i i i
a a a

, β =
0 1

h
j j j
b b b
và f(α) = f(β). Khi đó
(n+1)
k
i
0

+(n+1)
k-1
i
1
+ … +(n+1)i
k-1
+i
k
= (n+1)
h
j
0
+(n+1)
h-1
j
1
+ … +(n+1)j
h-1
+j
h
trong đó 2 vế là hai khai triển của một số nguyên theo cơ số n+1. Do đó, k=h
và i
u
=j
u
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. 
Ví dụ 1.1.9.

1. Ta có ε , 0, 01, 101, 1010, 110011 là các từ trên bảng chữ cái Г = {0,1}.
2. Các xâu ε, happy, holiday là các từ trên bảng chữ cái Σ = {a, b, c, …, z}.
1.2 Ngôn ngữ hình thức
Các từ
điển định nghĩa ngôn ngữ một cách không chính xác là một hệ thống
thích

hợp cho việc biểu thị các ý nghĩ, các sự kiện, hay các khái niệm, bao gồm
một tập các ký hiệu và các qui tắc để vận dụng chúng. Định nghĩa trên chưa đủ
chính xác để nghiên cứu về ngôn ngữ hình thức. Chúng ta sẽ xét một định nghĩa
toán học cho khái niệm ngôn ngữ.
1.2.1 Ngôn ngữ
Định nghĩa 1.2.1. Cho bảng chữ cái Σ, mỗt tập con L


*

được gọi là một
ngôn ngữ hình thức (hay ngôn ngữ) trên bảng chữ cái Σ.
 Tập rỗng, ký hiệu

, là một ngôn ngữ không gồm một từ nào và được
gọi là ngôn ngữ rỗng. Vậy ngôn ngữ rỗng là ngôn ngữ trên mọi bảng
chữ cái.
 Ngôn ngữ rỗng: L =

khác với ngôn ngữ chỉ gồm một từ rỗng: L =
{ε}.
Ví dụ 1.2.2.
1.

*

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


là ngôn ngữ gồm tất cả
các từ khác từ trống trên Σ.
7

2. L = { ε, 0, 1, 01, 10, 00, 11, 011,100} là một ngôn ngữ trên bảng chữ
cái Г = {0, 1}.
3. L = {a, b, c, aa, ab, ac, abc } là ngôn ngữ trên bảng chữ cái Σ = {a, b, c}.
4. L
1
= {ε, a, b, abb, aab, aaa, bbb, abab}, L
2
= {a
n
b
n
| n

N} là hai ngôn
ngữ trên bảng chữ Σ = {a, b}, L
1
là ngôn ngữ hữu hạn trong khi L
2

ngôn ngữ vô hạn. Mỗi từ thuộc ngôn ngữ L
2

có số chữ cái a bằng số chữ
cái b với a và b không xen kẽ, a nằm ở phía trái và b ở phía phải của từ.
1.2.2 Các phép toán trên các từ
Các phép toán sau đây thực hiện trên các từ trên cùng một bảng chữ cái Σ, tạo
nên các từ mới cũng thuộc cùng một bảng chữ cái.
1.2.2.1

Phép nhân ghép

Định nghĩa 1.2.2.1. Tích ghép (hay nhân ghép) của hai từ α = a
1
a
2
…a
m
và từ
β = b
1
b
2
…b
n
trên bảng chữ cái Σ, là từ γ = a
1
a
2
…a
m
b
1

b
2
…b
n
trên bảng chữ cái
Σ.
Kí hiệu phép nhân ghép là γ = α.β (hay γ = αβ).
Nhận xét 1.2.2.2. Từ định nghĩa trên, ta thấy:
 Từ rỗng là phần tử đơn vị đối với phép nhân ghép, tức là: ωε = εω = ω
đúng với mọi từ ω.
 Phép nhân ghép có tính kết hợp, nghĩa là với mọi từ α, β, γ, ta có (αβ)γ
= α(βγ).
 Kí hiệu ω
n
, với n là số tự nhiên, được dùng theo nghĩa quen thuộc:


1
khi n=0
khi n=1
khi n > 1
n
n

 










 Đối với phép nhân ghép thì hàm độ dài có một số tính chất hình thức
8

của lôgarit: với mọi từ α, β và mọi số tự nhiên n, thì:

  
 
, và

n
n
 

.
 Với phần tử đơn vị, tức là từ rỗng ε, thì

= 0.
1.2.2.2 Phép lấy từ ngược
Định nghĩa 1.2.2.3. Giả sử có từ khác rỗng ω = a
1
a
2
…a
m
trên bảng chữ cái
Σ, khi đó từ a

m
a
m-1
… a
2
a
1
được gọi là từ ngược (hay từ soi gương) của từ ω,
và được kí hiệu là
r

,
hay
^

.
Khi ω = ε ta quy ước
r
  
.

Tính chất 1.2.2.4. Từ định nghĩa trên dễ thấy rằng phép lấy từ ngược có các
tính chất sau:



r
r

 





r
r r

  


r

 

Ví dụ 1.2.2.5.
1. Cho các từ α = 100110 và β = aabb trên bảng chữ cái {0,1,a,b}, theo
định nghĩa ta có:
α
r
= 011001 và (α
r
)
r
= (011001)
r
= 100110 = α.
β
r
= bbaa và (β
r

)
r
= (bbaa)
r
= aabb = β.
2. Cho các từ happy và oto trên bảng chữ cái

= {a, b, c, …x, y, z}, khi đó
ta có:
(happy)
r
= yppah và (oto)
r
= oto.
Ngoài ra ta có:
 
happy
r
=
yppah
=
happy
= 3.
1.2.2.3

Phép cắt từ


Cho u, v là hai từ thuộc bảng chữ cái
*


.
9

Định nghĩa 1.2.2.6. Phép cắt trái của từ v cho từ u cho kết quả là phần còn
lại của từ v sau khi ngắt bỏ phần đầu u trong từ v, và được ký hiệu là
1
u v

.
1
u v







nếu
u v
 

không xác định nếu không tồn tại
:
u v
  

Định nghĩa 1.2.2.7. Phép cắt phải của từ v cho từ u cho kết quả là phần còn
lại của từ v sau khi ngắt bỏ phần cuối u trong từ v, và được ký hiệu là

1
vu

.
1
vu







nếu
u v
 

không xác định nếu không tồn tại
:
u v
  

Ví dụ 1.2.2.8. Cho bảng chữ cái ∑ = {a, b, c}, khi đó ta có:
1. Với từ
*
u

tùy ý thì
1 1
u u uu

 
  

2. Với
,
u a v aba
 
thì
1 1
,
u v ba vu ab
 
 

3. Với
,
u a v b
 
thì
1
u v


1
uv

không xác định.

1.2.3
Các phép toán trên ngôn ngữ

Do mỗi ngôn ngữ là một tập hợp nên ta có các phép toán đại số tập hợp như
là phép giao, phép hợp, phép hiệu, phép lấy bù trên các ngôn ngữ. Chẳng hạn,
với L
1
và L
2
là hai ngôn ngữ trên bảng chữ cái Σ thì ta cũng có các ngôn ngữ
mới sau đây trên bảng chữ cái Σ: L
1

L
2
, L
1
∩ L
2
, L
1
.L
2
,
*

\ L
1
.
1.2.3.1 Phép hợp
Định nghĩa 1.2.3.1. Hợp của hai ngôn ngữ L
1
và L

2
trên bảng chữ cái

, ký
hiệu L
1

L
2
, là một ngôn ngữ trên bảng chũ cái

, đó là tập từ:
L = {ω

Σ* | ω

L
1
hoặc ω

L
2
}.
Định nghĩa phép hợp có thể mở rộng cho một số hữu hạn các ngôn ngữ, tức là
hợp của các ngôn ngữ L
1
, L
2
, …, L
n

trên bảng chữ cái Σ, là tập từ:

1
n
i
i
L


= {ω

Σ* | ω

L
i
, với i nào đó, 1 ≤ i ≤ n }.
10

Tính chất 1.2.3.2. Dễ thấy rằng phép hợp các ngôn ngữ có các tính chất sau:
 Tính giao hoán:
1 2 2 1
L L L L
  
.
 Tính kết hợp:
1 2 3 1 2 3
( ) ( )
L L L L L L
    
.

 Với mọi ngôn ngữ L trên Σ thì:
L L L
     

* *
L
   
.
1.2.3.2 Phép giao
Định nghĩa 1.2.3.3. Giao của hai ngôn ngữ L
1
và L
2
trên bảng chữ cái

, ký
hiệu L
1
∩ L
2
, là một ngôn ngữ trên bảng chữ cái

, đó là tập từ:
L = {ω

Σ* | ω

L
1
và ω


L
2
}.
Định nghĩa phép giao có thể mở rộng cho một số hữu hạn các ngôn ngữ, tức
là giao của các ngôn ngữ L
1
, L
2
, …, L
n
trên bảng chữ cái Σ, là tập từ:

1
n
i
i
L


= {ω

Σ* | ω

L
i
, với mọi i, 1 ≤ i ≤ n }.
Tính chất 1.2.3.4. Dễ thấy rằng phép giao các ngôn ngữ có các tính chất sau:
 Tính giao hoán: L
1

∩ L
2
= L
2
∩ L
1
.
 Tính kết hợp: (L
1
∩ L
2
) ∩ L
3
= L
1
∩ ( L
2
∩ L
3
).
 Tính phân phối đối với phép hợp:
(L
1
∩ L
2
)

L
3
= (L

1

L
3
) ∩ ( L
2


L
3
).
(L
1


L
2
) ∩ L
3
= (L
1
∩ L
3
)

( L
2
∩ L
3
).

 Với mọi ngôn ngữ L trên Σ thì: L ∩

=

∩ L =

và L ∩ Σ
*
= L.
1.2.3.3

Phép lấy phần bù
Định nghĩa 1.2.3.5. Ngôn ngữ phần bù của ngôn ngữ L trên bảng chữ cái Σ,
ký hiệu C
Σ
L (hay CL, nếu không gây nhầm lẫn), là một ngôn ngữ trên bảng
chữ cái Σ , đó là tập từ:

C
Σ
L = {ω

Σ* | ω ∉ L }.

11

Tính chất 1.2.3.6. Dễ thấy rằng phép lấy phần bù các ngôn ngữ có các tính
chất sau:
 C
Σ

{ε} = Σ
+
, C
Σ
Σ
+
= {ε}.

C
Σ


= Σ
*
, C
Σ
Σ
*
=

.



C(CL
1

CL
2
) = L

1
∩ L
2
.
Ví dụ 1.2.3.7.
1. Cho ngôn ngữ L
1
= {ε, 0, 01}, L
2
= {ε, 01, 10} trên bảng chữ cái Σ =
{0, 1}, khi đó ta có:
L
1

L
2
= {ε, 0, 01, 10}
L
1
∩ L
2
= {ε, 01}.
2. Cho ngôn ngữ L = {ω


*

, với

là một số chẵn }, khi đó ta có:

C
Σ
L = {ω




, với

là một số lẻ}.
1.2.3.4

Phép nhân ghép
Định nghĩa 1.2.3.8. Cho hai ngôn ngữ L
1
trên bảng chữ Σ
1
và L
2
trên bảng
chữ Σ
2
. Nhân ghép
hay tích của hai ngôn ngữ L
1
và L
2
là một ngôn ngữ trên
bảng chữ Σ
1


Σ
2
, ký hiệu L
1
L
2
,
đuợc xác định bởi:
L
1
L
2
= {αβ | α

L
1
và β

L
2
}.
Tính chất 1.2.3.9. Dễ thấy phép nhân ghép (tích) các ngôn ngữ có các tính chất
sau:
 Tính kết hợp: với mọi ngôn ngữ L
1
, L
2
và L
3

, ta có:
(L
1
L
2
)L
3
= L
1
(L
2
L
3
).
∅L = L∅ = ∅, {ε}L = L{ε} = L,
 Tính phân phối đối với phép hợp, nghĩa là:
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
.
 Không có tính phân phối đối với phép giao. Phép hợp, phép giao không
12

có tính phân phối đối với phép nhân ghép, tức là với mọi ngôn ngữ L
1
,
L
2
và L
3
, thì:

L
1
(L
2
∩ L
3
)

(L
1
L
2
) ∩ (L
1
L
3
)
L
1

(L
2
L
3
)

(L
1

L

2
)(L
1


L
3
)
L
1
∩ (L
2
L
3
)

( L
1
∩ L
2
)(L
1
∩ L
3
).

Ví dụ 1.2.3.10.
Xét các ngôn ngữ L
1
= {0, 01}, L

2
= {01, 10}, L
3
= {0} trên bảng chữ cái Σ
=


0,1
.
1. Ta có: L
2
∩ L
3
= ∅, do đó:
L
1
(L
2
∩ L
3
) = ∅,
Mặt khác, ta có L
1
L
2
= {001, 010, 0101, 0110} và L
1
L
3
= {00, 010}, do đó:

(L
1
L
2
) ∩ (L
1
L
3
) = {010}.
Vậy L
1
(L
2
∩ L
3
) ≠ (L
1
L
2
) ∩ (L
1
L
3
)), tức là phép nhân ghép không có tính phân
phối đối với phép giao.
2. Ta có: L
2
L
3
= {010, 100}, do đó:

L
1

(L
2
L
3
) = {0, 01, 010, 100},
Mặt khác ta cũng có L
1

L
2
= {0, 01, 10} và L
1

L
3
= {0, 01}, do đó:
(L
1

L
2
)(L
1

L
3
) = {00, 001, 010, 0101, 100, 1001}.

Vậy L
1


(L
2
L
3
) ≠ (L
1

L
2
)(L
1

L
3
), tức là phép hợp không có tính phân
phối đối với phép nhân ghép.
3. Ta có L
2
L
3
= {010, 100}, do đó:
L
1
∩ (L
2
L

3
) = ∅.
Mặt khác L
1
∩ L
2
= {01}, L
1
∩ L
3
= {0}, do đó:
(L
1
∩ L
2
)(L
1
∩ L
3
) = {010}.
Vậy L
1
∩ (L
2
L
3
) ≠ (L
1
∩ L
2

)(L
1
∩ L
3
), tức là phép giao không có tính phân
13

phối đối với phép nhân ghép.
Do phép ghép ngôn ngữ có tính kết hợp nên kí hiệu
n
L
được dùng với mọi
ngôn ngữ L và số tự nhiên n theo nghĩa quen thuộc sau:




1.2.3.5

Phép lặp
Định nghĩa 1.2.3.11.
Cho ngôn ngữ L trên bảng chữ cái Σ, khi đó:


Tập từ
 
2
0

n n

n
L L L L



     

được gọi là ngôn ngữ lặp của
ngôn ngữ L
(hay bao đóng Kleen của ngôn ngữ L), kí hiệu
*
L

Vậy ngôn ngữ lặp của L là hợp của mọi luỹ thừa của L:
*
1
n
n
L L







Tập từ
2
1


n n
n
L L L L


    

được gọi là ngôn ngữ lặp cắt của
ngôn ngữ L
, kí hiệu
L


Vậy ngôn ngữ lặp cắt của L là hợp của mọi luỹ thừa dương của L:
1
n
n
L L






Ví dụ 1.2.3.12.
1.
Xét ngôn ngữ L = {0, 1} trên bảng chữ Σ = {0, 1}. Ta có:


2

L
= {00, 01, 10, 11}, tập hợp các xâu nhị phân độ dài 2.

3
L
= {000, 001, 010, 011, 100, 101, 110, 111}, tập hợp các xâu nhị phân
độ dài 3.
Tương tự,
n
L
là tập hợp các xâu nhị phân độ dài n. Do đó,
*
L
là tập hợp tất
cả các xâu nhị phân.
2. Xét hai ngôn ngữ trên bảng chữ Σ = {a}, ta có:


1
khi n=0
khi n=1
L khi n > 1
n
n
L L
L









14


1
L
= {a
2n
| n ≥ 1},

2
L
= {a
5n+3
| n ≥ 0}.
Khi đó, ta có
1
L
= {a
2
}
+
,
2
L
= {a
5

}
*
{a
3
}.
1.2.3.6

Phép lấy ngôn ngữ ngược
Định nghĩa 1.2.3.13.
Cho ngôn ngữ L trên bảng chữ cái Σ, khi đó ngôn ngữ
ngược của L là một ngôn ngữ trên bảng chữ cái

, được kí hiệu là
r
L
hay
^
L
,
là tập từ:

r
L
= {ω

Σ* /
r


L}.

Tính chất 1.2.3.14. Dễ thấy rằng phép lấy ngôn ngữ ngược có các tính chất
sau:



r
r
L L


 {ε}
r
= { ε}



r
  

Ví dụ 1.2.3.15. Cho L = {ε, ab, abc, cbaa} là một ngôn ngữ trên bảng chữ cái
Σ = {a, b, c}, khi đó
r
L
= {ε, ba, cba, aabc} là ngôn ngữ ngược của L.
1.2.3.7

Phép cắt ngôn ngữ
Định nghĩa 1.2.3.16.
 Cho ngôn ngữ X và Y


trên bảng chữ cái Σ, khi đó phép cắt trái của ngôn
ngữ X

cho ngôn ngữ Y là một ngôn ngữ trên Σ , được ký hiệu là
1
Y X

,
là tập từ:

1 1
,y Y x X
Y X y x
 
 



 Cho ngôn ngữ X và Y trên bảng chữ cái Σ, khi đó phép cắt phải của
ngôn ngữ X cho ngôn ngữ Y là một ngôn ngữ trên Σ, được ký hiệu là
1
XY

, là tập từ:
15


1 1
,x X y Y
XY xy

 
 




Ví dụ 1.2.3.17.
Cho X = {ab, baa, bba} và Y = {b, ab, bb} là các ngôn ngữ
trên bảng chữ cái Σ = {a, b}, khi đó:
1.
1
X Y

= {

}
2.

1
Y X


= {
, ,aa,
a ba

}
3.



1
XY


= {
,
a

}
1.3 Văn phạm và ngôn ngữ sinh bởi văn phạm
1.3.1 Định nghĩa văn phạm
Định nghĩa 1.3.1. Văn phạm G 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 hữu hạn, gọi là bảng chữ cái kết thúc, mỗi phần tử của
nó được gọi là một chữ cái kết thúc.
+ Δ là một bảng chữ cái hữu hạn, Δ ∩ Σ = ∅, gọi là 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 chữ cái không kết thúc.
+ S

Δ được gọi là chữ xuất phát.
+ V=
  
gọi là bảng chữ tổng hợp.
+ P là tập hợp hữu hạn các quy tắc sản xuất, mỗi quy tắc sản xuất có dạng
α→β, α được gọi là vế trái và β được gọi là vế phải của quy tắc này, với α, β
*
V

và trong α chứa ít nhất một chữ không kết thúc.

P = {α→β | α = α’Aα’’, với A

Δ, α’, α’’, β

V
*
}.
Ví dụ 1.3.2. Các bộ bốn sau là các văn phạm:
1. G
1
= <{0, 1}, {S}, S, {S→0S1, S→ε}>,
2. G
2
= <{a, b}, {S, A}, S, {S→Ab, A→aAb, A→ε}>,
16

3. G
3
= <{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 Ngôn ngữ sinh bởi văn phạm
Định nghĩa 1.3.3.
 Cho văn phạm G = < Σ, Δ, S, P > và η, ω

V
*
. Ta nói ω được sản sinh
trực tiếp từ η trong G, kí hiệu η

ω nếu tồn tại sản xuất α→β


P và γ,
δ

V
*
sao cho η = γαδ, ω = γβδ, nghĩa là nếu η nhận vế trái α của sản
xuất α→β như là từ con thì ta thay α bằng β để được từ mới ω.
 Cho văn phạm G = < Σ, Δ, S, P > và η, ω

V*. Ta nói ω được sản sinh
từ η trong G, kí hiệu η
*

ω nếu η = ω hoặc tồn tại một dãy D = ω
0
,
ω
1
,…, ω
k


V* sao cho ω
0
= η, ω
k
= ω và ω
i-1


ω
i
, với i = 1, 2, , k.
Dãy D = ω
0
, ω
1
, …, ω
k
được gọi là một dẫn xuất của ω từ η trong G và số k
được gọi là độ dài của dẫn xuất này. Nếu ω
0
= S và ω
k


Σ* thì dãy D gọi là
dẫn xuất đầy đủ.
 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
*

ω. Ngôn ngữ sinh bởi văn phạm 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
*

ω}.
 Hai văn phạm G
1
= < Σ
1
, Δ
1
, S
1
, P
1
> và G
2
= < Σ
2
, Δ
2
, S
2
, P
2
> được gọi
là tương đương nếu L(G
1
) = L(G
2
).

Ví dụ 1.3.4.
1. Xét văn phạm G
1
trong ví dụ 1.3.1.2. Từ ω = 00001111 được suy
dẫn từ S bằng dăy dẫn xuất độ dài 5:
S

0S1

00S11

000S111

0000S1111

00001111 (có thể
viết ngắn gọn là ω = 0
4
1
4
).
Bằng việc sử dụng n lần (n ≥ 0) quy tắc sản xuất 1 rồi quy tắc sản xuất 2, ta
17

có: S
*

0
n
1

n
. Do đó L(G
1
) = {0
n
1
n
| n ≥ 0}.
2. Xét văn phạm G
2
trong ví dụ 1.3.1.2. Sử dụng quy tắc sản xuất 1, rồi
n lần (n ≥ 0) quy tắc sản xuất 2, sau đó quy tắc sản xuất 3 để kết
thúc, ta có: S

Aba
n
*

Ab
n
b

a
n
b
n+1
.
Do đó L(G
2
) = {a

n
b
n+1
| n ≥ 0}.
3. Xét văn phạm G
3
trong ví dụ 1.3.1.2. Sử dụng quy tắc sản xuất 1,
rồi
1
m

lần (m ≥ 1) quy tắc sản xuất 2, n-1 lần (n ≥ 1) quy tắc sản
xuất 3,
1
k

lần (k ≥ 1) quy tắc sản xuất 4 (các quy tắc có thể xen kẽ),
sau đó kết thúc bởi các quy tắc sản xuất 5, 6, 7, ta có: S


ABC
*

a
m
Ab
n
Bc
k
C

*

a
m
b
n
c
k
.
Do đó L(G
3
) = {a
m
b
n
c
k
| m ≥ 1, n ≥ 1, k ≥ 1}.
Ví dụ 1.3.5.
1. Cho hai văn phạm G
3
= <Σ, {S}, S, P
3
>, G
4
= <Σ, {S}, S, P
4
>, trong đó:
Σ = {0, 1, 2, 3, 4, 5 ,6, 7, 8, 9},
P

3
= {S→1| 2| 3| 4| 5| 6| 7| 8| 9| S0| S1| S2| S3| S4| S5| S6| S7| S8| S9},
P
4
= {S→0| 1| 2| 3| 4| 5| 6| 7| 8| 9| 1S| 2S| 3S| 4S| 5S| 6S| 7S| 8S| 9S}.
Dễ thấy rằng L(G
3
) = {n | n ≥ 1}. Thật vậy, sử dụng k-1 lần (k ≥ 1) các quy
tắc trong nhóm 10 quy tắc cuối của G
3
, rồi một quy tắc trong nhóm 9 quy tắc
đầu tiên của nó, ta có:
S

Si
1

Si
2
i
1




Si
k-1
…i
2
i

1


Si
k
i
k-1
…i
2
i
1
, (với i
1
, i
2
, …, i
k



).
trong đó, i
1
, i
2
, …, i
k-1
≥ 0 và i
k
≥ 1. Do đó, L(G

3
) = {n | n ≥ 1}.
Lập luận như trên, ta nhận được L(G
4
) = {n | n ≥ 0}. Do đó G
3
và G
4
không
tương đương với nhau.
2. Xét văn phạm G xác định bởi các sản xuất:

, S aA , Ab bA, Ac Bbcc
bB Bb, aB aaA, aB aa
S abc bc
   
  

và văn phạm G
1
xác định bởi các sản xuất:
18


, S aB, BA bBc, cA c, B bc
S aSA A
    

Ta có:



( ) 1
n n n
L G a b c n
 
(1)
Thật vậy, bất kì một dẫn xuất theo G nào đều bắt đầu với một áp dụng sản xuất
thứ nhất hoặc thứ hai, sản xuất thứ nhất cho ngay từ kết thúc abc. Xét một dẫn
xuất bất kì D từ một từ có dạng
, 1
i i i
a Ab c i

, mà nó dẫn đến một từ trên bộ
chữ cái kết thúc. D cần phải bắt đầu với i áp dụng sản xuất thứ ba (A đi sang
phải) và sau đó tiếp tục với một sản xuất thứ tư (một xuất hiện nữa của b và c
đặt vào). Hiện ta đã dẫn ra từ
1
i i i
a b Bbc

. Đối với từ này khả năng duy nhất là
phải áp dụng sản xuất thứ năm i lần (B đi sang bên trái), sau đó ta có từ
1 1
i i i
a Bb c
 
. Từ này trực tiếp sinh ra một trong hai từ sau:

1 1 1 1 1 1

hay
i i i i i i
a Ab c a b c
     

nhờ hai sản xuất cuối cùng (một a nữa được đặt thêm và hoặc đi vào một chu
trình mới, hoặc dẫn xuất được kết thúc). Lý luận này chỉ ra rằng G sinh mọi từ
thuộc vế phải của (1) và không sinh ra từ nào khác. Mỗi bước trong một dẫn
xuất được xác định một cách duy nhất, chỉ trừ trường hợp có một sự lựa chọn
giữa việc kết thúc và việc đi vào một chu trình mới.
Tương tự ta cũng có


1
( ) 1
n n n
L G a b c n
 
. Do đó hai văn phạm G và G
1

tương đương.
1.3.3 Phân loại văn phạm
Dựa vào đặc điểm của tập quy tắc mà người ta chia các văn phạm thành các
nhóm khác nhau.
 Loại kiểu 0: Văn phạm không hạn chế hay văn phạm tổng quát
 Loại kiểu 1: Văn phạm cảm ngữ cảnh
 Loại kiểu 2: Văn phạm phi ngữ cảnh
19


 Loại kiểu 3: Văn phạm chính quy
Định nghĩa 1.3.9. Văn phạm G = < Σ, Δ, S, P > mà không có một ràng buộc
nào đối với 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
kiểu 0.
Như vậy, các quy tắc trong văn phạm loại 0 có dạng: α→β, với α = α’Aα’’,
A

Δ, α’, α’’, β



Δ)
*
. Các quy tắc của văn phạm loại 0 được gọi là quy
tắc không hạn chế.
Định nghĩa 1.3.10. Văn phạm G = < Σ, Δ, S, P > mà các quy tắc của nó đều
có dạng: α→β, với α = α’Aα’’, A

Δ, α’, α’’, β



Δ)
*
, và



,
được gọi là văn phạm kiểu 1 hay văn phạm cảm ngữ cảnh.

Các quy tắc trong văn phạm loại 1 được gọi là quy tắc cảm ngữ cảnh.
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
rỗng S→ε, cũng được xếp vào lớp văn phạm
kiểu 1.

Ví dụ 1.3.11. 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 đó G là văn phạm cảm ngữ cảnh.
Sử dụng n-1 lần (n ≥ 1) quy tắc 1, rồi quy tắc 2, kế đến sử dụng liên tiếp các
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ó:
S
*

a
n-1
S(AC)
n-1

a
n
bC(AC)
n-1

*

a
n
bA

n-1
C
n

*

a
n
b
n
c
n
.
Từ đó suy ra L(G) = {a
n
b
n
c
n
| n ≥ 1}.
Định nghĩa 1.3.12. 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 kiểu 2, hay

văn phạm phi ngữ cảnh.
20

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
chữ không kết thúc duy nhất còn vế phải là tùy ý, và được gọi là quy tắc phi
ngữ cảnh.
Ví dụ 1.3.13.
1. Cho văn phạm G
1
= <{a, b}, {S, A}, S, P>, trong đó:
P = {S→Sa, S→Aa, A→aAb, A→ab}.
G
1
là văn phạm phi ngữ cảnh.
Sử dụng m-1 lần (m ≥ 1) quy tắc 1, rồi quy tắc 2, sau đó sử dụng n-1 lần (n ≥
1) quy tắc 3, cuối cùng là quy tắc 4, ta có:
S
*

Sa
m-1


Aaa
m-1
*

a
n-1
Ab

n-1
a
m

a
n
b
n
a
m
.
Từ đó suy ra L(G
1
) = {a
n
b
n
a
m
| n ≥ 1, m ≥ 1}.
2. Cho văn phạm G
2
= <{0, 1}, {S}, S, {S→SS, S→0S1, S→1S0, S→ε}>.
G
2
là văn phạm phi ngữ cảnh. Từ các quy tắc của G
2
, ta có L(G
2
) ={ε, 01, 10,

0011, 1100, 1001, 111000, …} hay L(G
2
)={ω

{0, 1}
*
| số các chữ số 0 và 1
trong ω là bằng nhau}.
3. Cho văn phạm G
3
= <{a, b}, {S}, S, P
3
>, với
P
3
= {S→ε, S→aSa,S→bSb,S→aa,
S→bb}.
G
3
là văn phạm phi ngữ cảnh và nó sinh ra ngôn ngữ phi ngữ cảnh L(G
3
) =
{ωω
r
ω

{a, b}
*
} có các từ có độ dài chẵn và có các chữ cái đối xứng
nhau từ hai đầu của từ. Chẳng hạn các từ abba, bbaabb, ababbaba… là thuộc

L(G
3
).
Định nghĩa 1.3.14.
Văn phạm G = < Σ, Δ, S, P > mà các quy tắc của nó chỉ
có dạng A→aB,
A→a (hoặc chỉ có dạng A→Ba, A→a ), trong đó A, B

Δ,
a

Σ, được gọi là văn phạm loại 3 hay văn phạm chính quy.
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 rỗng S→ε cũng được gọi là văn phạm chính quy
21

Các quy tắc trong văn phạm chính quy được gọi là quy tắc chính quy.
Ví dụ 1.3.15.
1. Cho văn phạm: G
1
= <{1}, {S, A, B}, S, P
1
>, với P
1
= {S→ε, S→1A,
A→1B, B→1A, A→1}.
Khi đó, G
1
là văn phạm chính quy và L(G
1

) = {1
2n
| n ≥ 0}. Thật vậy, sử
dụng quy tắc 1, ta có S

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

1A

11B

111A


*

1(1
2n-2
)A

1(1
2n-2
)1 = 1
2n

.
2. Cho văn phạm G
2
= <{0, 1}, {S, A}, S, P
2
>,
P
2
= {S→0A, A→0A, A→1A, A→0}
Khi đó, G
2
là văn phạm chính quy và L(G
2
) = {0ω0 | ω

{0, 1}
*
}. Thật
vậy, sử dụng quy tắc 1, rồi một số hữu hạn lần tuỳ ý, có thể xen kẽ các quy
tắc 2 và 3, cuối cùng là quy tắc 4, ta có: S

0A
*

0ωA

0ω0.
1.3.4 Phân bậc ngôn ngữ Chomsky
 Ngôn ngữ kiểu 0: Ngôn ngữ sinh bởi văn phạm kiểu 0 gọi là ngôn ngữ
loại 0 hay ngôn ngữ đệ qui kể được . Ngôn ngữ thuộc kiểu 0 khi và chỉ khi

nó đoán nhận được bởi máy Turing
 Ngôn ngữ kiểu 1: Ngôn ngữ sinh bởi văn phạm kiểu 1 gọi là ngôn ngữ
kiểu 1 hay ngôn ngữ cảm ngữ cảnh. Ngôn ngữ thuộc kiểu 1 thì nó đoán
nhận được bởi máy Turing luôn dừng, tức là bài toán thành viên cho nó là
giải được. Nói chung thuật toán giải bài toán thành viên có cỡ lũy thừa.
 Ngôn ngữ kiểu 2: Ngôn ngữ sinh bởi văn phạm kiểu 2 gọi là ngôn ngữ
kiểu 2 hay ngôn ngữ phi ngữ cảnh. Ngôn ngữ thuộc kiểu 2 có thuật toán
giải bài toán thành viên cỡ đa thức bậc ba.
22

 Ngôn ngữ kiểu 3: Ngôn ngữ sinh bởi văn phạm loại 3 gọi là ngôn ngữ
kiểu 3 hay ngôn ngữ chính quy. Ngôn ngữ thuộc kiểu 3 có thuật toán giải
bài toán thành viên cỡ đa thức bậc một (tuyến tính). (theo


5
).
Nhận xét 1.3.16. Từ các định nghĩa trên, ta thấy lớp văn phạm tổng quát


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.
Ngôn ngữ hình thức được gọi là ngôn ngữ đệ qui kể được (hay cảm ngữ
cảnh, phi ngữ cảnh, chính quy) nếu tồn tại văn phạm loại tương ứng sinh ra nó.
Vì vậy, đối với các lớp ngôn ngữ, nếu kí hiệu L
0
, L
1,
L

2
, L
3
lần lượt là các
lớp ngôn ngữ đệ qui kể được, cảm ngữ cảnh, phi ngữ cảnh và chính quy thì ta
có bao hàm thức:
L
3

L
2

L
1

L
0
Hình vẽ dưới đây cho một sự so sánh về độ lớn của các lớp ngôn ngữ theo
phân loại của
Chomsky, cho thấy lớp ngôn ngữ chính quy L
3
là nhỏ nhất, nó bị
chứa thực sự trong lớp ngôn ngữ phi ngữ cảnh L
2
, lớp ngôn ngữ phi ngữ cảnh
lại bị chứa thực sự trong lớp ngôn ngữ cảm ngữ cảnh L
1

và cuối cùng lớp
ngôn ngữ tổng quát L

0
(ngôn ngữ ngữ cấu) là rộng nhất






L
0





L
1

L
1


L
2
L
2
L
3

23


1.3.5 Tính chất của các lớp ngôn ngữ
Sau đây ta xét ba kết quả thông dụng về
"
dạng chuẩn
"
. Các kết quả này chỉ ra
rằng mỗi ngôn ngữ thuộc một loại nào đó (đệ qui kể được, phi ngữ cảnh, chính
qui) có thể được sinh bởi một văn phạm đơn giản hơn văn phạm tổng quát
thuộc loại đó.
Định lý 1.3.17. Mỗi ngôn ngữ chính quy được sinh bởi một văn phạm sao cho
mỗi sản xuất có dạng
hay
A aB A

 
, trong đó A và B là các chữ cái
không kết thúc và a là chữ kết thúc. Hơn nữa, với mỗi cặp (A,a), có đúng một
sản xuất
A aB

trong văn phạm.
Chứng minh. Giả sử rằng L = L(G), trong đó
G = < Σ, Δ, S, P >
là một văn
phạm chính quy. Ta sẽ xây dựng một văn phạm G
1
tương đương với G sao cho
mọi sản xuất của G
1

thuộc hai dạng hợp lệ được nêu trong phát biểu của định lý
1.3.17. Thêm vào đó, ban đầu G có thể chứa các sản xuất có dạng sau:

1
1
, 2, , , (1)
, 1, , (2)
, ,
(3)
k j
k j
A a a B k a A B
A a a k a A
A B A B
   
   
 

Như vậy ta cần loại mọi sản xuất trong (1) – (3) khỏi G
Với mỗi sản xuất trong (1) ta đưa vào các chữ không kết thúc mới
1 1
,
k
B B


và thay (1) bởi các sản xuất

1 1 1 2 2 1
, , ,

k k
A a B B a B B a B

  

Với mỗi sản xuất trong (2) ta đưa vào các chữ không kết thúc mới
1
,
k
A A

thay (2) bởi các sản xuất

1 1 1 2 2 1
, , , ,
k k k k
A a A A a A A a A A


   

Thủ tục này được lặp lại với mỗi sản xuất trong (1) và (2). (Điều quan trọng là
các chữ không kết thúc thêm vào luôn là các chữ mới: không có chữ không kết
thúc nào được dùng cho hai sản xuất khác nhau). Ta thấy ngôn ngữ L(G) không

×