1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lý thuyết tính toán: Chương 4 - PGS.TS. Phan Huy Khánh

10 12 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 485,82 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Lý thuyết tính toán chương 4 giới thiệu về máy Turing với một số nội dung liên quan như: Định nghĩa máy Turing, ngôn ngữ thừa nhận được và ngôn ngữ xác định được, các hàm tính được bởi máy Turing, một số kỹ thuật xây dựng máy Turing,... Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.

Trang 1

Lý thuyết tính toán

(Theory of Computation)

Lý thuyết tính toán

(Theory of Computation)

PGS.TS Phan Huy Khánh

khanhph@vnn.vn

Chương 4 Máy Turing

Chương 4 Máy Turing

2/58

Máy Turing

 Định nghĩa máy Turing

 Ngôn ngữthừa nhận được vàngôn ngữxác định được

 C c hàm tính được bởi máy Turing

 C c ngôn ngữ đệquy vàliệt kê đệquy

 Luận đềTuring-Church

Kỹthuật xây dựng máy Turing

 Mởrộng các máy Turing

 Máy turing không đơn định

 Máy Turing vạn năng

 Ôtômat tuyến tính giới nội

 Văn phạm cảm ngữcảnh

3/58

Mở đầu

Ôhh đẩy xuống không thể đoán nhận NN

anbncn d cóhai bộnhớlớn tùy ý

Đểthừa nhận anbncn, phải tìm kiếm

các lớp ôtômat khác, đólàcác máy Turing

Sựkhác nhau căn bản giữa máy Turing

v ô đẩy xuống :

 Máy Turing chỉcómột bộnhớlớn tùy ý

 Máy Turing cóthể đọc vàghi

 C ch sửd ng bộnhớlàtuỳý,

không hạn chế nguyên lý danh sách

đ y xuống (Stack hay LIFO)

Alan Turung (19121954) : nhà Toán học người Anh, người đầu tiên nghiên cứ

lý thuyết ôtômat năm 1936

4/58

Máy Turing đơn định (Deterministic Turing Machine) gồm :

Một băng vào/ra (IO Tape) :

Một đầu đọc-ghi (Read/Write Head) di chuyển trên băng

Một tập hợp hữu hạn các trạng thái trong đócó:

Một trạng thái đầ

Một tập hợp các trạng thái thừa nhận (cuối)

Một hàm chuyển tiế

qk

X a b a b b

5/58

Băng vào/ra :

Làmột bộnhớvô hạn được chia thành nhiều ô

Mỗi ô cóthểchứa một ký tựa ào đó (Tape Alphabet)

Băng chỉcócận trái, cận phải quy ước cóthểkéo dài vô hạ

Hàm chuyển tiếp gồm các tham đối :

Trạng thái hiện hành của máy

Ký tự đọc được ởvịtrí dưới đầu đọc

Trạng thái tiếp theo của máy

Ký tựsẽ ghi lên băng tại vịtríký tựvừa đọc được

Chiều di chuyển của đầu đọc-ghi

(qua trái, phải hay đứng yên)

6/58

Cấu hình ban đầu của máy Turing

Cấu hình ban đầu của máy Turing được mô tả như sau :

 Câu vào w *nm ởmút trái nhất của băng

 Mỗi ô còn lại của băng chứa một ký hiệu đặc biệt,

g i làcác ký hiệu trống (Blank Symbol)

 Đầu đọc-ghi nằm ở ô đầu tiên của băng (mút trái nhất)

 Máy đang ởtrạng thái đầu tiên, giảsửq0

Máy sẵn sàng thực hiện bằng cách đọc ký hiệ

ởvịtrí đầu đọc

q0

a a b a b b

Trang 2

Hoạt động của máy Turing

Hoạt động của máy Turing được mô tả như sau :

 Máy đọc ký hiệu nằm ở dưới đầu đọc

 Tuỳtheo trạng thái hiện hành,

h m chuyển tiếp cho phép máy thực hiện :

Ghi đèlên ký hiệu vừa đọc một ký hiệu khác

Di chuyển đầu đọcghi sang phải, hoặc sang trái một ô

Thay đổi trạng thái

 Máy thừa nhận câu khi đạt tới trạng thái thừa nhận,

giảsửqj F

qj

X X Y X X X

8/58

Định nghĩa hình thức máy Turing

Máy Turing được mô tảb i một bộb y :

M = (Q, , , , q0, #, F) trong đó:

 Q làtập hữu hạn các trạng thái

 là ảng chữ ghi lên băng

 là ảng chữvà

 q0Q làtrạng thái đầ

 F Q làtập hợp các trạng thái thừa nhậ

 # -làký tựtrống

 : hàm chuyển tiế

9/58

Hàm chuyển tiếp :

: QQM

g m các phần tử(q, a) = (q’, x, m), trong đó:

q, q’Q ; a ; x ; m M = { L, R }

L chỉ định dịch đầu đọc-ghi sang trái (Left)

R chỉ định dịch đầu đọc-ghi sang phải (Right)

C thểviết gọn mỗ phần tửcủa :

hoặc (q, a, x, m, q’)

hoặc qamxq’

10/58

Cấu hình của máy Turing

Cấu hình (hay cấu hình) của máy Turing

làmột phần tửcủa quan hệ: (q, 1, 2) Q *  *

Trong đó:

q  : trạng thái hiện hành của má

1 : phần câu trên băng phía trước vịtrí đầu đọcghi

2 : Phần câu trên băng từvịtrí đầu đọcghi đến hết câu (ký tựcuối cùng khác ký tựtrống #)

q

a a b a b b

11/58

 Cho cấu hình C = (q, 1, 2) vàC’= (q’, ’1, ’2)

Giảsử2= b’2 trường hợp 2= , lấy b = #

 Chuyển tiếp một bước C ├C’ được định nghĩa như sau :

 Trường hợp 1 : Nếu (q, b) = (q’, b’, R), ta có:

(q, 1, b’2) (q’, 1b’, ’2) vớ ’1= 1b’

q

a b b a b b

1

2

q’

a b’ b a b b

’2

12/58

 Cho cấu hình C = (q, 1, 2) vàC’= (q’, ’1, ’2) Giảsử 1= ’1a 1

2= b3 trường hợp 2= , lấy b = #

 Chuyển tiếp một bước C ├C’ được định nghĩa như sau :

 Trường hợp 2 : Nếu (q, b) = (q, b, L), ta có: (q, ’1a, 2) ├(q, ’1, ab’3) vớ ’2= ab’3

q

b a b a b b

’1

1

q’

b a b’ a b b

’2

’1

2

Trang 3

Chuyển tiếp nhiều bước

 Cho cấu hình C = (q, 1, 2) vàC’= (q’, ’1, ’2)

 Tương tựtrong ôhh, ta nói chuyển tiếp nhiều bước

C ├*C’n u:

k 0 vàcác cấu hình trung gian C0, C1, , Cksao cho :

 C  0

 C k

 Ci├Ci+1với 0  k

14/58

Máy Turing đoán nhận câu của ngôn ngữ

Máy Turing đoán nhận câu của một ngôn ngữ như làcác ôtômat hữu hạn đã xét

Cho w :

 Câu w được một máy Turing M đoán nhận nễu : (q0, , w) ├*(qj, , 2) vớ , 2 *

 Câu w được một máy Turing thừa nhận nễu : (q0, , w) ├*(qj, , 2) vớ , 2 * và j F

 Một ngôn ngữ L được thừa nhận bởi một máy Turing M,

L = L(M), nễu : L(M) = { w (q0, , w) ├*(qj, , 2) với qj F }

15/58

Ví d

Cho máy Turing M (Q, , , , q0, B, F) với :

 Q q0, q1, q2, q3, q4 

 { a, b, X, Y, # }, { a, b } F { q4}

  được cho bởi bảng dưới đây

(dấu "" chỉra rằng hàm chuyển tiếp không được định nghĩa)

q4

(q4, #, R) (q3, Y, R)

q3

(q2, Y, L)

(q0, X, R)

(q1, a, L)

q2

 (q1, Y, R)

(q2, Y, L) (q1, a, R)

q1

 (q3, Y, R)

 (q1, X, R)

q0

# Y

X

b a

16/58

Đánh dấu con a trái nhất

Đánh dấu con a trái nhất

 q4

(q4, #, R) (q3, Y, R)

 q3

(q2, Y, L)

(q0, X, R)

(q1, a, L)

q2

 (q1, Y, R)

(q2, Y, L) (q1, a, R)

q1

 (q3, Y, R)

 (q1, X, R) q0

# Y X

b a

a/X, R q1 q0

q4

Y/Y, R

q2 b/Y, L

Y/Y, R

a/a, R a/a, L X/X, R

Y/Y, R

Y/Y, R

#/#, R q3

Vượt qua phải

Vượt qua phải

17/58

Các chuyển tiếp đoán nhận câu aabb lần lượt như sau :

18/58

dãy các chuyển tiếp từcâu vào aaabbb được cho như sau :

 q1Xaabbb# . q3XXXYYY#

th ừ a nh ậ n !

Trang 4

Ví d

Máy Turing thừa nhận ngôn ngữchính quy aa* + b(a+b)*

q1

q0

a|a, R

#|#, L

0

3

R a

a  ,

R y

y  ,

L y

b  ,

L a

a  ,

L y

y  ,

R x

x  ,

R y

y  ,

R

y

q L

,

20/58

Định nghĩa

Máy Turing đoán nhận một câuwlàthực hiện (xửlý) một dãy cực đại các cấu hình :

(q0, , w) = C0 ├C1 ├Ck= (qk, k, k)

nghĩa làsao cho :

 Dãy tựkết thúc tại một cấu hình cóchứa trạng thái kết thúc

vàthừa nhậ câuw hoặc

 Dãy tựkết thúc tại một cấu hình không chứa trạng thái kết thúc màtừ đó, không còn cấu hình nào cóthểchuyển đến : máy bịh c

hoặc

 Dãy cấu hình làvô hạn, máy không bao giờ ừng

21/58

Tính xác định được (Deterministic)

Một ngôn ngữ L được xác định bởi một máy Turing M n u:

 M thừa nhận L

 M không cócác xửlý vô hạ

Nhận xét :

 T n tại thuật toán cho phép máy Turing đoán nhận một ngôn

ngữ, hay kiểm tra tính xác định được

 Đối với các ôtômát hữu hạn đơn định, điều đóhiển nhiên

 Đối với một ôtômát hữu hạn không đơn định,

không phải luôn luôn tồn tại thuật toán,

vì :

T i mỗi giai đoạn đoán nhận, không thểchỉra chuyển tiếp

n o tiếp theo sẽ được chọn một cách tường minh

22/58

Hình thức hóa tính xác định được

Tính xác định được của máy Turing cóthểhiểu như sau :

 V i mọi phần tử(q, a) QG, tồn tại nhiều nhất một quy tắc (q, a) (q’, a’, m), viết gọn qama’q’, với m M={L, R}

 Hàm bộphận QG QGM cóthểtách thành ba hàm :

Hàm “ký tựmới” nc : QG G

hay nc(q, a) = a’

Hàm “di chuyển đầu đọc mh :QG M

hay mh(q, a) =m

Hàm “trạng thái mới” ns : QG Q

hay ns(q, a) = q’

23/58

Máy Turing tính hàm

 Máy Turing cóthểtính hàm theo cách hiểu như sau :

 Tham đối của hàm làcâu vào wn m trên băng

 Giátrịtrảvềcủa hàm làcâu  được ghi trên băng

sau khi máy Turing kết thúc việc xử lý (đ c hết w)

 Máy Turing tính một hàm f : n u :

 V i một câu vào wb t kỳ, máy luôn luôn dừng trong một

cấu hình màf(w) cómặt ở trên băng

 Hàm f đgl tính được bởi một máy Turing nếu tồn tại một

máy Turing tính được nó

24/58

A function f(w) has:

D

Notation of Function

A function may have many parameters:

Example: Addition function

f(x, y) = x + y

Trang 5

Integer Domain

Unary:

Binary:

Decimal:

11111 101 5

We prefer unary representation:

easier to manipulate with TMs

Data representation

26/58

Definition:

A function is computable if there is a Turing Machine such that:

f

M

D

 0

q

f

q

 )

(w

f

final state initial state

For all

27/58

Initial

Configuration

Final Configuration

A function is computable if

there is a Turing Machine such that:

f

M

In other words:

D

For all

) (

28/58

Example

The function f ( x , y )  xy is computable

Turing Machine:

y

29/58

0

q

1

Start

initial state

The 0 is the delimiter that separates the two numbers

Input representation

30/58

f

q

1

y

x 

Finish

final state

0

q

1

Start

initial state

Computing Function

Trang 6

f

q

1

y

x 

Finish

final state

The 0 helps when we use

the result for other operations

Computing Function

32/58

Turing machine for function

y x y x

0

L

, 1

1 

R

,

R

, 1

0 

R

, 1

1 

4

q

R

, 1

1 

33/58

Execution Example (1)

0

q

Time 0

Final Result

4

q

y

x 

11

11

34/58

0

q

0

L

, 1

1 

R

,

R

, 1

0 

R

, 1

1 

4

q

R

, 1

1 

Execution Example (2)

35/58

0

L

, 1

1 

R

,

R

,

1

0 

R

,

1

1 

4

q

R

, 1

1 

 0

q

 0

Time 1

Execution Example (3)

36/58

0

q

Time 2

0

L

, 1

1 

R

,

R

, 1

0 

R

, 1

1 

4

q

R

, 1

1 

Execution Example (4)

Trang 7

1

q

Time 3

0

L

, 1

1 

R

,

R

,

1

0 

R

,

1

1 

4

q

R

, 1

1 

Execution Example (5)

38/58

1

q

Time 4

0

L

, 1

1 

R

,

R

, 1

0 

R

, 1

1 

4

q

R

, 1

1 

Execution Example (6)

39/58

1

q

Time 5

0

L

, 1

1 

R

,

R

,

1

0 

R

,

1

1 

4

q

R

, 1

1 

Execution Example (7)

40/58

2

q

Time 6

0

L

, 1

1 

R

,

R

, 1

0 

R

, 1

1 

4

q

R

, 1

1 

Execution Example (8)

41/58

3

q

Time 7

0

L

, 1

1 

R

,

R

,

1

0 

R

,

1

1 

4

q

R

, 1

1 

Execution Example (9)

42/58

3

q

Time 8

0

L

, 1

1 

R

,

R

, 1

0 

R

, 1

1 

4

q

R

, 1

1 

Execution Example (10)

Trang 8

 3

q

Time 9

0

L

, 1

1 

R

,

R

,

1

0 

R

,

1

1 

4

q

R

, 1

1 

Execution Example (11)

44/58

 3

q

Time 10

0

L

, 1

1 

R

,

R

, 1

0 

R

, 1

1 

4

q

R

, 1

1 

Execution Example (12)

45/58

 3

q

Time 11

0

L

, 1

1 

R

,

R

,

1

0 

R

,

1

1 

4

q

R

, 1

1 

Execution Example (13)

46/58

 4

q

Time 12

0

L

, 1

1 

R

,

R

, 1

0 

R

, 1

1 

4

q

R

, 1

1 

HALT & accept

Execution Example (14)

47/58

Turing Machine:

48/58

f

q

1

x

2

Finish

final state

 0

q

1

x

1

 Start

initial state

Trang 9

TM Pseudocode for f(x) = 2x

• Replace every 1 with $

• Repeat:

• Find rightmost $ , replace it with 1

• Go to right end, insert 1

Until no more $ remain

50/58

Example TM for f(x) = 2x

0

3

q

R

, 1

$ 

L

, 1

L

,

R

$,

R

,

0

q

1  1

Start

3

q

Finish

51/58

T = <S, Q, P> ; S = { 0, 1, # } ; Q = {q1, q2, q3}

P = { q1, 1  1, R, q1,

q2, 0  1, L, q3,

q1, 0  0, R, q1,

q2, 1  0 L, q2,

q1, #  #, L, q2,

q2, #  1, L, q3 }

TM compute succ(n)

1

0|0, R

2

q

1|1, R 1|0, L

#|1, L

#|#, R

0|1, L

52/58

Another Example

The function is

0

y

x 

if if

Turing Machine for

53/58

Turing Machine Pseudocode:

Match a 1 from with a x 1 from y

• Repeat

Until all of or is matched x y

• If a 1 from is not matched

erase tape, write 1

else

erase tape, write 0

x

) ( x  y

) ( x  y

54/58

 Các ngôn ngữxc định được bởi một máy Turing được gọ

làđệquy(Recusive)

 Các ngôn ngữ được thừa nhận bởi một máy Turing gọi là liệt kê đệquy(Recursively Enumerable)

 T đóta cócác định nghĩa sau :

 Một ngôn ngữlà đệquy nếu nó được xác định

b i một máy Turing

 Một ngôn ngữlàliệt kê đệquy nếu nó được thừa nhậ

b i một máy Turing

Trang 10

Luận đềTuring-Church phát biểu như sau :

C c ngôn ng ữ đượ c nh ậ n bi ế t b ở i m ộ t thu ậ t

toán là các ngôn ng ữ xá c định đượ c b ở i m ộ t

máy Turing

Người ta cóthểphát biểu luận đềTuring

-Church theo nghĩa của phép tính hàm :

C c hàm tí nh đượ c b ở i m ộ t thu ậ t toán là các

h m tí nh đợ c b ở i m ộ t máy Turing

Alonzo Church (1903-1995) : nhà Toán học người Mỹ

đã nghiên cứu phép tính hàm (Functional Calculus) vàtính tính được (Computability)

56/58

Luận đề Turing-Church đóng vai trò quan trọng trong

lý thuyết tính toán (Computability)

 Luận đề đưa ra lập luận rằng một sốngôn ngữkhông thể được đoán nhận bởi một thuật toán : thực chất là ình thức

h a khái niệm tính toá

 Luận đềTuring-Church không phải làmột định lý, nên không thểchứng minh được

 Luận đềTuring-Church áp dụng mô hình lý thuyết làmáy Turing được định nghĩa chặt chẽ đểmô hình hoáquan niệm

vềthuật toán làkhái niệm không được xác định rõ ràng

Dễd ng mô phỏng sựhoạt động của một máy Turing nhờ:

 Một bút chìvàtờgiấy

 Một chương trình chạy trên một máy tính cụthể

57/58

Xây dựng máy Turing

 Một sốk thuật xây dựng máy Turing

 Ghi nhớ b điều khiển hữu hạ

 Mởrộng băng vào vô hạn vềcảhai phía

 Máy Turing cónhiều băng

 Máy Turing có ộnhớtruy cập trực tiế

58/58

Các máy Turing vạn năng

 Một vấn đềthúvịàliệu cóthểcómột máy Turing

mô phỏng được bất kỳmáy Turing nào ?

 Một cách tường minh, ta muốn cung cấp cho một máy Turing M sựmô tảcủa một máy Turing Mb t kỳn o đó sao cho với một câu vào wn o đó, máy Turing Mcóthể

mô phỏng sự đoán nhận của M trên w

 Một máy Turing như vậy sẽlàmột sựnhại lại các máy Turing khác, và được gọi làmáy Turing vạn năng (Universal Turing Machine)

Ngày đăng: 08/05/2021, 18:17

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w