1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận môn lý thuyết tính toán restricted turing machines máy turing thu gọn

17 584 1

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 383,5 KB

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

Nội dung

Nó cung cấp những kiến thức cơ bản về máy tính như: Các máy truy cấp ngẫu nhiên, các ôtômát hữu hạn trạng thái, các ngôn ngữ hình thức và văn phạm được sử dụng, lý thuyết về độ phúc tạp

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Đề tài:

Restricted Turing Machines (Máy Turing thu gọn)

GVHD : PGS TS Phan Huy Khánh

HVTH : Phan Văn Lĩnh

Nguyễn Tùng Sinh Phan Văn Thảo LỚP : Khoa học máy tính

KHÓA : 16 (2011 – 2013)

Đà Nẵng, tháng 05/2012

Trang 2

LỜI MỞ ĐẦU

Nhân loại đang bước vào một thời đại mới, thời đại mà thông tin, tri thức trở thành lực lượng sản xuất trực tiếp, thời đại của xã hội thông tin và nền kinh tế tri thức được hình thành trên cơ sở phát triển và ứng dụng rộng rãi công nghệ thông tin

và truyền thông Cuộc cách mạng thông tin cùng với quá trình toàn cầu hóa đang ảnh hưởng sâu sắc đến mọi lĩnh vực trong đời sống kinh tế - xã hội, đưa con người chuyển nhanh từ xã hội công nghiệp sang xã hội thông tin, từ kinh tế công nghiệp sang kinh tế tri thức, ở đó năng lực cạnh tranh phụ thuộc chủ yếu vào năng lực sáng tạo, thu thập, lưu trữ, xử lý và trao đổi thông tin Máy tính đóng vai trò quan trọng trong cuộc cách mạng này

Lý thuyết tính toán là nền tảng lý thuyết của thông tin và tính toán để tạo ra sự thực thi và các ứng dụng trên hệ thống máy tính Nó nghiên cứu các khả năng tính toán khi áp dụng trên các loại máy tính hiện hành Nguyên lý đã được phát triển bởi Alan Turing và những nhà khoa học khác Nó cung cấp những kiến thức cơ bản về máy tính như: Các máy truy cấp ngẫu nhiên, các ôtômát hữu hạn trạng thái, các ngôn ngữ hình thức và văn phạm được sử dụng, lý thuyết về độ phúc tạp tính toán,

lý thuyết ước tính, mô hình máy Turing, các hàm đệ quy, …

Trong khuôn khổ đề tài này chúng tôi chỉ trình bày những hiểu biết về một phần của máy Turing thu gọn

Phần I: Lý thuyết: Máy Turing thu gọn

Phần II: Bài tập - Mô tả máy đếm chấp nhận các ngôn ngữ sau Trong mỗi

trường hợp, sử dụng nhiều nhất hai bộ đếm

a) { 0n1m n  m 1

b) { 0n1m |1  m  n}

Mặc dù đã nghiên cứu kỹ phần lý thuyết để có được cách giải quyết bài tập đúng đắn nhưng chúng tôi không thể tránh khỏi những thiếu sót, kính mong nhận

được sự góp ý kiến của Thầy giáo hướng dẫn PGS TS Phan Huy Khánh và các anh

chị trong lớp để đề tài được tốt hơn

Chúng tôi xin chân thành cảm ơn thầy giáo PGS.TS Phan Huy Khánh đã tận

tình giảng dạy và hướng dẫn để chúng tôi hoàn thành tiểu luận này

Học viên thực hiện Phan Văn Lĩnh

Trang 3

8.5 Restricted Turing Machines(Máy turing thu gọn)

Chúng ta đã thấy một cái nhìn tổng quan về máy Turing cái mà không thêm bất kỳ tính năng nhận dạng ngôn ngữ Bây giờ, chúng ta sẽ xem xét một vài

ví dụ rõ ràng về phép thu gọn của máy Turing, cái mà nó cung cấp một tính năng tương tự như tính năng nhận dạng ngôn ngữ Phép thu gọn đầu tiên thì không quan trọng nhưng nó lại hữu dụng trong một số cấu trúc được đưa ra sau đây: Chúng tat hay thế một dải Turing cái mà vô hạn ở cả hai hướng bằng một dải chỉ vô hạn ở hướng bên phải Ngoài ra chúng ta cũng không cho phép phép thu hẹp TM in ra một khoảng trống như là một ký hiệu thay thế của dải Công dụng của phép thu gọn này là chúng ta có thể giả định một

ID chứa đựng chỉ những ký hiệu không phải là ký hiệu trống, và chúng luôn bắt đầu ở phía trái của đầu vào

Trong khi chúng ta cho phép một dải vào máy Turing để di chuyển nó từ bên trái hay bên phải từ vị trí ban đầu của nó Điều này cần thiết để cái đầu đọc của máy Turing được phép di chuyển bên trong tại vị trí đó và về phía bên phải của vị trí ban đầu của đầu đọc Thực tế, chúng ta có thể giả định rằng dải là bán hữu hạn

có nghĩa là không có những ô đến phía bên trái của vị trí ban đầu của đầu đọc Trong nguyên tắc tiếp theo, chúng tôi sẽ cho một cấu trúc hiển thị một máy Turing với một dải bán hữu hạn, can thể mô phỏng toàn bộ về nó, giống như mô hình nguyên thủy của máy Turing, vô hạn cả hai hướng

8.5.1 Turing Machines With Semi-infinite Tapes( Máy Turing với những dải bán hữu hạn)

Bí quyết đằng sau của qua trình xây dựng là sử dụng 2 tracks trên semi-infinite TM tape(dãi băng), việc theo dõi trên đại diện các ô bắt đầu từ vị trí đầu tiên hoặc bên phải của vị trí đầu tiên đó, nhưng trong thứ tự đảo ngược

Việc bố trí được xác định trong hình 8.19

Việc theo dõi trên các ô X0,Xi, với xo là vị trí đầu tiên; X\, X->v v

là các ô bên pải của nó

ô x-i, x-2 vv.vv là đại diện cho các ô bên trái của vị trí ban đầu

Trang 4

thanhha_2611: chú ý:

dấu * trên track phía dưới ô tận cùng bên trái Biểu tượng này như là dấu hiệu kết thúc và ngăn chặn semi-infinite TM đứng đầu vô tình rơi xuống đầu bên trái của tape( dãi băng)

Chúng ta sẽ làm thêm một cái hạn chế cho máy Turing của chúng ta.Nó ko thể viết trống cái hạn chế đơn giản này,được cặp đôi với cái hạn chế mà

cái tape chỉ là một nữa vô hạn nghĩa là cái tape kia tại tất cả các điểm thời gian một tiếp đầu ngữ của những biểu tượng ko có khoảng trống theo 1 khoảng trống vô tận

Xa hơn nữa, cái tiếp theo của những nonblank luôn luôn bắt đầu tại vị trí tape đầu tiên Chúng ta sẽ nhìn thấy Theorem 9.19 và lập lại là theorem 10.9, hữu dụng như thế nào để giả sử ID có cái form này

8.5.2 Multistack Machines

Chúng ta xem xét một số mô hình máy tính mf dựa trên phương pháp của automát đẩy xuống (Pushdown automata) Trước hết, chúng ta xem xét chuyện gì sẽ xảy ra nếu PDA có nhiều hơn một stack Như chúng ta đã biết thì TM có thể chấp nhận các ngôn ngữ mà không được chấp nhận bởi PDA một stack Vấn đề là nếu cho PDA 2 stack thì nó có thể chấp nhận ngôn ngữ mà TM chấp nhận

Chúng ta sẽ xem một loại máy gọi là “counter machine”.máy này chỉ có khả năng lưu trữ các số nguyên hữu hạn, và tạo ra các dịch chuyển khác nhau phụ thuộc vào bất kỳ một “counter” đang có giá trị là 0

Counter Machine có thể chỉ thực hiện phép cộng hoặc trừ 1 từ bộ đếm counter đó Thực ra, một bộ đếm Counter tương tự một stack mà chúng ta có thể đặt vào đó 2

ký hiệu: bộ đánh dấu đáy của stack và một ký hiệu đánh dấu đỉnh stack dùng cho thực hiện phép toán push, pop từ stack

Trang 5

Một máy TM với 3 stack.

Một máy k-stack là một PDA đơn định với k-stacks Nó nhận input của nó – như cách của PDA làm, từ một input nguồn, giá trị input được đặt vào tape hay stack như cách thực hiện của TM Multistack machine (MM) có một điều khiển hữu hạn

mà là một trong những tập hữu hạn các trạng thái Nó có một ngăn xếp hữu hạn các

bộ aphabet, mà nó sẽ dùng cho tất cả các stacks của nó Một dịch chuyển của MM dựa trên:

1 Trạng thái của một điều khiển hữu hạn

2 Một ký hiệu đọc (vào) mà được chọn từ tập ký tự vào alphabet hữu hạn một cách luân phiên, MM có thể thực hiện một dịch chuyển sử dụng -input, nhưng đối với các máy đơn định, không thể có sự lựa chọn của -move (dịch chuyển) hoặc -move không dịch chuyển trong bất kỳ tình huống nào

3 Ký hiệu đỉnh của stack ở trên chính stack đó

Một dịch chuyển, MM có thể:

a Thay đổi một trạng thái mới

b Thay thế ký hiệu trên đỉnh của mỗi stack bằng một chuỗi 0 hoặc nhiều

ký hiệu, có thể có một chuỗi thay thế khác cho từng stack

Hàm dịch chuyển cho k-stack machine có dạng:

(q,a,X1,X2,…,Xk) = (p,1, 2,…, k)

Để làm sáng tỏ qui tắc này là ở tại trạng thái q, với Xi trên đỉnh của stack thứ i, với i =1,2, …k máy có thể sử dụng ký hiệu a (có thể là ký hiệu vào hoặc ) từ

Trang 6

input của nó, chuyển đến trạng thái p, và thay thế Xi trên đỉnh của stack thứ i bởi chuỗi i với i=1,2…,k MM chấp nhận bởi việc đưa vào trạng thái cuối cùng

Thêm một khả năng xử lý dữ liệu vào đơn giản bởi máy đơn định này là: giả sử

có một ký hiệu đặc biệt $, gọi là endmarker (điểm đánh dấu kết thúc), mà chỉ xuất hiện ở cuối chuỗi vào và không phải là một phần của input Endmarker này cho phép chúng ta nhận biết khi khôi phục tất cả input tồn tại

Định lý: Nếu một ngôn ngữ L được chấp nhận bởi TM, thì L cũng được chấp nhận bởi máy 2-stack

Chứng minh:

Ý tưởng chính về bản chất của vấn đề là 2 stack có thể mô phỏng thành TM 1 băng, với 01 stạck chứa những gì của đầu đọc trái, stack còn lại chứa những gì của đầu đọc phải ngoại trừ các chuỗi vô hạn các ký tự trắng ở hai đầu băng L(M) là ngôn ngữ của TM (một băng) M

1 S bắt đầu từ điểm đánh dấu cuối stack của mỗi stack Điểm đánh dấu này có thể là ký tự bắt đầu cho các stack, và không xuất hiện bất cứ ở đâu khác trong stacks Và khi đó có thể nói rằng stack là rỗng khi nó chỉ chứa ký tự endmarker

2 Giả sử rằng w$ là chuỗi vào của S S sao chép vào stack đầu tiên của nó và sao chép cho đến khi đọc ký tự endmark trên chuỗi vào

3 S sẽ pop mỗi ký hiệu trở ra từ stack đầu tiên của nó và đẩy vào stack thứ 2

Và bây giờ stack thứ nhất là rỗng và stack thứ 2 chứa w với ký tự bên trái cùng của w trên đỉnh stack

4 S đưa vào trạng thái bắt đầu của M, nó rỗng ở stack thứ nhất Nó thể hiện sự kiện M không có gì cả nhưng các ký tự trống được duyệt ở bên trái đầu đọc của băng S có một stack thứ 2 chứa w, cho biết sự kiện w có ở bên phải đầu đọc của băng của M

5 Số mô phỏng dịch chuyển của M như sau:

Trang 7

a S nhận biết trạng thái của M, gọi là q, bởi vì S mô phỏng trạng thái của M bằng điều khiển hữu hạn của chính nó

b S nhận biết ký hiệu X được đọc bởi đầu đọc trên băng của M, nó là đỉnh của stack thứ 2 của S Ngoại trừ khi stack thứ 2 chỉ còn ký hiệu endmarker, thì M được dịch chuyển đến ký tự trống S thông dịch ký

tự được đọc bởi M như là ký tự trống

c S nhận biết dịch chuyển tiếp theo của M

d Trạng thái tiếp theo của M được ghi nhận trong thành phần của điều khiển hữu hạn của S ở trạng thái trước đó

e Nếu M thay thế X bởi Y và dịch chuyển sang phải, S đẩy Y vào Stack đầu tiên, điều này thể hiện bây giờ Y ở bên trái của đầu đọc của M X được lấy ra khỏi Stack thứ hai của S tuy nhiên có 2 ngoại lệ:

i Nếu stack thứ 2 rỗng (chỉ có endmarker – X là ký tự trắng) thì stack thứ 2 sẽ không thay đổi M được dịch chuyển sang ký tự trắng khác bên phải

ii Nếu Y là ký tự trống, stack thứ nhất rỗng, thì stack giữ trạng thái rỗng trường hợp này bên trái đầu đọc của M vẫn là ký tự rỗng

f Nếu M thay thế X bởi Y và chuyển sang trái, S lấy từ đỉnh của stack thứ nhất, gọi là Z và thay thế X bởi ZY trên stack thứ 2 Vị trí bên trái của đầu đọc bây giờ là vị trí của đầu đọc của M Nếu Z là điểm đáy của stack, M đẩy BY vào stack thứ 2 và không lấy ra từ stack thứ nhất

6 S chấp nhận nếu trạng thái mới M chấp nhận S mô phỏng dịch chuyển khác của M theo cách tương tự

8.5.3 Counter Machines(Máy Đếm)

Máy đếm gồm 2 loại:

1 Máy đếm có cấu trúc như một máy đa tầng ( hình 8.20) nhưng trong mỗi tầng điều có một bộ đếm

Trang 8

Bộ chứa các số nguyên dương, nhưng ta chỉ có thể phân biệt được giữa các số đếm

0 và khác 0 có nghĩa là, sự biến đổi của bộ đếm tuỳ thuộc vào trạng thái của nó, biểu tượng (dữ liệu) được nhập vào là những dữ liệu đó là bằng 0

Trong 1 lần biến đổi, máy đếm có thể

(a) Thay đổi trạng thái

(b) Tự do cộng vào hoặc trừ đi một từ bã từ dữ liệu nào của bộ đếm tuy nhiên, bộ đếm không được phép chuyển hoá thành số âm, do đó nó không thể trừ đi một từ bộ đếm mà hiện đại đang bằng 0

2 Máy đếm được xem như máy đa tầng có giới hạn Sự giới hạn đó được giải thích như sau:

(a) Chỉ có hai biểu tượng về tầng gọi là Z0 ( đáy tầng của độ đánh dấu) và X (b) Z0 có mặt ở mỗi tầng ngay từ đầu

(c) Ta chỉ có thể thay thế Z0 bởi chuổi cấu trúc Xi Z0 nếu i lớn hơn hoặc bằng 0

(d) Ta chỉ có thể thay thế X bởi Xi nếu i lớn hơn hoặc bằng 0; có nghĩa là, Z0 chỉ xuất hiện ở đáy của mỗi tầng, còn tất cả không biểu tượng (ký hiệu) về tầng khác nếu có được gọi là X

Ta sẽ sử dụng định nghĩa (1) cho máy đếm, nhưng 2 định nghĩa cũng đã xác định rõ năng lượng tương đương của các máy đếm Bởi vì chuổi Xi Z0 được xác định bởi bộ đếm i còn trong định nghĩa (2), ta có thể chỉ ra bộ đếm vì đổ mới bộ đếm 0, ta thấy

Z0 nằm ở đỉnh tầng và hơn nữa ta cũng thấy X tuy nhiên, ta không thể phân biệt được 2 bộ đếm dương vì cả 2 điều có X nằm ở đỉnh tầng

Chương 8: giớ thiệu về máy Turing.

Phương pháp trong phần 8.1 là sử dụng “hello, world” như một công cụ thay thế cho việc đồng ý hay dừng lại vì máy Turing xuất hiện trong những chú thích chưa được xuất bản của S.Rudich

1 “ Vấn đề không thể quyết định được trong lý thuyết sơ đẳng về số”

2 “ Máy Turing với phương pháp bộ nhớ hạn chế”

3 chưa dịch

4.“ Về sự phức tạp có sử dụng điện toàn của thuật toán”

Trang 9

6 “ Sự bất khả thi đệ quy về việc bổ sung dữ liệu của “tag” và những vấn đề khác

lý thuyết về máy Turing”

7 Qui trình kết nối xác định – công thức “

8 Về số học điện thao thao tác điện toán với những ứng dụng đối với…

8.5.4 Chú ý rằng có thể sử dụng bộ điều khiển của máy đa năng nhiều ngăn để làm cho mỗi mày hoạt động thì phải (đòi hỏi) tính đến r hay là ít hơn

1 Trên đầu ngăn xếp, chúng ta phải thay thế i bằng i/r, hay bỏ đi một vài trình nhắc nhở, đó là X1 Bắt đầu là con đếm thứ 3 ở vị trí 0, chúang ta làm một cách đều đặn đếm i bởi r và tăng con đếm thứ 3 lên 1 Khi con đếm xuất phát từ i đến

0, chúng ta dừng lại Sau đó chúng ta tăng lên một cách đều đặn con đếm có xuất phát bởi 1 và giảm xuống con đếm thứ 3 bằng 1 mãi cho tới khi con đếm thứ 3 trở về 0 một lần nửa Lúc này con đếm được dùng để giữ i giữ i/r

2 Để thay đổi X sang Y trên đỉnh của một ngăn được trình bày một cách đếm i, chúng ta tăng hay giảm i bằng một số lượng nhỏ, chắc chắn rằng không hơn r Nếu Y lớn hơn X, như những con số, tăng i bởi Y-X; nếu Y nhỏ hơn X rồi thì giảm i bằng X-Y

3 Đưa X vào một ngăn mà giữ i ban đầu, chúng ta cần thay thế i bằng ir +X Chúng ta nhân đầu tiên bằng r Để làm được điều này, việc tăng đều đặn con đếm i bằng 1 và tăng con đếm thứ 3 (con đếm này bắt đầu từ 0, luôn luôn là như vậy) bằng r Khi con đếm ban đầu trở thành 0, chúng ta có ir trên con đếm thứ 3 ghi con đếm thứ 3 đến con đếm đầu tiên làm con đếm thứ 3 trở về 0 một lần nữa, như chúng ta đã làm trong mục (1) cuối cùng chúng ta tăgn con đếm gốc bằng X

Đế hoàn thành cấu trúc, chúng ta phải khởi tạo nhwxng con đếm để kích hoạt những ngăn trong điều kiện ban đầu: chỉ cần giữ biểu tượng bắt đầu của 2 máy ngăn - Bước này được hoàn thành bởi sự tăng lên của 2 con đếm liên quan đến một vài số nguyên nhỏ, mà bất cứ số nguyên từ 1 đến r-1 thực thể biểu tượng ban đầu

8.15 Mọi ngôn ngữ liệt kê đệ qui được chấp nhận bởi một máy có 2 con đếm

Nguồn gốc: Với những theorem trước, chúng ta phải trình bày làm như thế

nào để kích hoạt 3 con đếm với 2 con đếm Khái niệm tiêu biểu 3 con đếm, nơi i, j

và k bởi số nguyên đơn lẻ Số nguyên chúng ta chọn m=2i3j5k, một con đếm sẽ giữ

Trang 10

một con số này, trong khi những con khác dùng để trợ giúp nhân hay chia m bởi một trong 3 nguyên thuỷ: 2, 3, và 5 Để tương tác máy có 3 con đếm, chúng ta cần phải trình bày những hoạt động sau:

1 Tăng i, j và/hoặc k Tăng i = 1 chúng ta nhân m với 2, chúng ta đã thấy gốc của 8.14 nhân bằng cách nào 1 phép tính bằng 1 vài hằng số r, sử dụng con đếm thứ 2 Như vậy chúng ta tăng j bằng cách nhân m với 3 và chúng ta tăng

k bằng cách nhân m với 5

2 Nói rằng, nếu bất kỳ con đếm nào của i,j và k là 0, chúng ta giảm bất cứ khi nào m có thể chia hết cho 2 Chép m vào trong máy đếm 2, sử dụng máy đếm để nhớ m có thể tăng bất cứ khi nào

Bài Tập: Mô tả máy đếm chấp nhận các ngôn ngữ sau Trong mỗi trường hợp,

sử dụng nhiều nhất hai bộ đếm

c) { 0n1m n  m 1

d) { 0n1m |1  m  n}

Bài giải:

Cho biết ID của máy Turing được mô tả trong hình bên dưới, nếu đầu vào của nó là: 00011

Ngày đăng: 01/02/2015, 00:22

HÌNH ẢNH LIÊN QUAN

Sơ đồ trạng thái của TM ở hình 1 có thể biễu diễn như sau: - tiểu luận môn lý thuyết tính toán restricted turing machines máy turing thu gọn
Sơ đồ tr ạng thái của TM ở hình 1 có thể biễu diễn như sau: (Trang 15)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w