Q: tập hữu hạn các trạng thái của bộ phận điều khiểnΣ: tập hữu hạn các kí hiệu vào input symbol Γ : tập đầy đủ các kí hiệu trên băng tape symbol chứa Σ như tập con, tức là Máy Turing gồm
Trang 1Mục lục
1.1 Máy Turing 6
1.1.1 Định nghĩa hình thức 6
1.1.2 Mô tả hoạt động 6
1.1.3 Cấu hình (configuration) hay mô tả tức thời (instantaneous description =ID) 7
1.1.4 Sơ đồ chuyển vị của máy Turing 9
1.1.5 Ngôn ngữ của máy Turing 11
1.1.6 Máy Turing và bài toán dừng 11
1.2 Các kỹ thuật lập trình cho máy Turing 12
1.2.1 Lưu trữ bên trong trạng thái 12
1.2.2 Máy Turing nhiều rãnh 13
1.3 Các biến thể của máy Turing cơ bản 13
1.3.1 Máy Turing đa băng (multitape Turing machine 13
1.3.2 Máy Turing không đơn định(Non deterministic Turing Ma-chine) 15
Chương 2 Tính bất khả quyết 17 2.1 Ngôn ngữ không kể được đệ quy 17
2.1.1 Liệt kê các chuỗi nhị phân 17
2.1.2 Bản mã cho máy Turing 17
2.1.3 Ngôn ngữ chéo hóa 18
2.2 Một bài toán bất khả quyết thuộc loại RE 19
2.2.1 Ngôn ngữ đệ quy 20
2.2.2 Ngôn ngữ phổ quát 20
2.2.3 Tính bất khả quyết của ngôn ngữ phổ quát 21
Trang 24 Mục lục
2.3 Các bài toán bất khả quyết về máy Turing 22
2.3.1 Phép quy dẫn 22
2.3.2 Các máy Turing kiểm nhận ngôn ngữ rỗng 22
2.4 Bài toán tương ứng POST 22
2.4.1 Định nghĩa bài toán tương ứng POST 23
2.4.2 Bài toán PCP có điều chỉnh (Modified Post's Correspondence Problem) 25
2.4.3 Hoàn tất phép chứng minh tính bất khả quyết của PCP 26
2.5 Nhứng bài toán bất khả quyết khác 26
Chương 3 Các bài toán nan giải (intractable problems) 27 3.1 Lớp P và NP 27
3.1.1 Các bài toán giải được trong thời gian đa thức 27
3.1.2 Thời gian đa thức không đơn định 28
3.1.3 Thí dụ bài toán 6∈ P 28
3.1.4 Phép quy dẫn thời gian đa thức 28
3.1.5 Các bài toán NP-complete 29
3.2 Một bài toán NP-C 30
3.2.1 Bài toán tính thỏa được (SAT) 30
3.2.2 Biểu diễn các thể hiện SAT 30
3.2.3 Tính NP-C của bài toán SAT 31
3.3 Bài toán về tính thỏa được có hạn chế 31
3.3.1 Nhắc lại về dạng chuẩn của các biểu thức Boole 31
3.3.2 Tính chất NP-C của CSAT 32
3.4 Một số bài toán NP-C khác 32
3.4.1 Mô tả các bài toán NP-C 33
3.4.2 Bài toán các tập độc lập (independent set) 33
3.4.3 Bài toán phủ đỉnh (vertex cover) 37
3.4.4 Bài toán về chu trình Hamilton 39
3.4.5 Bài toán so khớp 3 chiều (3D-matching) 39
3.4.6 Bài toán phân hoạch (Partition) 39
3.4.7 Bài toán clique 39
Trang 3Mục lục 5
3.4.8 Sơ đồ quy dẫn từ bài toán SAT về các bài toán khác 40
3.4.9 Bài toán tô màu đồ thị (Graph k-colorability, k ≥ 3) 40
3.4.10 Maximum cut problem 41
3.4.11 Một số bài toán NP-C khác 41
3.5 Các bài toán NP-khó (NP-hard) 42
Chương 4 Các thuật toán xấp xỉ giải các bài toán NP-C 43 4.1 Một số khái niệm 43
4.2 Giới thiệu một số thuật toán xấp xỉ 44
4.2.1 Bài toán phủ đỉnh bé nhất (thuộc NP-C) 44
4.2.2 Giải thuật tham lam giải các bài toán tối ưu hóa thuộc loại NP-C 44
4.3 Các thuật toán gần đúng 45
4.3.1 Heuristic đối với bài toán phủ đỉnh 45
4.3.2 Bài toán TSP 46
4.3.3 Thuật toán tham giải bài toán chọn đồng tiền 47
4.3.4 Bài toán ba lô nguyên (0-1) 48
4.3.5 Các phương pháp tham (GrM) đối với bài toán ba lô 0-1 49
Tài liệu tham khảo 51
Trang 4Q: tập hữu hạn các trạng thái của bộ phận điều khiển
Σ: tập hữu hạn các kí hiệu vào (input symbol)
Γ : tập đầy đủ các kí hiệu trên băng (tape symbol) chứa Σ như tập con, tức là
Máy Turing gồm một bộ phận điều khiển có thể ở một trạng thái bất kỳ (thuộc
Q), một băng (tape) được chia thành các ô (cell), mỗi ô có thể chứa một ký tự thuộctập Γ
Khởi đầu, nguyên liệu (input) của máy được đặt trên băng, đó là một chuỗi hữuhạn các ký tự thuộc Σ, tức là xâu thuộc Σ∗ Những ô còn lại của băng là ô trắng
Có một đầu đọc-ghi (head) luôn chỉ vào một trong các ô của băng Ta nói rằng
Trang 51.1 Máy Turing 7
Hình 1.1 Mô hình máy Turing
máy đang quét (scan) ô đó Lúc bắt đầu hoạt động đầu đọc-ghi nằm ở ô tận tráicủa nguyên liệu
Một bước chuyển của máy bao gồm:
1 Thay đổi trạng thái: trạng thái tiếp theo có thể chính là trạng thái hiện thời
2 Ghi một ký hiệu băng vào ô đang được quét Ký hiệu băng này thay thế kýhiệu băng đang có ở ô đó Ký hiệu được ghi cũng có thể là chính ký hiệu ở ô đó
3 Di chuyển đầu đọc - ghi sang trái hoặc phải Trong hệ đang mô tả chúng takhông cho phép đầu đọc-ghi đứng yên
1.1.3 Cấu hình (configuration) hay mô tả tức thời
(instanta-neous description =ID)
Ta sẽ dùng xâu X1X2 Xi−1qXiXi+1 Xn để biểu diễn một ID, trong đó
1 q là trạng thái của máy
2 đầu đọc-ghi đang quét ký hiệu thứ i tính từ trái sang
3 X1X2 Xn là phần băng nằm giữa ô trống tận trái và tận phải
Một ngoại lệ là nếu đầu đọc-ghi đang ở bên trái của ô không trống tận trái hoặcbên phải của ô không trống tận phải thì có một tiền tố hoặc hậu tố của X1 Xnchứa các ô trống và i tương ứng sẽ là 1 hoặc n
Chúng ta mô tả bước chuyển của máy Turing
M = (Q, Σ, Γ, δ, q0, B, F )bằng ký pháp `M Khi máy M được hiểu ngầm chúng ta chỉ dùng ` để phản ánh
Trang 68 Máy Turingcác bước chuyển.
Chúng ta cũng dùng `∗ để chỉ zero, 1, hoặc nhièu bước chuyển của máy M
* Giả sử δ(q, Xi) = (p, Y, L) nghĩa là bước tiếp theo sẽ di chuyển sang trái.Thế thì
X1X2 Xi−1qXiXi+1 Xn`M X1 Xi−2pXi−1Y Xi+1 Xn
Có 2 ngoại lệ quan trọng:
1 i = 1 thì M chuyển đến ô trống bên trái của X1:
qX1 Xn`M pBY X2 Xn
2 i = n và Y = B thì B được ghi chồng lên Xn sẽ nối với dãy ô trống vô tận
ở bên phải và không xuất hiện trong ID tiếp theo Vì thế
X1X2 Xn−1qXn `M X1 Xn−2pXn−1
** Bây giờ giả sử δ(q, Xi) = (p, Y, R) Thế thì
X1X2 Xi−1qXiXi+1 Xn`M X1X2 Xi−1Y pXi+1 Xn
(đầu đọc ghi chuyển đến ô i + 1)
X, 1 thành Y cho đến khi tất cả 0 và 1 khớp nhau đều được biến đổi hết
Đặc tả hình thức cho máy Turing này là
M = ({q0, q1, q2, q3, q4}, {0, 1}, {0, 1, X, Y, B}, δ, q0, B, {q4})
Trang 71.1 Máy Turing 9với hàm chuyển được cho bởi bảng
-ý nghĩa của hàm chuyển trên:
1 δ(q0, 0) = (q1, X, R) - gặp con 0, thay nó bằng X và di chuyển sang phải
2 δ(q1, 0) = (q1, 0, R)- vượt qua (các) con 0 sang phải
δ(q1, Y ) = (q1, Y, R)- vượt qua (các) con Y sang phải
δ(q1, 1) = (q2, Y, L)- gặp 1 thay nó bằng Y và di chuyển sang trái
` XXq0Y Y ` XXY q3Y ` XXY Y q3B ` XXY Y Bq4B
Kiểm nhận xâu 0n1n(n ≥ 1)bất kỳ theo quy tắc sau:
Khởi đầu từ đầu trái của nguyên liệu, nó đi vào một vòng lặp
Thay một 0 bằng một X rồi di chuyển sang phải vượt qua các con 0 và Y cho
đến khi gặp một 1, thay nó bằng Y rồi di chuyển sang trái vượt qua các Y và 0 cho
đến khi gặp một X đến điểm đó nó tìm một 0 ở ngay bên phải của X đó và nếu
có, nó thay 0 bằng một X rồi lặp lại quá trình
1.1.4 Sơ đồ chuyển vị của máy Turing
Sơ đồ chuyển vị bao gồm:
- Một tập các nút ứng với tập các trạng thái
Trang 810 Máy Turing
- Cung từ trạng thái q đến p có nhãn là một hoặc nhiều mục có dạng X/Y D,trong đó X, Y là các ký hiệu băng, D là hướng L hoặc R được biểu diễn bởi ←hoặc →
Thí dụ: Sơ đồ chuyển vị của máy Turing ở thí dụ trước
Trang 91.1 Máy Turing 11
Hình 1.2 Sơ đồ chuyển vị của máy Turing kiểm nhận chuỗi 0n1n
1.1.5 Ngôn ngữ của máy Turing
Giả sử M = (Q, Σ, Γ, δ, q0, B, F )là một máy Turing Thế thì:
L(M ) = {W ∈ Σ∗ | q0W `∗ αpβ, p ∈ F, α, β ∈ Γ∗}
là ngôn ngữ được kiểm nhận bởi M
ở đây ký hiệu Σ∗ là tập hợp tất cả các xâu trên Σ
Định nghĩa 1.1 Ngôn ngữ được kiểm nhận bằng một máy Turing thường được gọi
là ngôn ngữ kể được đệ quy (recursively enumerable language) - hay ngôn ngữ RE
1.1.6 Máy Turing và bài toán dừng
Ta nói máy Turing dừng nếu nó đi vào một trạng thái q, quét ký hiệu băng X vàkhông có bước chuyển nào trong tình huống đó, nghĩa là δ(q, X) không xác định.Chúng ta cũng giả thiết rằng máy Turing luôn luôn dừng khi nó đi vào trạngthái kết thúc
Các máy Turing luôn luôn dừng bất kể nó có kiểm nhận hay không là một môhình tốt cho khái niệm thuật toán
- Nếu một thuật toán giải một bài toán đã cho thực sự tồn tại thì ta nói bài toán
đó là khả quyết (decidable)
Trang 1012 Máy Turing
1.2 Các kỹ thuật lập trình cho máy Turing
1.2.1 Lưu trữ bên trong trạng thái
Máy Turing có khả năng không thua kém gì một máy tính thực sự
Bộ phận điều khiển hữu hạn có thể dùng không chỉ để biểu diễn một vị trí trong
"chương trình" của máy TM mà còn dùng để lưu trữ một lượng dữ liệu hữu hạn.Hình vẽ sau gợi ý cho kỹ thuật này:
Hình 1.3 Máy Turing được xem như một chỗ chứa trong bộ phận điều khiển hữuhạn và nhiều rãnh trên băng nguyên liệu
Thí dụ: Chúng ta sẽ thiết kế một máy máy Turing
M = (Q, {0, 1}, {0, 1, B}, δ, [q0, B], {[q1, B]})ghi nhớ trong bộ phận điều khiển của nó ký hiệu đầu tiên (0 hoặc 1) mà nó đã thấy
và kiểm tra rằng ký hiệu đó không xuất hiện ở một chỗ khác trong nguyên liệu của
nó Vì thế máy Turing sẽ kiểm nhận ngôn ngữ 01∗+ 10∗
Tập các trạng thái Q là Q = {q0, q1} ì {0, 1, B} gồm 2 thành phần:
a) Phần điều khiển là q0 hoặc q1 ghi nhớ xem máy Turing đang làm gì Trạng thái
điều khiển q0 chỉ ra rằng máy Turing chưa đọc ký hiệu đầu tiên của nó, q1 chỉ
ra rằng máy Turing đã đọc ký hiệu đó và đang kiểm tra để biết rằng nó khôngxuất hiện ở một chỗ khác bằng cách di chuyển sang phải hoặc trái và hi vọng
đến được một ô trống
Trang 111.3 Các biến thể của máy Turing cơ bản 13b) Phần dữ liệu ghi nhớ ký hiệu đầu tiên đã gặp (là 0 hoặc 1) Ký hiệu B chỉ rarằng chưa có ký hiệu nào được đọc.
Hàm chuyển vị δ :
1 δ([q0, B], a) = ([q1, a], a, R) với a=0 hoặc 1
Khởi đầu q0 là trạng thái điều khiển và phần dữ liệu là B Ký hiệu đang đượcquét (là a) sẽ được chép vào thành phần thứ hai của trạng thái và máy Turing
di chuyển sang phải rồi chuyển sang trạng thái đk q1
2 δ([q1, a], ¯a) = ([q1, a], ¯a, R) với ¯a là trị bù của a Trong trạng thái q1 máyTuring vượt qua mỗi ký hiệu 0 hoặc 1 khác với ký hiệu nó đã ghi trong trạngthái của nó và tiếp tục di chuyển sang phải
3 δ([q1, a], B) = ([q1, B], B, R) với a=0 hoặc 1 nếu máy Turing đến được ôtrống đầu tiên nó chuyển vào trạng thái kết thúc [q1, B]
để ý rằng máy Turing không xác định đối với δ([q1, a], a)với a=0 hoặc 1 Vì thếnếu máy Turing bắt gặp một xuất hiện thứ hai của ký hiệu mà lúc đầu nó đã lưutrong bộ phận điều khiển hữu hạn của nó thì nó sẽ dừng
1.2.2 Máy Turing nhiều rãnh
Mỗi ô đang được quét trong hình vẽ chứa ký hiệu [X, Y, Z]
1.3 Các biến thể của máy Turing cơ bản
1.3.1 Máy Turing đa băng (multitape Turing machine
Là loại máy được gợi tả như trong hình vẽ
Thiết bị này có một bộ phận điều khiển hữu hạn trạng thái và một sô băng Mỗibăng được chia thành nhiều ô và mỗi ô có thể giữ một ký hiệu bất kỳ trong bộ chữcái hứu hạn cho băng
Khởi đầu:
1 Nguyên liệu là một dãy các ký hiệu nguyên liệu được đặt trên băng thứ nhất
2 Tất cả mọi ô khác của mọi băng đều là ô trống
Trang 1214 Máy Turing
Hình 1.4 Máy Turing đa băng
3 Bộ phận điều khiển ở trạng thái đầu
4 Mọi đầu đọc ghi khác đều nằm tại ô bất kỳ nào đó Vì các băng trừ băngthứ nhất đều hoàn toàn trống nên việc đầu đọc-ghi của nó nằm ở đâu khôngquan trọng
Mỗi bước chuyển của máy Turing đa băng phụ thuộc vào trạng thái và ký hiệu đang
được quét bởi mỗi đầu đọc-ghi Trong mỗi bước chuyển máy Turing đa băng thựchiện những việc sau:
1 Bộ phận điều khiển chuyển sang một trạng thái mới, trạng thái này có thểgiống như trạng thái trước đó
2 Trên mỗi băng một ký hiệu mới được ghi chồng lên ô đang được quét
3 Mỗi đầu đọc-ghi thực hiện một bước chuyền sang L, W hoặc đứng yên (S).Các đầu đọc-ghi di chuyển độc lập Với máy một băng không cho phép đầu
Trang 131.3 Các biến thể của máy Turing cơ bản 15Nhớ lại rằng các ngôn ngữ kể được đệ quy được định nghĩa là những ngôn ngữ
được kiểm nhận bởi máy Turing 1 băng Chắc chắn rằng máy Turing đa băng kiểmnhận tất cả các ngôn ngữ RE vì máy một băng chính là máy đa băng Ngược lại?
Định lý 1.1 Mỗi ngôn ngữ được kiểm nhận bằng máy Turing đa băng đều thuộcloại kể được đệ quy
Thời gian chạy và phép dựng đa băng thành một băng
Định nghĩa độ phức tạp thời gian hay thời gian chạy (running time): Thời gianchạy của máy Turing trên nguyên liệu W là số bước máy Turing thực hiện trướckhi dừng Nếu máy Turing không dừng trên W thì thời gian chạy trên máy Turing
Chứng minh: Xem sách Cơ sở lý thuyết tính toán (biên dịch T D Quang)
1.3.2 Máy Turing không đơn định(Non deterministic Turing
Machine)
- Máy Turing không đơn định (NTM) khác với các biến thể của máy Turing
đơn định đã xét ở Đ2 ở chỗ nó có một hàm chuyển vị δ(q, X) là hàm đa trị, tức làgiá trị của δ(q, X) là bộ {(q1, Y1, D1), (q2, Y2, D2), , (qk, Yk, Dk)}với k là một sốnguyên hữu hạn nào đó
- Ngôn ngữ được kiểm nhận bởi một NTM được định nghĩa như sau: M kiểmnhận một chuỗi nguyên liệu W ∈ Σ∗ nếu có một dãy các chọn lựa di chuyển dẫn
từ ID khởi đầu với W làm nguyên liệu thành một ID có một kiểm trạng (trạng tháikết thúc) Sự tồn tại của những chọn lựa khác mà không dẫn đến kiểm trạng hoàntoàn không gây ra vấn đề gì
Các NTM không kiểm nhận bất kỳ ngôn ngữ nào không được một máy Turing
đơn định (DTM) kiểm nhận
Định lý 1.3 Nếu Mn là một máy Turing không đơn định thì có một máy Turing
đơn định MD sao cho
L(Mn) = L(MD)
Trang 1416 Máy Turing
Hình 1.5 Mô phỏng một NTM bằng một DTM
Chứng minh: MD sẽ được thiết kế như một máy đa băng được phác họa nhưsau:
Băng thứ nhất giữ các ID của MN, kể cả trạng thái của MN Một ID của MN
được đánh dấu là "hiện hành" và các ID kế vị của nó đang được khám phá.Trong hình vẽ trên ID3 được đánh dấu bởi dấu ì cùng với dấu phân cách giữacác ID là ∗ Tất cả các ID ở bên trái ID hiện hành đã được khám phá và có thể
được bỏ qua
Để xử lý ID hiện hành MD thực hiện các hành động sau:
Trang 152.1.2 Bản mã cho máy Turing
Mục đích: nghĩ ra một bản mã nhị phân cho các máy Turing để mỗi máy Turingvới bộ chữ cái nguyên liệu {0, 1} có thể được xem như một chuỗi nhị phân
Để biểu diễn một máy Turing
M = (Q, {0, 1}, Γ, δ, B, F )như một chuỗi nhị phân, trước hết ta phải gán các số nguyên cho trạng thái, ký hiệubăng và hướng di chuyển L, R
Giả sử các trạng thái là q1, q2, , qr (r hữu hạn)
• Khởi trạng sẽ luôn là q1, q2 là kiểm trạng duy nhất Lưu ý rằng ta có thể giả thiếtmáy Turing dừng mỗi khi nó chuyển vào một kiểm trạng nên cũng chẳng cần
đến quá một kiểm trạng
• Giả sử các ký hiệu băng là X1, X2, , Xs với một s nào đó X1 luôn là 0, X2
luôn là 1, X3 luôn là B
Trang 1618 Tính bất khả quyếtCác ký hiệu băng khác có thể được gán các số nguyên còn lại một cách tùy ý.
• Gọi hướng L là D1, R là D2
Sau khi đã gán các số nguyên để biểu diễn trạng thái, ký hiệu băng và hướng ta cóthể mã hóa hàm chuyển vị δ
Giả sử một quy tắc chuyển vị là δ(qi, Xj) = (qk, Xl, Dm)với i, j, k, l, m là các
số nguyên Ta sẽ mã hóa quy tắc này bằng chuỗi 0i10j10k10l10m
Lưu ý rằng vì tất cả các giá trị của i, j, k, l, m ≥ 1 nên không thể xuất hiện haihoặc nhiều ký hiệu 1 liên tiếp nhau trong bản mã của một chuyển vị
Một bản mã cho toàn bộ máy M gồm tất cả các bản mã cho các chuyển vị theomột thứ tự nào đó và được phân cách bởi cặp 11:
C111C211 Cn−111Cn,trong đó mỗi Ci là một bản mã cho một chuyển vị
M và một chuỗi W Với cặp này chúng ta viết bản mã cho M, theo sau là 111, rồi
W
2.1.3 Ngôn ngữ chéo hóa
Ta đã biết rằng máy Mi có bản mã là Wi, đó là chuỗi nhị phân thứ i Nhiều sốnguyên không tương ứng với bất kỳ máy Turing nào cả Thí dụ 11001 không bắt
Trang 172.2 Một bài toán bất khả quyết thuộc loại RE 19
đầu bằng 0 và 001011101001100 có 3 số 1 liên tiếp nhau Nếu Wi không phải làmột bản mã có nghĩa cho một máy Turing thì chúng ta sẽ cho Mi là máy Turingvới một trạng thái và không có chuyển vị Nghĩa là với những giá trị này của i, Mi
là máy Turing sẽ dừng ngay lập tức trên mọi nguyên liệu Vì thế L(Mi)sẽ là ∅ nếu
Wi không phải là một bản mã có nghĩa cho một máy Turing
Bây giờ ta đưa ra định nghĩa
Định nghĩa 2.1 Ngôn ngữ Ld được gọi là ngôn ngữ chéo hóa là tập các chuỗi Wi
sao cho Wi 6∈ L(Mi), ở dây Mi là máy Turing có bản mã Wi
Định lý 2.1 Ld không phải là ngôn ngữ kể được đệ quy nghĩa là không có máymáy Turing nào kiểm nhận Ld
Chứng minh: Ta sẽ chứng minh rằng không có máy Turing nào kiểm định ngônngữ Ld
Giả sử Ld là ngôn ngữ của một máy Turing M nào đó Vì Ld là ngôn ngữ trên
bộ chữ cái {0, 1} nên M có mặt trong danh sách các máy T với bộ chữ cái nguyênliệu này Vì thế, phải có ít nhất một bản mã cho M, chẳng hạn đó là bản thứ i , tức
là, M = Mi
Bây giờ ta xem Wi có thuộc Ld hay không
Nếu Wi ∈ Ldthì Mi kiểm nhận Wi Nhưng như thế thì theo định nghĩa của Ld,
Wi 6∈ Ldvì Ldchỉ chứa những Wj sao cho Mj không kiểm nhận Wj
Tương tự, nếu Wi 6∈ Ld thì Mi không liểm nhận Wi Vì thế, theo định nghĩacủa Ld thì Wi ∈ Ld
Vì Wi không thể vừa thuộc Ldlại vừa không thuộc Ld, ta kết luận rằng có mâuthuẫn trong giả thiết của ta về sự tồn tại của máy M Vì vậy, Ld không phải làngôn ngữ đẹ quy kể được
2.2 Một bài toán bất khả quyết thuộc loại RE
Chúng ta đã gặp ngôn ngữ Ld và đã chứng minh rằng không có máy Turingnào kiểm nhận nó Mục tiêu tiếp theo của chúng ta là điều chỉnh lại cấu trúc củacác ngôn ngữ đẹ quy kể được (ngôn ngữ được kiểm nhận bởi máy Turing) thànhhai lớp Một lớp tương ứng với cái mà chúng ta thường xem như một thuật toán
và chúng có một máy Turing không chỉ kiểm nhận được ngôn ngữ đó, mà còn cho
ta biết khi nào nó quyết định được chuỗi nguyên liệu không thuộc ngôn ngữ Mộtmáy Turing như thế sẽ dừng dù nó có đến được một kiểm trạng hay không
Trang 1820 Tính bất khả quyếtLớp ngôn ngữ thứ hai gồm các ngôn ngữ RE được kiểm nhận bởi máy Turingmột cáh thức không thuận tiện: nếu nguyên liệu thuộc ngôn ngữ thì máy sẽ kiệmnhận và dừng, nhưng nếu nguyên liệu không thuộc ngôn ngữ thì máy Turing có thểchạy vô hạn.
Mối liên hệ giữa các lớp ngôn ngữ: đệ quy, RE và phi RE:
Từ định nghĩa của ngôn ngữ kể được đệ quy và ngôn ngữ đệ quy suy ra rằngngôn ngữ đệ quy là ngôn ngữ kể được đệ quy
Chúng ta sẽ định nghĩa ngôn ngữ phổ quát (universal language) Lu , mà ta sẽchứng minh rằng nó không phải là ngôn ngữ đệ quy, mặc dù là ngôn ngữ kể được
đệ quy
2.2.2 Ngôn ngữ phổ quát
Định nghĩa 2.3 Ngôn ngữ phổ quát Lu là tập các chuỗi nhị phân mã hóa cặp(M, W ), trong đó M là máy Turing với bộ chữ cái nhị phân làm nguyên liệu và W
là một chuỗi 0 và 1 sao cho W ∈ L(M)
Có nghĩa là Lu là tập các chuỗi biểu diễn một máy Turing và một nguyên liệu
được kiểm nhận bởi máy đó
Trang 192.2 Một bài toán bất khả quyết thuộc loại RE 21
Hình 2.1 Mối liên hệ giữa các ngôn ngữ đệ quy, RE và phi-RE
Ta sẽ chứng tỏ rằng tồn tại máy Turing U gọi là máy Turing vạn năng hay máyTuring phổ quát sao cho Lu = L(U ) vì nguyên liệu cho U là một chuỗi nhị phân,
U thật sự là một máy Mj nào đó trong danh sách tất cả các máy Turing nhị phân
Chú ý: Phân biệt các loại ngôn ngữ: Ngôn ngữ kể được đệ quy (recursivelyenumerable language) L là ngôn ngữ của một máy Turing nào đó L = L(M) mà
đối với một xâu bất kỳ W thì:
- M kiểm nhận xâu đó và dừng nếu W ∈ L
- Nếu W 6∈ L thì hoặc M không kiểm nhận xâu W và dừng hoặc không dừng (lặpvô hạn)
Ngôn ngữ đệ quy: L = L(M) sao cho ∀W thì:
- Nếu W ∈ L thì M kiểm nhận W và dừng
- Nếu W 6∈ L thì M không kiểm nhận và dừng
2.2.3 Tính bất khả quyết của ngôn ngữ phổ quát
Định nghĩa 2.4 Lu là ngôn ngữ kể được dệ quy (RE) nhưng không đệ quy
Trang 2022 Tính bất khả quyết
2.3 Các bài toán bất khả quyết về máy Turing
Ta sẽ dùng các ngôn ngữ Lu và Ld để đưa ra các ngôn ngữ khác thuộc loại bấtkhả quyết hoặc không kể được đệ quy Phép quy dẫn (reduction) sẽ được sử dụngtrong mỗi chứng minh
2.3.1 Phép quy dẫn
Nếu có một phép biến đổi các thể hiện của bài toán P1 thành các thể hiện củabài toán P2 và có cùng kết quả trả lời thì ta nói rằng đã thu (quy dẫn) P1 về P2.Bằng cách này ta có thể chỉ ra rằng P2 ít nhất cũng khó như P1 Vì thế nếu P1
không đệ quy thì P2 cũng không thể đệ quy Nếu P1 không phải RE thì P2 cũngkhông thể là RE Phép quy dẫn phải chuyển thể hiện của P1 có trả lời "yes" thànhmột thể hiện của P2 cũng có trả lời "yes", và thể hiện của P1 với trả lời "No" thànhthể hiện của P2 với "No"
Một cách hình thức, một phép thu từ P1 về P2 là một máy Turing nhận một thểhiện của P1 được ghi trên băng của nó và dừng với một thể hiện của P2 trên băngcủa nó
Định lý 2.2 Nếu ∃ phép thu P1 về P2 thì:
a) Nếu P1 là bất khả quyết ⇒ P2 bất khả quyết
b) P1 không kể được đệ quy ⇒ P2 không kể được đệ quy
Chứng minh: (xem Tạ Đình Quang, tr 83)
2.3.2 Các máy Turing kiểm nhận ngôn ngữ rỗng
Định nghĩa 2.5
Le= {M | L(M ) = ∅}
Lne= {M | L(M ) 6= ∅}
2.4 Bài toán tương ứng POST
Chúng ta sẽ quy dẫn những câu hỏi bất khả quyết của máy Turing thành nhữngcâu hỏi bất khả quyết cho những sự việc "có thật" Ta bắt đầu bởi bài toán tương
Trang 212.4 Bài toán tương ứng POST 23
Hình 2.2 Các phép thu chứng minh tính bất khả quyết cho bài toán PCP
ứng POST tuy vẫn còn trừu tượng nhưng liên quan đến chuỗi chứ không phải máyTuring Mục tiêu của ta là chứng minh bài toán của các chuỗi là bất khả quyết vàsau đó dùng tính bất khả quyết của nó để chứng minh những bài toán bất khả quyếtkhác bằng cách quy dẫn bài toán POST về những bài toán này
Chúng ta sẽ chứng minh bài toán POST là bất khả quyết bằng cách quy dẫn Lu
về bài toán POST để dễ chứng minh ta đưa ra một phiên bản có điều chỉnh MPCP
và quy dẫn nó về bài toán POST (Post's Correspondence Problem - PCP) ban đầu.Sau đó ta quy dẫn Lu về MPCP Vì Lu là bất khả quyết ta suy ra PCP cũng là bấtkhả quyết
2.4.1 Định nghĩa bài toán tương ứng POST
Một thể hiện (instance) của bài toán PCP bao gồm 2 danh sách các chuỗi trênmột bộ chữ cái Σ nào đó, 2 danh sách phải có chiều dài bằng nhau Ta gọi chúng
là danh sách A và B:
A = w1, w2, , wk
B = x1, x2, , xk
Với mỗi i cặp (wi, xi) được gọi là một cặp tương ứng
Ta nói thể hiện này của PCP có một lời giải nếu ∃ một dãy gồm 1 hay nhiều sốnguyên i1, i2, , im mà khi được diễn giải như chỉ số cho các chuỗi trong các danhsách A và B, chúng sinh ra cùng một chuỗi, nghĩa là
wi1wi2 wim = xi1xi2 xim.Khi đó ta nói dãy i1, i2, , im là một lời giải cho thể hiện này của PCP
Bài toán PCP được phát biểu như sau:
Cho một thể hiện của PCP Hãy cho biết liệu thể hiện này có lời giải hay không?Thí dụ 1: Đặt Σ = {0, 1} Giả sử A và B là các danh sách sau
Trang 22Trong trường hợp này PCP có 1 lời giải Chẳng hạn, cho m = 4, i1 = 2, i2 =
1, i3 = 1, i4 = 3 Lời giải là danh sách 2, 1, 1, 3 vì:
Giả sử thể hiện trên có lời giải, chẳng hạn i1, i2, , im, m ≥ 1 Ta khăng định
i1 = 1vì nếu i1 = 2thì chuỗi wi 1wi2 wimbắt đầu từ 0 , trong khi chuỗi xi 1xi2 ximbắt đầu từ 1; nếu i1 = 3 thì ngược lại
Nếu i1 = 1 thì hai chuỗi tương ứng wi 1wi2 wim và xi 1xi2 xim từ các danhsách A và B phải bắt đầu là
Nhưng ta không thể mở rộng 1, 3 thành một lời giải Lý do là ta buộc phải chọn
i3 = 3, i4 = 3, để tránh tình huống bất tương xứng Ta không bao giờ cho chuỗi
Abắt kịp chuỗi B và vì thế không bao giờ đạt tới lời giải
Trang 232.4 Bài toán tương ứng POST 25
2.4.2 Bài toán PCP có điều chỉnh (Modified Post's
Correspon-dence Problem)
Ta sẽ điều chỉnh PCP như sau:
Đưa thêm một yêu cầu đối với lời giải là cặp đầu tiên trong các danh sách A
và B phải là cặp đầu tiên trong lời giải, tức là lời giải là rỗng hoặc các số nguyên
i1, i2, , im sao cho
w1wi1wi2 wim = x1xi1xi2 ximThí dụ 3: Lại xét 1 thể hiện của PCP trong thí dụ 1 Hai chuỗi của một lời giải sẽbắt đầu như sau:
đưa ra một ký hiệu mới ∗ vào trong thể hiện của PCP và cho nó nằm giữa mỗi
ký hiệu trong các chuỗi của thể hiện MPCP Trong các chuỗi của danh sách A các
∗ theo sau các ký hiệu của Σ, còn trong các chuỗi của danh sách B các ∗ đi trướccác ký hiệu của Σ Ngoài ra trong danh sách của A và B còn thêm một cặp, trong
đó thêm một ∗ ở phía trước w1 và thêm cặp ($, ∗$)
Thí dụ 4: Một thể hiện của PCP và MPCP như sau:
Trang 24Chứng minh (xem trang 99-100).
2.4.3 Hoàn tất phép chứng minh tính bất khả quyết của PCP
Cần chỉ ra rằng Lu thu về được MPCP, nghĩa là cho cặp (M, W ) cần xây dựngmột thể hiện (A, B) của MPCP sao cho máy Turing M kiểm nhận W ⇔ (A, B)
có một lời giải
Định lý 2.4 Bài toán tương ứng POST là bất khả quyết
Chứng minh (xem trang 100-105 [1])
2.5 Nhứng bài toán bất khả quyết khác
Phương pháp chứng minh một bài toán là bất khả quyết là quy dẫn PCP về bàitoán đó