Professional Documents
Culture Documents
Trong một số mô hình, đầu đọc (head) di chuyển dọc theo băng tĩnh
(Stationary tape). Chỉ thị để được thực hiện (q1) được chỉ ra bên trong đầu đọc.
Trong mô hình này, băng trống là tất cả các ô bằng 0. Các ô vuông được tô đậm,
gồm ô đã được quét qua bởi đầu đọc, và các ô vuông được đánh dấu 1, 1, B và biểu
tượng đầu đọc, tạo thành trạng thái của hệ thống.
Một cách rõ ràng hơn, có thể hình dung một máy Turing sẽ bao gồm các
thành phần sau:
Một băng (TAPE), hay còn gọi là một bộ nhớ vô hạn, dưới dạng một
băng gồm nhiều ô, có thể kéo dài vô hạn về phía phải. Mỗi ô trên băng có
thể chứa một ký hiệu thuộc một bộ chữ, gọi là bộ chữ trên băng (mà một
phần trong đó là bộ chữ vào, dùng cho xâu vào);
Một đầu đọc (HEAD) di chuyển ở trên băng, ở mỗi thời điểm nhìn vào
một ô trên băng;
Một tập hữu hạn các trạng thái, trong đó có phân biệt một trạng thái đầu
và một tập hợp các trạng thái đã được thừa nhận;
Một hàm dịch chuyển chứa một tập hữu hạn chỉ thị cho phép cứ với mỗi
trạng thái của máy và một ký hiệu đọc được trong ô đối diện với đầu đọc,
máy sẽ thực hiện các bước như sau:
o Chuyển trạng thái
o In một ký hiệu trên băng tại ô đang duyệt (nghĩa là thay ký hiệu đọc
được trên băng bằng ký hiệu nào đó)
Máy Turing và tính khả quyết của thuật toán 2
o Dịch chuyển đầu đọc - viết (sang trái (L), sang phải (R) hoặc đứng
yên(Æ))
a1 a1 … … a1 B B
Băng
Đầu đọc
q
Trạng thái
Quá trình thực hiện của máy Turing có thể được mô tả như sau:
Lúc khởi đầu, xâu vào được đặt trên băng (tận cùng bên trái). Mọi ô khác
trên băng đều chứa một ký hiệu đặc biệt, B (blank), được gọi là ký hiệu
trống. Đầu đọc trỏ vào ô thứ nhất trên băng và máy ở trạng thái đầu.
Cứ mỗi bước trong quá trình thực hiện (xem hình 2), máy sẽ thực hiện:
o Đọc ký hiệu đối diện đầu đọc,
o Thay ký hiệu đó bằng ký hiệu tính được từ hàm dịch chuyển,
o Dời đầu đọc một ô sang trái hay sang phải theo hướng chỉ định bởi
hàm dịch chuyển,
o Đổi trạng thái hiện tại thành trạng thái tiếp theo, cho bởi hàm dịch
chuyển.
Xâu vào là được thừa nhận khi quá trình thực hiện đối với xâu đó đạt đến
một trạng thái thừa nhận.
0 1 0 1 1 B B
0 1 1 1 1 B B
Turing đi vào trạng thái q3 duyệt qua các Y để kiểm tra có hay không có ký hiệu 1
còn lại. Nếu theo ngay sau các Y là B, nghĩa là trên băng nhập không còn ký hiệu 1
nào nữa thì máy Turing sẽ đi vào q4 (trạng thái kết thúc) để chấp nhận input. Ngược
lại input bị loại bỏ.
Ta có hàm chuyển d được cho trong bảng sau :
Hình 5. Sơ đồ chuyển vị cho một máy Turing kiểm nhận các chuỗi có dạng 0n1n
CHƯƠNG 2. TÍNH KHẢ QUYẾT CỦA THUẬT TOÁN
Church đã sử dụng các công cụ từ logic, khái niệm các hàm đệ quy, để hình thức
hóa khái niệm về khả năng giải được về mặt thuật toán.
Trong cùng một năm khi Church công bố công trình của mình, Turing cũng
đã đưa ra khái niệm về máy Turing. Và ngày nay, chúng ta gọi những bài toán có
khả năng tính được về mặt thuật toán (algorithmic solvability) nếu chúng có thể
được tính bởi máy Turing. Tuy nhiên, các nhà khoa học đã thống nhất rằng lớp các
hàm có thể tính được bằng thuật toán trùng với lớp các hàm có thể tính được bằng
máy Turing. Nhiều mô hình tính toán khác đã được đề xuất (một số mô hình tương
đối khác với máy Turing) nhưng chúng ta vẫn chưa tìm được một mô hình máy có
thể giải quyết được nhiều vấn đề tính toán hơn máy Turing. Trong phần sau đây,
chúng ta sẽ khảo sát về luận đề Church-Turing, một luận đề nền tảng trong lý thuyết
về tính khả quyết của bài toán
2. Luận đề Church-Turing
Luận đề Church-Turing đề cập đến khái niệm của một thuật toán hiệu quả
trong logic và toán học. Một thuật toán, hay thủ tục, M, cho việc thu được các kết
quả mong muốn được gọi là “hiệu quả” trong trường hợp:
M được thiết lập với hình thức một số hữu hạn các lệnh chính xác (từng
lệnh được biểu diễn dưới dạng một số hữu hạn các ký hiệu)
Nếu được thực hiện không lỗi, M sẽ đưa ra các kết quả mong muốn trong
một số hữu hạn bước.
Khái niệm về một thuật toán hiệu quả là một khái niệm không hình thức, và
các nỗ lực để xác định tính hiệu quả cho yêu cầu quan trọng mà thuật toán đòi hỏi
vẫn được được phát triển. Một trong những thành tựu hàng đầu của Turing – và là
bước phát triển lớn đầu tiên trong quá trình phát triển của lý thuyết tính toán – là đề
xuất một biểu thức được định nghĩa một cách nghiêm ngặt, qua đó phát biểu không
chính quy “bằng một thuật toán hiệu quả” có thể được thay “bằng một máy
Turing”. Tầm quan trọng của đề xuất Turing là ở chỗ: nếu đề xuất là chính xác, thì
việc nói về sự tồn tại và không tồn tại các thuật toán hiệu quả có thể được thay thế,
cả trong toán học và logic, bằng cách nói về sự tồn tại hay không tồn tại của các
chương trình máy Turing. Ví dụ, một người có thể thiết lập rằng không có thuật
toán hiệu quả để thực hiện một vấn đề nào đó bằng cách chứng minh rằng không có
máy Turing nào có thể thực hiện được cùng vấn đề đó.
Khái niệm hình thức được đề xuất bởi Turing là khái niệm về tính khả quyết
của máy Turing. Ông cho rằng mỗi khi có một thuật toán hiệu quả có thể thu được
các giá trị của một hàm toán học, hàm đó cũng có thể được tính bởi máy Turing.
Chúng ta cần chú ý rằng phần đảo của luận đề - bất kỳ thuật toán giải quyết vấn đề
nào có thể thực hiện bởi máy Turing đều hiệu quả - là đúng. Đó là do chương trình
máy Turing tự mình là một đặc tả của thuật toán hiệu quả, nên một người có thể, về
mặt lý thuyết, làm việc với bất kỳ một chương trình máy Turing nào, theo các lệnh
đã được định nghĩa trước và thực hiện các thao tác được yêu cầu.
Trước đó, Church cũng đã độc lập đề xuất một cách khác để thay thế cách
nói về các thuật toán hiệu quả với ngôn ngữ chính xác một cách chính quy, sử dụng
khái niệm khả năng định nghĩa-lambda (lambda-definability) thay vì “khả năng
tính được của máy Turing”. Trong đó, một hàm các số nguyên dương được gọi là
Máy Turing và tính khả quyết của thuật toán 8
có khả năng định nghĩa-lambda nếu giá trị của hàm có thể được tính bằng một quá
trình các phép thế được lặp lại. Và ông đã sử dụng biểu diễn (phi hình thức) “có thể
tính được hiệu quả” để chỉ ra rằng có một thuật toán hiệu quả để tính các giá trị
của hàm qua đề xuất:
“Xác định khái niệm của một hàm có thể tính được hiệu quả các số nguyên
dương bằng cách xác định khái niệm đó bằng khái niệm của hàm đệ quy của các số
nguyên dương (hay với khái niệm hàm có khả năng định nghĩa-lambda các số
nguyên dương”.
Trong thực tế, Church đã đề xuất “Một hàm các số nguyên dương có khả
năng tính được hiệu quả chỉ khi là hàm đệ quy”
Sự đảo lại, rằng mọi hàm đệ quy của các số nguyên dương là có khả năng
tính được hiệu quả, thường được xem là định lý đảo của luận đề Church.
Sau khi tìm hiểu đề xuất của Church, Turing nhanh chóng chứng minh được
rằng cấu trúc của khái niệm khả năng định nghĩa-lambda của Church và cấu trúc
khái niệm về khả năng tính được của ông là tương đương. Do đó, trong đề xuất của
Church, các từ “hàm đệ quy của các số nguyên dương” có thể được thay thế bởi các
từ “hàm các số nguyên dương có thể tính được bởi máy Turing”.
Và với quan điểm của các kết quả được tìm hiểu trên đây, nếu chỉ giới hạn
trong các hàm các số nguyên dương, thì luận đề của Church và của Turing đề xuất,
tuy có vẻ rất khác nhau, nhưng lại trở thành tương đương nhau, theo nghĩa là mỗi
hướng đề đưa ra chung một tập các hàm toán học. Luận đề Church-Turing là sự
khẳng định rằng tập này bao gồm mọi hàm có giá trị có thể thu được bằng một thuật
toán thỏa mãn các điều kiện trên đây cho tính hiệu quả. Tuy nhiên, cả Turing và
Church đề nhận ra rằng cách triển khai của Turing là “có sức thuyết phục hơn”
[turing] và “có ưu điểm trong việc đưa ra khả năng nhận dạng với tính hiệu quả…
hiển nhiên ngay lập tức” [Church].
Tóm lại, luận đề Church-Turing, mà nay đã trở thành chuẩn, được đề xuất
bởi Kleene như sau:
“Các luận đề của Turing và Church là tương đương nhau. Chúng ta có thể
xem các luận đề này vừa là luận đề Church, hay liên hệ với một trong các phiên bản
… của nó có quan hệ với máy Turing như Luận đề Church-Turing”.
Máy Turing và tính khả quyết của thuật toán 9