Tải bản đầy đủ (.docx) (25 trang)

TIỂU LUẬN về đề tài phân biệt hai mặt chính trị và tư tưởng trong giải quyết vấn đề tôn giáo

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 (383.58 KB, 25 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TIỂU LUẬN VỀ ĐỀ TÀI:

Phân biệt hai mặt chính trị và tư
tưởng trong giải quyết vấn đề tôn
giáo
Sinh viên: Lê Sỹ Đan
Mã số sinh viên: 20020044

download by :


Tiểu luận “Máy Turing”

Trang 1

Mục lục:
I.

PHẦN MỞ ĐẦU

II. PHẦN NỘI DUNG
1. MÔ TẢ VÀ ĐỊNH NGHĨA MÁY TURING (M)
2. MÁY TURING VÀ HÀM TÍNH ĐƯỢC
3. CÁC KỸ THUẬT XÂY DỰNG MÁY TURING

III. PHẦN KẾT LUẬN

download by :




Tiểu luận “Máy Turing”

Trang 2

Phần I

MỞ ĐẦU

Alan Turing đã đề xuất khái niệm máy Turing vào năm 1936 nhằm chính xác hoá
khái niệm thuật toán. Thực tế đã chứng tỏ rằng máy Turing là một công cụ rất tốt
để mô tả thuật toán. Trải qua nhiều thập niên, lý thuyết về máy Turing đã phát
triển khơng ngừng bởi sự đóng góp cơng sức của nhiều nhà khoa học, trong đó có
những cơng trình nền tảng của Hartmanis, Lewis, Stearns, Minsky, Blum,
Hopcroft, Ullman.
Thực chất, máy Turing là một mơ hình máy. Nó phân rã tồn bộ q trình
hoạt động ra thành các bước thao tác rất đơn giản. Bản thân máy Turing là một mơ
hình khái qt và đơn giản có thể mơ hình hố một q trình tính tốn bất kỳ.
Máy Turing có thể xem là một máy với bộ nhớ ngồi có dung lượng được
xem như vơ hạn. Trong bộ nhớ ngồi, các giá trị được bố trí sao cho có thể truy
cập, đọc và sửa đổi được.
Ta có thể xem máy Turing như là một máy đoán nhận một ngôn ngữ gọi là
ngôn ngữ đếm được đệ quy. Đồng thời được sử dụng để mô tả một lớp hàm quan
trọng, gọi là các hàm có thể tính được.

download by :


Tiểu luận “Máy Turing”


Trang 3

Phần II NỘI DUNG
1. MÔ TẢ VÀ ĐỊNH NGHĨA MÁY TURING (M)

1.1. Mô tả trực quan
Máy Turing có nhiều mơ hình và định nghĩa khác nhau cho máy Turing nhưng tất
cả chúng đều tương đương nhau. Song, nói chung mơ hình cơ bản của một máy
Turing gồm :
- Một bộ điều khiển hữu hạn.
- Một băng được chia thành các ơ, mỗi ơ có thể giữ được một ký hiệu trong số
hữu hạn các ký hiệu băng (các ký hiệu được phép viết trên băng).
- Một đầu đọc-viết, mỗi lần đọc có thể duyệt qua một ô trên băng để đọc hay viết
ký hiệu.
Ở đây, ta chỉ xét lớp các máy Turing đơn định với băng vơ hạn hai đầu.
B

B

a1

a2





an


B

B

Đầu đọc/ghi

q

Trạng thái

Hình 1. Các bộ phận của máy Turing
Với B (Blank) là một ký hiệu trắng của băng nhưng không phải là ký hiệu
nhập. Mỗi bước chuyển của máy Turing, phụ thuộc vào ký hiệu do đầu đọc đọc
được trên băng và trạng thái của bộ điều khiển, máy sẽ thực hiện các bước sau :
1) Chuyển trạng thái
2) 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
3)

Dịch chuyển đầu đọc-viết (sang trái (L), sang phải (R) hoặc đứng n(∅))băngbằngkýhiệunàođó)

Xâu vào được chấp nhận khi q trình thực hiện đối với xâu đó đạt đến trạng
thái kết thúc.
01011BB
=>
q

q

Hình 2. Một bước chuyển dịch
1.2. Định nghĩa

Định nghĩa 1: Máy Turing đơn định là một bộ bảy
M = <Q, , , , s0, B, F>,
trong đó,

download by :


Tiểu luận “Máy Turing”

Trang 4

Q là tập hữu hạn khác rỗng, gọi là tập các trạng thái;
là một bảng chữ, gọi là bảng chữ vào hay bảng chữ trong;
là một bảng chữ, , gọi là bảng chữ ngoài hay tập các ký hiệu có thể ghi được
lên băng;
: D Q x x {R, L}, với D Q x và R, L Q x , gọi là ánh xạ chuyển; s0 Q,
gọi là trạng thái đầu;
B \ , gọi là ký hiệu trắng;
F Q, gọi là tập các trạng thái kết thúc.
Trong trường hợp miền giá trị của là P(Q x x {R, L}) thì máy Turing
được gọi là khơng đơn định và cũng như trong trường hợp ôtômat, lớp các ngơn
ngữ được đốn nhận bởi máy Turing đơn định và không đơn định sẽ trùng nhau.
Định nghĩa 2: Cho máy Turing M = <Q, , , , s0, B, F>. Bộ ba < , s, a >, trong đó ,
*, s Q, a , không được bắt đầu và không được kết thúc bởi B, được gọi là một cấu
hình của M. a được gọi là từ ứng với cấu hình đã cho.
Mỗi cấu hình < , q, a > của M chỉ ra rằng tại thời điểm đang xét, nội dung
của từ ghi trên băng là gì, máy đang đọc ký hiệu nào và đang ở trạng thái nào?
Cấu hình của máy Turing M có thể mơ tả bằng hình vẽ sau đây:
B


Tập trạng thái
điều khiển
Hình 3. Cấu hình của máy Turing
Bộ ba < , s0, a >, trong đó a , *, được gọi là hình trạng đầu (có từ ứng với nó là a ).
Định nghĩa 3: Cho máy Turing M = <Q, , , , s 0, B, F>. Dưới tác động của ánh xạ chuyển
trạng thái , cấu hình có thể được dịch chuyển đến cấu hình của M, ký hiệu
giản là , theo nguyên tắc sau đây:

M

hay đơn

1) (s, a)=<q, b, R>:
a) =c

1

a

s

c

+

:

< b, q, c 1>, nếu b {B}*,

+


B

*

,c ,1

1

B

< , q, c 1>, nếu

B

b

b {B}*,

download by :

c

q

1

B



Tiểu luận “Máy Turing”

Trang 5

B

BB

B

q

s
b) = :

+ =< , s, a>

< b, q, B>, nếu

b {B}*,

B

s

+ =< , s, a>
B

a


B

B

B

B

q

< , q, B>, nếu
B

b {B}*,
B

B

s

d

1

1

:

B


a

+
a

B

1

b) = :

B

d

1

b

B

q

< 1, q, B>, nếu db
B

B

B


{B}*,
B

1

s

B

B

B

B

< , q, Bb >, nếu Bb

B

{B}*,
B

a
s

q

+ =< , s, a >
B


B

q

+ =< , s, a >

B

B

*

s

B

B

< 1, q, db >, nếu db {B}*,

+

B

B

q

2) (s, a)=<q, b, L>:
a) = 1d , d ,


B

B

a

B

< , q, B>, nếu Bb
B

B

B

{B}*,
B

B

B

B

B

B

B



download by :
s

q


Trang 6

Tiểu luận “Máy Turing”

Dãy cấu hình i (1 i n) của máy Turing M sao cho
là q trình tính tốn trong M, ký hiệu
.Các cấu hình khơng thể chuyển đến cấu hình mới được gọi là cấu hình
cuối. Quá trình tính tốn được bắt đầu bởi cấu hình đầu và kết thúc bởi cấu
hình cuối được gọi là một q trình tính tốn hồn chỉnh.
Định nghĩa 4: Cho máy Turing M = <Q, , , , s0, B, F> và *. Ta nói M đốn nhận
nếu tồn tại q trình tính tốn hồn chỉnh < , s0, > < , q, a > với q F. Tập hợp
1

n

các từ được đoán nhận bởi máy Turing M được gọi là ngơn ngữ được đốn
nhận bởi M, ký hiệu T(M).

Ngơn ngữ được đốn nhận bởi máy Turing cịn được gọi là ngôn ngữ đệ
quy đếm được (Recursively Enumerable). Ngôn ngữ được đốn nhận bởi máy
Turing mà nó sẽ dừng sau một số hữu hạn bước đối với mọi từ vào được gọi là
ngôn ngữ đệ quy. Từ định nghĩa suy ra rằng mọi ngôn ngữ đệ quy đều là ngôn ngữ

đếm được đệ quy.
* Chú ý: Sự hoạt động của máy Turing được thể hiện ở ánh xạ chuyển. Ánh
xạ này có thể được mơ tả bằng bảng hoặc đồ thị chuyển.
Bảng gồm các cột được đánh dấu bằng các ký hiệu của và các dòng được
đánh dấu bằng các trạng thái. Nếu (s, a)=<q, b, c>, với a, b , s, q Q, C {R, L} thì
bộ ba <b, C, q> được ghi vào ơ ứng với dịng s cột a.
Đồ thị chuyển là một đa đồ thị có hướng, có khuyên G với tập đỉnh của G là
Q. Với a, b , s, q Q, C {R, L}, nếu (s, a)=<q, b, c> thì có một cung từ s đến q với
nhãn là <a/b, C>.
Ví dụ 1: Cho máy Turing:
M = <{s0, s1, s2, s3, s4, s5, s6}, {0, 1}, {B, 0, 1, X}, , s0, B, {s0}>,
trong đó
(s0, 0)=<s1, X, R>, (s0, 1)=<s2, X, R>, (s1, 0)=<s1, 0, R>,
(s1, 1)=<s1, 1, R>, (s1, B)=<s3, B, L>, (s2, 0)=<s2, 0, R>,
(s2, 1)=<s2, 1, R>, (s2, B)=<s4, B, L>, (s3, 0)=<s5, B, L>,
(s4, 1)=<s6, B, L>, (s5, 0)=<s5, 0, L>, (s5, 1)=<s5, 1, L>,
(s5, X)=<s0, X, R>, (s6, 0)=<s6, 0, L>, (s6, 1)=<s6, 1, L>,
(s6, X)=<s0, X, R>.
Ánh xạ chuyển có thể cho bằng bảng sau:
S0
S1
S2
S3


download by :


Tiểu luận “Máy Turing”


S4
S5
S6
Đồ thị chuyển của M là:

<1/1,L>

<0/0,L>

Ta hãy xem máy Turing M hoạt động như thế nào đối với các từ 001 và 1001.

Đối với từ 001, ta có dãy hình trạng:

< , s0, 001>

Rõ ràng <X0, s3, 1> hình trạng cuối, nhưng s3 khơng phải là trạng thái
kết thúc, do đó M khơng đốn nhận từ 001.

Đối với từ 1001, ta có dãy hình trạng:

< , s0, 1001> <X, s2, 001> <X0, s2, 01> <X00, s2, 1> <X001, s2, B>
<X00, s4 , 1> <X0, s6, 0> <X, s6, 00> <B, s6 , X00> <X, s 0, 00>
<XX, s1 , 0> <XX0, s1, B> <XX, s3, 0> <X, s5, X> <XX, s0, B>. <XX, s0, B>
là hình trạng cuối và s0 là trạng thái kết thúc nên từ 1001 được đoán nhận bởi máy
Turing M.
Từ đồ thị chuyển dễ dàng thấy rằng M hoạt động với xâu vào như sau: M
đọc xâu từ trái sang phải. Bắt đầu từ trạng thái s0, thay ký hiệu đã đọc bởi ký hiệu
X, đồng thời nếu ký hiệu vừa đọc là 0 thì chuyển sang trạng thái s1 và nếu ngược
lại thì chuyển sang trạng thái s2. Tại các trạng thái s1 hoặc s2 , máy M chuyển đầu
đọc qua phải mà không thay đổi ký hiệu được đọc cho đến khi gặp ký hiệu B. Từ

s1 máy chuyển sang s3 và từ s 2 máy chuyển sang s4. Từ s3 nếu gặp 0 thì xố 0 và
sang s5, từ s4 nếu gặp 1 thì xố 1 và sang s6 . Ở đây, ta cần lưu ý rằng xoá 0 trong
trường hợp xuất phát từ s0, máy thay 0 bởi X và xoá 1 trong trường hợp xuất phát
từ s0, máy thay 1 bởi X. Tại các trạng thái s5 và s6, máy dịch chuyển qua trái mà
không làm thay đổi các ký hiệu trên băng cho đến khi gặp ký hiệu X, máy quay trở
lại s0 và tiếp tục quá trình trên cho đến khi máy dừng ở các trường hợp sau:
Máy ở trạng thái s3 gặp 1 hoặc ở trạng thái s4 gặp 0. Trong trường hợp này rõ
ràng ban đầu khơng có dạng -1 và máy khơng đốn nhận từ này.


download by :


Tiểu luận “Máy Turing”

Trang 8

Máy ở trạng thái s0 và gặp ký hiệu B. Điều này có nghĩa là các ký hiệu 0, 1
trên băng đã được thay bằng X hoặc B. Điều này chỉ xảy ra khi xâu vào có dạng
-1
. Vậy T(M)={ -1 | {0, 1}*}.
2. MÁY TURING VÀ HÀM TÍNH ĐƯỢC
Định nghĩa 5: Cho máy Turing M = <Q, , , , s0, B, F>. Hàm được xác định bởi
máy Turing M là hàm:
là một quá trình tính tốn hồn chỉnh
Ví dụ 2 Cho hàmyf( )= B ( {0, 1}*). Ta xây dựng máy Turing M xác định
ở đâ
hàm f như sau:M = <{s0, s1, s 2, s3, s4, s5, s6, s 7, s 8}, {0, 1}, {0, 1,X,Y,B}, , s0, B, Không xác định khi không tồn tại
q trình như vậy.


>,trong đó ánh xạ chuyển

được chỉ ra trong đồ thị chuyển dưới đây:

<B/B,R>

s8
<0/0,L>
<1/1,L>

M hoạt động như sau: Ký hiệu đầu tiên của được thay bởi X hoặc là Y

tuỳ thuộc vào ký hiệu đó là 0 hay 1, sau đó đầu đọc/ghi chuyển sang phải để tìm
ký hiệu B, thay ký hiệu B tiếp theo bằng 0 hoặc 1 tuỳ thuộc trước đó đã ghi x hay
Y. Sau đó chạy ngược lại để tìm ký hiệu X hay Y và thay nó bởi 0 hoặc 1 tương
ứng và lại chuyển sang phải. Nếu ký hiệu này là B thì tính tốn kết thúc, ngược
lại thì lặp lại quá trình trên. Dễ dàng thấy rằng, sau mỗi vòng thực hiện một ký
hiệu của được ghi sang bên phải và khi q trình tính tốn kết thúc trên băng là B
hay fM= B .
Định nghĩa 6: Cho hàm f: D N, với N là tập số tự nhiên, D Nm và m là một số
nguyên dương. Ở đây, với mỗi số tự nhiên n, ký hiệu =1n+1. Ta nói hàm f có
thể tính được bằng máy Turing nếu tồn tại máy Turing M xác định hàm sau:
h(B B …
Ví dụ 3: Cho hàm f(n1, n2)=n1+n2. Ta xây dựng máy Turing M với đồ thị chuyển

như sau:

s0



download by :


Tiểu luận “Máy Turing”

Trang 9

Đối với máy Turing M, với hình trạng đầu là < , s0, B B > chỉ có các q
trình tính tốn hồn chỉnh với hình trạng kết thúc < , s5, B
>. Do đó f là hàm
có thể tính được bằng máy Turing.
Định đề Church: Lớp các hàm có thể tính được bằng thuật tốn trùng với lớp
các hàm có thể tính được bằng máy Turring.
Định đề này không thể chứng minh được. Nhưng từ khi nêu lên định đề đó đến
nay, trãi qua gần 70 năm phát triển của khoa học tính tốn, thực tế ngày càng cũng
cố thêm niềm tin vào sự đúng đắn của định đề đó.
3.CÁC KỸ THUẬT XÂY DỰNG MÁY TURING
Trong phần này ta sẽ trình bày một số kỹ thuật xây dựng máy Turing làm cho nó
thực hiện được nhiều nhiệm vụ khá phức tạp, cho dù ta vẫn khơng vượt ra khỏi
định nghĩa của mơ hình cơ bản vốn rất đơn giản của máy Turing.
3.1.Lưu trữ trong bộ điều khiển (Storage in the finite control)
Một máy Turing có thể ghi nhớ một vài thơng tin nào đó trong quá trình thực hiện
nhờ vào các trạng thái. Chỉ cần xem mỗi trạng thái như là một cặp: phần tử đầu
tiên vẫn tham gia bình thường vào việc điều khiển, cịn phần tử thứ hai chính là
thơng tin cần nhớ. Như vậy số các trạng thái sẽ tăng lên, tuy nhiên vẫn ln là hữu
hạn. Nói chung thì ta có thể xem mỗi trạng thái như là một bộ-n, trong đó n-1
phần tử được dùng để nhớ các thơng tin cần thiết.
Ví dụ 4:
Xét máy Turing M nhận vào kí tự đầu tiên trong chuỗi nhập (viết trên bộ chữ cái
{0,1}) lưu trữ vào bộ điều khiển và kiểm tra rằng kí hiệu này khơng xuất hiện ở

vị trí nào khác trên chuỗi nữa hay không ?
Ta xây dựng M (Q, {0, 1}, {0, 1, B}, δ, [q0, B], B, F}), trong đó tập trạng thái Q
bao gồm các trạng thái dạng một cặp thành phần{q0, q1} × {0, 1, B}, tức là Q
gồm chứa các trạng thái [q0, 0], [q0, 1], [q0, B], [q1, 0], [q1, 1] và [q1, B]. Trong
mỗi cặp này thành phần thứ nhất ghi trạng thái điều khiển, thành phần thứ hai ghi
nhớ ký hiệu. Ta định nghĩa hàm chuyển δ như sau:
1) δ([q0, B], 0) = ([q1, 0], 0, R) δ([q0, B], 1) = ([q1, 1], 1, R)
Bắt đầu từ trạng thái [q0, B], TM đọc và lưu trữ ký hiệu đầu tiên trên băng vào
thành phần thứ hai trong bộ điều khiển,
2) δ([q1, 0], 1) = ([q1, 0], 1, R) δ([q1, 1], 0) = ([q1, 1], 0, R)
Nếc ký hiệu được đọc tiếp theo khơng giống với kí tự đang lưu trữ thì tiếp tục di chuyển sang phải.


δ([q1, 0], B) = ([q1, B], 0,
3) δ([q1, 1], B) = ([q1, B], 0,
M đi vào trạng thái kết thúc [q1,B] khi gặp B
M sẽ đi vào trạng thái kết thúc nếu nó tiến đến gặp kí hiệu B mà khơng có kí hiệu
nào giống với kí hiệu đầu tiên đang được lưu trữ trong bộ điều khiển. Vậy nếu M
tiến đến B ở trạng thái [q1,0] hoặc [q1,1] thì input được chấp nhận. Ngược lại, ở

download by :


Tiểu luận “Máy Turing”

Trang 10

trạng thái [q1,0] và gặp 0 hoặc ở trạng thái [q1,1] và gặp 1 thì M dừng và khơng
chấp nhận chuỗi input vì khơng có hàm trạng thái để xác định bước chuyển này.
Một cách tổng quát, ta có thể xem bộ điều khiển gồm k thành phần trong đó một

thành phần giữ trạng thái điều khiển và các thành phần kia (k-1 thành phần)
dùng lưu giữ thông tin.
3.2. Nhiều rãnh trên băng (Multiple tracks)
Một cách mở rộng khác, ta cũng có thể xem băng của TM được chia thành k
thành phần, với k > 1 và hữu hạn.
Một ký hiệu trên băng được xét là một bộ gồm k ký hiệu, mỗi ký hiệu nằm
trên một rãnh.
Ví dụ 5: Thiết kế M nhận vào một số nguyên n (viết ở dạng nhị phân) và kiểm
tra xem đó có phải là số ngun tố hay khơng ?
Ta dùng băng 3 rãnh như hình 7 với nguyên tắc sau :
Số n ở dạng nhị phân được đưa vào trên rãnh 1 và được bao bởi cặp dấu và $.
Như vậy các ký hiệu được phép ghi trên băng là [ , B, B], [0, B, B], [1,



[$, B, B]. Các ký hiệu này tương ứng với
nhập. Ký hiệu Blank là [B, B, B].
Viết số 2 dạng nhị phân trên rãnh 2 (tức 10)
Chép rãnh 1 vào rãnh 3 sau đó lấy rãnh 3 trừ rãnh 2 nhiều lần nhất có thể
được (thực hiện việc chia số cần kiểm tra cho số trên rãnh 2, lấy phần dư)
Xét số còn lại (số dư) :
- Nếu số còn lại là 0 thì input khơng là số ngun tố (vì nó chia hết cho số
trên rãnh 2)
- Nếu số cịn lại khác 0 thì tăng số trên rãnh 2 thêm một đơn vị: nếu số trên rãnh 2
bằng số trên rãnh 1 (số n) thì input n là số nguyên tố vì n đã khơng chia hết cho
bất kỳ số nào từ 2 đến n -1. Nếu số trên rãnh 2 nhỏ hơn số trên rãnh 1 thì ta lặp lại
quá trình trên với số mới trên rãnh 2.

Hình 4. Máy Turing với băng 3 rãnh
Hình 4 trên mơ tả một TM với k = 3, kiểm tra số n = 47 viết trên rãnh 1 dưới dạng

nhị phân, TM đang thực hiện phép chia 47 cho 5. Nó đã trừ 2 lần số 5 vào số 47,
vậy ở rãnh 3 hiện đang có số 37.
3.3. Đánh dấu ký hiệu (Checking off symbols)
Kỹ thuật đánh dấu thường dùng để nhận diện∈ các ngôn ngữ được∈ định nghĩa bằng cách lặp lại chuỗi chẳng
hạn như {ww | w Σ*}; {wcy | w, y Σ*, w ≠ y} hoặc

download by :


Tiểu luận “Máy Turing”

{wwR | w
i

Σ*} hoặc các
i

1} hoặc { aibjck | i = j hoặc j = k} .

{a
b
|i≥
Ta dùng một rãnh mở rộng trên băng để giữ ký hiệu đánh dấu √. Ký hiệu √ xuất
hiện khi ký hiệu trên rãnh ngay bên dưới nó đã hoặc đang được xét bởi TM.


Ví dụ 6 : Xét∈ máy Turing M (Q, Σ, , δ, q0, B, F) nhận diện ngơn ngữ L có dạng {wcw | w (a+b)+} với các thành phần như sau :

Q = {[q, d] | q = q1, ..., q9 và d = a, b hoặc B} = {q1, ..., q9} × {a, b, B} (thành


phần thứ hai của các trạng thái dùng để lưu trữ ký hiệu nhập)
Σ = {[B, d] | d = a, b, c} (ký hiệu nhập [B, d] được xác định bởi
d) = {[X, d] | X = B hoặc √ ; d = a, b, c hoặc B}.
q0 = [q1, B]
B = [B, B] được định nghĩa là B, ký hiệu
Blank. F = {[q9, B]}.
Với d = a hoặc b; e = a hoặc b, ta định nghĩa hàm chuyển δ như sau:
1) δ([q1, B], [B, d]) = ([q2, d], [√, d], R)
M đánh dấu ký hiệu được duyệt trên băng, lưu trữ vào bộ điều khiển và
dịch chuyển sang phải.
2) δ([q2, d], [B, e]) = ([q2, d], [B, e], R)
M tiếp tục dịch phải trên các ký hiệu chưa đánh dấu và tìm c.
3) δ([q2, d], [B, c]) = ([q3, d], [B, c], R)
Khi tìm thấy c, M đi vào trạng thái mà thành phần đầu tiên là q3.
4) δ([q3, d], [√, e]) = ([q3, d], [√, e], R) M
dịch phải qua các ký hiệu đã đánh dấu. 5)
δ([q3, d], [B, d]) = ([q4, B], [√, d], L)
M gặp ký hiệu chưa đánh dấu. Nếu ký hiệu chưa đánh dấu giống với ký hiệu đang
lưu trong bộ điều khiển thì M đánh dấu rồi dịch trái. Nếu ký hiệu khơng giống ký
hiệu lưu trong bộ điều khiển thì M không dịch chuyển nữa và không chấp nhận
input. M cũng dừng nếu ở trạng thái q3 và gặp ký hiệu [B, B] trước khi gặp ký
hiệu chưa đánh dấu.
6) δ([q4, B], [√, d]) = ([q4, B], [√, d], L)
M dịch trái trên các ký hiệu đã đánh dấu.
7) δ([q4, B], [B, c]) = ([q5, B], [B, c], L)
M gặp ký hiệu c.
8) δ([q5, B], [B, d]) = ([q6, B], [B, d], L)
Nếu ký hiệu ngay bên trái c chưa được đánh dấu thì M tiến sang trái để tìm
ký hiệu bên phải nhất đã được đánh dấu.
9) δ([q6, B], [B, d]) = ([q6, B], [B, d], L)

M tiếp tục dịch chuyển sang trái.
10) δ([ q6, B], [√, d]) = ([q1, B], [√, d], R)
M gặp ký hiệu đã đánh dấu, nó dịch phải để lấy ký hiệu chưa đánh dấu bên
cạnh và tiếp tục vòng lặp so sánh. Khi đó, thành phần thứ 1 lại trở thành q1.
11) δ([q5, B], [√, d]) = ([q7, B], [√, d], R)

download by :


Tiểu luận “Máy Turing”

Trang 12

M ở trạng thái [q5, B] ngay sau khi vượt sang trái c. Nếu ký hiệu xuất hiện ngay
trước c đã được đánh dấu thì tất cả các ký hiệu trước c đều đã được đánh dấu. M
phải kiểm tra xem bên phải c cịn có ký hiệu nào chưa được đánh dấu hay
không. Nếu không cịn ký hiệu nào thì M chấp nhận input.
12) δ([q7, B], [B, c]) = ([q8, B], [B, c], R)
M dịch sang phải c.
13) δ([q8, B], [√, d]) = ([q 8, B], [√, d], R)
14) δ([q , B], [B, B]) = ([q , B], [√, B], ∅)
8

9

M tiếp tục dịch sang phải trên các ký hiệu đã được đánh dấu.
M tìm gặp Blank, nó dừng và chấp nhận chuỗi. Nếu M gặp ký hiệu chưa
được đánh dấu khi thành phần thứ 1 là q8 thì nó dừng và khơng chấp nhận.
3.4. Dịch qua (Shifting over)
Máy Turing có thể tạo ra một không gian trống trên băng bằng cách dời các ký

hiệu không trống trên băng đi sang phải hữu hạn ô. Để làm điều đó đầu đọc phải
thực hiện dịch phải, lặp lại việc lưu ký hiệu đọc được vào bộ điều khiển và thay
thế chúng bằng ký hiệu đọc được ở ơ bên trái. Nếu có đủ ơ trống, TM cũng có
thể chuyển dịch một khối ký hiệu sang trái một cách tương tự.
Ví dụ7: Xây dựng TM M(Q, Σ, , δ, q0, B, F) dịch toàn bộ các ký hiệu không
trống trên băng sang phải 2 ô.
Ta giả sử khơng có Blank giữa các ký hiệu khơng trống, vì vậy khi đầu đọc gặp Blank thì nó đã dịch xong các
ký hiệu khác trống trên băng. Tập∈ các trạng thái Q chứa các phần tử dạng [q, A1, A2] với q = q1 hoặc q2 và A1,
A2 . Gọi X là một ký hiệu đặc biệt được chấp nhận trên băng của M, nó khơng được sử dụng với mục

đích nào khác ngồi q trình dịch chuyển trên băng. M bắt đầu với trạng thái [q ,
B, B] và∈ hàm chuyển thực hiện như sau: 1 Với Ai - {B, X}

1) δ([q1, B, B], A1) = ([q1, B, A1], X, R)
M lưu ký hiệu đọc đầu tiên vào thành phần thứ 3 trong bộ điều khiển, ghi X vào
ô đang đọc rồi dịch sang phải.
2) δ([q1, B, A1], A2) = ([q1, A1, A2], X, R)
M chuyển ký hiệu ở thành phần thứ 3 sang thành phần thứ 2, lưu trữ ký hiệu đọc
được vào thành phần thứ 3, viết X vào ô đang đọc rồi dịch sang phải.
3) δ([q1, A1, A2], A3) = ([q1, A2, A3], A1, R)
Bắt đầu từ bước chuyển này, M lần lượt đọc vào một ký hiệu, ghi nó vào thành phần
thứ 3, chuyển ký hiệu được ghi trước đó ở thành phần thứ 3 sang thành phần thứ 2,
chép lại ký hiệu ở thành phần thứ 2 vào ô đang đọc rồi dịch sang phải.
4) δ([q1, Ai - 2, Ai – 1], Ai) = ([q1, Ai - 1, Ai], Ai - 2, R)
5) δ([q1, An - 1, An], B) = ([q2, An, B], An - 1, R)
Cho đến khi M gặp B, nó dốc nốt 2 ký hiệu cuối đang giữ trong bộ nhớ để bắt
đầu đi vào trạng thái kết thúc.
6) δ([q2, An, B], B) = ([q2, B, B], An, L)

download by :



Tiểu luận “Máy Turing”

Trang 13

Cuối cùng, tất cả các ký hiệu không trống trên băng đã được chuyển dịch sang
phải 2 ơ. Lúc đó nó sẽ được chuyển sang một trạng thái nào đó (có thể quay về
trái, trở về đầu băng) để thực hiện một chức năng khác.
4.CÁC DẠNG KHÁC CỦA MÁY TURING
4.1. Máy Turing có băng vơ hạn một đầu
Máy Turing có băng vơ hạn một đầu tương tự như máy Turing có băng vơ hạn hai
đầu, chỉ khác là băng vào chỉ có thể mở rộng vơ hạn về phía bên phải.
a1

a2





an

B

B

Đầu đọc/ghi

q


Trạng thái

Hình 5. Máy Turingcó băng vô hạn một đầu
Định lý 1 : Nếu L được nhận diện bởi TM với băng vô hạn hai chiều thì L
cũng được nhận diện bằng TM vơ hạn một chiều băng
Chứng minh
Gọi M2 là TM với băng vô hạn hai chiều M2 (Q2, Σ2, 2, δ 2, q2, B, F2) nhận diện L.
Ta xây dựng M1 là TM vô hạn một chiều băng nhận diện L. Băng của M1 có 2
rãnh:
- Rãnh trên biểu diễn cho băng của M2 phía phải đầu đọc lúc khởi đầu.
- Rãnh dưới biểu diễn cho băng phía trái đầu đọc lúc khởi đầu theo thứ tự
ngược lại.

(a) - Băng của M2
(b) - Băng của M1

Hình 6. Băng nhập của TM M2 và M1
M1 thực hiện các phép chuyển tương tự như M2 nhưng khi M2 thực hiện các phép
chuyển phía phải đầu đọc thì M1 làm việc với rãnh trên, khi M2 thực hiện các
phép chuyển bên trái đầu đọc thì M1 làm việc ở rãnh dưới
Một cách hình thức M1 (Q1, Σ1, 1, δ1, q1, B, F1), trong đó :
Q1 là tập hợp các đối tượng dạng [q, U] hoặc [q, D], trong đó q là trạng thái trong
Q2, cịn U, D dùng chỉ rằng M1 đang làm việc với rãnh trên (Up) hay rãnh dưới
(Down). Các ký hiệu băng của M1 (các ký hiệu thuộc 1) có dạng [X, Y] trong đó
X, Y thuộc 2, hơn nữa Y có thể là
dấu ô trái nhất trên băng của M1 .
Σ1 là tập hợp các đối tượng dạng [a, B] trong đó a
F1 = {[q, U], [q, D]| q ∈ F2}.



download by :


Tiểu luận “Máy Turing”

Hàm chuyển δ1 có dạng như sau:
1) δ1(q1, [a, B]) = ([q, U], [X,
chuyển sang phải
Nếu M
nhớ U vào thành phần thứ hai của trạng thái và dịch phải.
trạng thái lưu trạng thái của M2. M1 in X (ký hiệu mà M2 in ra) ở rãnh trên.
2)Với mọi a
2

1 1

= ([q, D], [X,

δ (q , [a, B])
Nếu M2 chuyển sang trái trong lần chuyển đầu tiên thì M1 in
nhớ D vào thành phần thứ hai của trạng thái và dịch phải.
trạng thái lưu trạng thái của M2. M1 in X (ký hiệu mà M2 in ra) ở rãnh trên.
3) Với mọi [X, Y] 1, với Y ≠
1


δ ([q, U], [X, Y]) = ([p, U], [Z,

M1 ở rãnh trên thực hiện tương tự như M2.

4) δ1([q, D], [X, Y]) = ([p, D], [X, Z], A) nếu δ2(q, Y) = (p,Z,A)
(Trong đó nếu A = L thì A = R và nếu A = R thì A = L)
Ở rãnh dưới, M làm tương tự M nhưng dịch chuyển đầu đọc theo hướng ngược
lại.

1



2





5) δ1([q, U], [X, ]) = δ1([q, D], [X, ]) = ([p, C], [Y, ], R] nếu
δ2(q, X) = (p, Y, A)
(Trong đó C = U nếu A = R, C = D nếu A = L)
M1 làm tương tự M2 ở ô khởi đầu, công việc tiếp theo của M1 thực hiện ở rãnh trên
hay dưới phụ thuộc vào hướng chuyển đầu đọc của M2.

4.2. Máy Turing nhiều băng vô hạn hai đầu
Xét máy Turing có một bộ điều khiển có k đầu đọc và k băng vô hạn hai chiều.
Mỗi phép chuyển của máy Turing, phụ thuộc vào trạng thái của bộ điều khiển và
ký tự đọc được tại mỗi đầu đọc, nó có thể thực hiện các bước sau :
1) Chuyển trạng thái.
2) In ký hiệu mới tại mỗi đầu đọc để thay thế ký hiệu vừa đọc.
3) Đầu đọc có thể giữ nguyên vị trí hoặc dịch trái hoặc dịch phải 1 ô một cách
độc lập nhau.
Khởi đầu input xuất hiện trên băng thứ nhất, các băng khác chỉ toàn Blank. Một

máy Turing như vậy gọi là máy Turing với nhiều băng vô hạn hai chiều.
Định lý 2 : Nếu L được nhận dạng bởi máy Turing nhiều băng vô hạn hai
chiều thì nó cũng được nhận dạng bởi máy Turing một băng vô hạn hai chiều.
Chứng minh
Giả sử L được nhận diện bởi máy Turing k băng vô hạn hai chiều M1, ta xây dựng
máy Turing M2 một băng với 2k rãnh, 2 rãnh sẽ mô phỏng một băng của M1 bằng
cách: một rãnh giữ ký hiệu trên băng của M1 một rãnh kia giữ ký hiệu đánh dấu vị
trí đầu đọc.
Mỗi phép chuyển của M1 được mô phỏng bằng M2 như sau:
M2 xuất phát tại vị trí trái nhất chứa ký hiệu đánh dấu đầu đọc, M 2 quét sang phải,
khi qua mỗi ơ có đánh dấu vị trí đầu đọc nó ghi nhớ ký hiệu tại vị trí này và đếm




download by :


Tiểu luận “Máy Turing”

Trang 15

số vị trí đầu đọc đã gặp. Khi M2 đi sang phải và đã đếm đủ k đầu đọc thì nó đã có
đủ thơng tin để xác định phép chuyển tương tự như M1 , M2 lại quét từ phải sang
trái, khi đi ngang qua mỗi ô có đánh dấu đầu đọc nó in ký hiệu thay thế ký hiệu tại
đầu đọc (như M1) chuyển vị trí đánh dấu đầu đọc (như M1 chuyển đầu đọc của
nó). Cuối cùng M2 đổi trạng thái trong bộ điều khiển của nó thành trạng thái mà
M1 chuyển tới.

Đầu đọc 1

Băng 1
Đầu đọc 2
Băng 2
Đầu đọc 3
Băng 3
Hình 7. Máy Turing 1 băng mô phỏng máy Turing 3 băng
4.3. Máy Turing khơng đơn định
Máy Turing khơng đơn định có mơ hình tương tự như mơ hình gốc nhưng điểm
khác biệt ở chỗ là trong mỗi lần chuyển, máy Turing có thể lựa chọn một trong
một số hữu hạn các trạng thái kế tiếp, lựa chọn hướng chuyển đầu đọc, và lựa
chọn ký hiệu in ra trên băng để thay thế ký hiệu vừa đọc được. Máy Turing trong
mơ hình gốc còn gọi là máy Turing đơn định.
Định lý 3: Nếu L được chấp nhận bởi máy Turing không đơn định M1 thì L
cũng được chấp nhận bởi một máy Turing đơn định M2 nào đó.
Chứng minh
Với một trạng thái và một ký hiệu băng bất kỳ của M1, có một số hữu hạn các phép
chuyển đến trạng thái kế tiếp, ta có thể đấnh số các trạng thái này là 1, 2, ...
Gọi r là số lớn nhất của số các cách lựa chọn với một cặp trạng thái và ký kiệu
bất kỳ. Ta có, mọi dãy các phép chuyển trạng thái đều được chỉ ra bằng một dãy
chứa các số từ 1 đến r. Ngược lại một dãy hữu hạn bất kỳ gồm các số từ 1 đến r
có thể biểu diễn cho một dãy các phép chuyển nào đó cũng có thể khơng. M2
được thiết kế có ba băng:
Băng 1 chứa input

download by :


Tiểu luận “Máy Turing”

Trang 16


Băng 2 sinh ra dãy chứa các số từ 1 đến r một cách tự động theo tính chất dãy
ngắn sinh ra trước, nếu các dãy cùng độ dài thì nó sinh ra theo thứ tự liệt kê
số (numerical order).
Băng 3 dùng chép input trên băng 1 vào để xử lý: với mỗi số sinh ra trên băng
2, M2 chép input trên băng 1 vào băng 3 và thực hiện các phép chuyển theo dãy
số trên băng 2.
Nếu có một chuỗi nào đó trên băng 2 làm cho M2 đi vào trạng thái kết thúc thì M2
dừng và chấp nhận input. Nếu khơng có chuỗi nào như vậy thì M 2 khơng chấp nhận
input. Tất nhiên M2 chấp nhận input khi và chỉ khi M1 chấp nhận input.

download by :


Tiểu luận “Máy Turing”

Trang 17

Phần 3

KẾT LUẬN

Máy Turing ngoài khả năng đốn nhận ngơn ngữ nó cịn là mơ hình của sự tính
tốn, mơ hình của thủ tục hữu hiệu. Nhờ nó mà ta có khái niệm rõ ràng về sự tính
được, sự giải được và phát hiện được có những hàm là khơng tính được, những
bài tốn là khơng giải được. Ngồi ra với máy Turing như là mơ hình của sự tính
tốn, người ta cịn đi tới các khái niệm về độ phức tạp của tính tốn, đọ khó của
các bài tốn. Nghiên cứu về độ phức tạp của tính tốn có một ý nghĩa lớn lao về lí
thuyết cũng như thực hành.
Vì thời gian cịn hạn chế nên tiểu luận này chỉ tập trung trình bày khái niệm máy

Turing, một số định nghĩa về hàm tính được, các kỹ thuật thiết kế máy Turing và
một số biến dạng của máy Turing từ mơ hình chuẩn.


download by :


×