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

HÀM CỤC BỘ, KẾT HỢP CÁC MÁY TURING, BIẾN TẤU CỦA MÁY TURING và CHƯƠNG TRÌNH RAM CHUẨN, RAM THÔ SƠ TÌM NGHIỆM HỆ PHƯƠNG TRÌNH TUYẾN TÍNH BẬC NHẤT (TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN)

36 924 0

Đ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 36
Dung lượng 1,03 MB

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

Nội dung

GIỚI THIỆU Khi thiết kế và cài đặt một phần mềm tin học cho một vấn đề nào đó, ta cần phải đưa ra phương pháp giải quyết mà thực chất đó là thuật toán giải quyết vấn đề này. Rõ ràng rằng, nếu không tìm được một phương pháp giải quyết thì không thể lập trình được. Chính vì thế, thuật toán là khái niệm nền tảng của hầu hết các lĩnh vực của tin học. Ta có thể hiểu khái niệm thuật toán như sau. Nếu cho trước một bài toán thì một cách giải bài toán được phân định ra thành một số hữu hạn bước, có kết thúc cuối cùng và đạt được kết quả mong muốn gọi là thuật toán. Về mặt lịch sử, trong những năm 30 của thế kỷ trước, khi khoa học và công nghệ phát triển, nhân loại đã nêu ra nhiều bài toán mà không tìm thấy lời giải. Có nghĩa là không tìm được thuật toán để giải chúng. Người ta đã phải tìm cách định nghĩa chính xác khái niệm thuật toán. Năm 1936 A. Turing đã đưa ra một công cụ rất tốt để mô tả thuật toán mà ngày nay người ta gọi là máy Turing. Để ghi nhớ công lao này, Hội Tin học Mỹ (ACM) đã đặt ra giải thưởng Turing trong tin học. Cho đến nay, giải thưởng Turing là giải thưởng tin học lớn nhất thế giới. Tiếp theo Turing, một số nhà khoa học khác đã đưa ra các công cụ chính xác hoá khái niệm thuật toán. Đó là các khái niệm hàm đệ quy, thuật toán Marcop, văn phạm sinh của N. Chomsky. Những khái niệm này là cơ sở phát triển của việc nghiên cứu và ứng dụng thuật toán. Mặt khác chính nhờ các khái niệm này, người ta cũng xác định được những bài toán không thể giải được bằng thuật toán. A. Turing đã đề xuất khái niệm máy Turing 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ã toàn bộ quá 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 quát và đơn giản có thể mô hình hoá một quá trình tính toán bất kỳ. Máy Turing có thể xem là một máy với bộ nhớ ngoài có dung lượng được xem như vô hạn. Trong bộ nhớ ngoà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. Chương này cũng mô tả một máy Turing phổ dụng mà nó có thể bắt chước hoạt động của tất cả các máy Turing khác. Từ đó ta đi đến khái niệm bài toán không giải được bằng thuật toán. MỤC LỤC CHƯƠNG 1: LÝ THUYẾT MÁY TURING 3 I. Mô hình máy Turing 3 I.1. Mô tả TM 3 I.2. Định nghĩa 4 II. Hàm cục bộ của máy Turing 6 III. Kết hợp các máy Turing 10 IV. Biến tấu của máy Turing: Multitape TMs 15 CHƯƠNG 2: BÀI TẬP 19

Trang 1

 -TIỂU LUẬN MÔN HỌC

Đề tài:

HÀM CỤC BỘ, KẾT HỢP CÁC MÁY TURING, BIẾN TẤU CỦA MÁY TURING và CHƯƠNG TRÌNH RAM CHUẨN, RAM THÔ SƠ TÌM NGHIỆM HỆ PHƯƠNG TRÌNH TUYẾN TÍNH BẬC NHẤT

Giáo viên hướng dẫn: PGS.TS Phan Huy Khánh

Nhóm Học viên: Nguyễn Khánh

Nguyễn Phong Lương Khánh Tý Phạm Thị Trinh Lớp: Khoa học máy tính - K12

Đà Nẵng, tháng 05 năm 2010.

Trang 2

Khi thiết kế và cài đặt một phần mềm tin học cho một vấn đề nào đó, ta cầnphải đưa ra phương pháp giải quyết mà thực chất đó là thuật toán giải quyết vấn đềnày Rõ ràng rằng, nếu không tìm được một phương pháp giải quyết thì không thể lậptrình được Chính vì thế, thuật toán là khái niệm nền tảng của hầu hết các lĩnh vực củatin học Ta có thể hiểu khái niệm thuật toán như sau Nếu cho trước một bài toán thìmột cách giải bài toán được phân định ra thành một số hữu hạn bước, có kết thúc cuốicùng và đạt được kết quả mong muốn gọi là thuật toán.

Về mặt lịch sử, trong những năm 30 của thế kỷ trước, khi khoa học và côngnghệ phát triển, nhân loại đã nêu ra nhiều bài toán mà không tìm thấy lời giải Cónghĩa là không tìm được thuật toán để giải chúng Người ta đã phải tìm cách địnhnghĩa chính xác khái niệm thuật toán Năm 1936 A Turing đã đưa ra một công cụ rấttốt để mô tả thuật toán mà ngày nay người ta gọi là máy Turing Để ghi nhớ công laonày, Hội Tin học Mỹ (ACM) đã đặt ra giải thưởng Turing trong tin học Cho đến nay,giải thưởng Turing là giải thưởng tin học lớn nhất thế giới Tiếp theo Turing, một sốnhà khoa học khác đã đưa ra các công cụ chính xác hoá khái niệm thuật toán Đó làcác khái niệm hàm đệ quy, thuật toán Marcop, văn phạm sinh của N Chomsky.Những khái niệm này là cơ sở phát triển của việc nghiên cứu và ứng dụng thuật toán.Mặt khác chính nhờ các khái niệm này, người ta cũng xác định được những bài toánkhông thể giải được bằng thuật toán

A Turing đã đề xuất khái niệm máy Turing nhằm chính xác hoá khái niệmthuậ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ậttoá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ảngcủ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ã toàn bộ quá 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ìnhkhái quát và đơn giản có thể mô hình hoá một quá trình tính toán bất kỳ

Máy Turing có thể xem là một máy với bộ nhớ ngoài có dung lượng được xemnhư vô hạn Trong bộ nhớ ngoà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 quantrọng, gọi là các hàm có thể tính được Chương này cũng mô tả một máy Turing phổdụng mà nó có thể bắt chước hoạt động của tất cả các máy Turing khác Từ đó ta điđến khái niệm bài toán không giải được bằng thuật toán

Trang 3

CHƯƠNG 1: LÝ THUYẾT MÁY TURING 3

I Mô hình máy Turing 3

I.1 Mô tả TM 3

I.2 Định nghĩa 4

II Hàm cục bộ của máy Turing 6

III Kết hợp các máy Turing 10

IV Biến tấu của máy Turing: Multitape TMs 15

CHƯƠNG 2: BÀI TẬP 19

Trang 4

CHƯƠNG 1: LÝ THUYẾT MÁY TURING

I Mô hình máy Turing

Một mô hình hình thức cho một thủ tục hiệu quả sẽ có những đặc tính cụ thể.Đầu tiên, mỗi thủ tục sẽ được mô tả một cách hữu hạn Tiếp đó, thủ tục sẽ đượcphân thành một số bước độc lập, mà mỗi bước thực thi một vấn đề

Nguyên tắc này cũng được hình thức trong mô hình máy Turing Máy Turing

có một băng nhớ, dùng để ghi mọi loại dữ liệu (dữ liệu nhập, dữ liệu dùng cho việcđiều khiển tương tự như một chương trình máy tính và các kết quả trung gian khi làmviệc) Với một bộ điều khiển chứa một số hữu hạn trạng thái, TM cũng như cácôtômát khác, làm việc theo lối "ngắt quãng" theo từng bước chuyển

1 Mô tả TM

Máy Turing có rất nhiều dạng đồng khả năng, nghĩa là 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ộ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

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) Khởi đầu xem như n ô bên trái của băng (n ≥ 0) giữchuỗi nhập (input), chuỗi nhập là một chuỗi các ký tự được chọn từ một tập hợp concủa tập hợp các ký hiệu băng, tập hợp con này gọi là tập các ký hiệu nhập Phần cònlại của băng coi như có vô hạn khoảng trống, ký hiệu B (Blank), B là một ký hiệu đặcbiệt của băng nhưng không phải là ký hiệu nhập

Trang 5

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 băngbằng ký hiệu nào đó)

3) Dịch chuyển đầu đọc-viết (sang trái (L), sang phải (R) hoặc đứng yên(∅))

 Γ : tập hữu hạn các ký tự được phép viết trên băng

 B : ký hiệu thuộc Γ dùng chỉ khoảng trống trên băng (Blank)

X1X2 …Xi-1…Xn├ M X1X2….Xi-1pYXi+1 …Xn

Chú ý r ằ ng: nếu i - 1 = n thì chuỗi Xi Xn là rỗng và vế phải dài hơn vế trái,nghĩa là TM M mở rộng chuỗi ký hiệu trên băng

Nếu hai ID được quan hệ nhau bởi ⊢ M thì ta nói ID thứ hai là kết quả của IDthứ nhất bằng một lần chuyển, một bước áp dụng hàm chuyển (hoặc nói cái thứ hai

Trang 6

thu được từ cái thứ nhất bằng một lần chuyển) Nếu một ID thu được từ ID khác bằngmột số lần chuyển (có thể bằng 0) thì ta ký hiệu quan hệ là ⊢ M * Ta cũng có thể bỏ đi

ký hiệu M trong cách viết các quan hệ trên nếu không có nhầm lẫn

Ngôn ngữ được chấp nhận bởi TM

Ký hiệu L(M): tập hợp các chuỗi trong Γ* là nguyên nhân đưa TM M đi vào trạngthái kết thúc khi đã thực hiện việc thay thế từ bên trái các ký hiệu trên băng của M vớitrạng thái bắt đầu q0 Một cách hình thức, ta định nghĩa tập hợp ngôn ngữ được chấpnhận bởi TM M (Q, Σ, Γ, δ, q0, B, F) là tập

L(M) = {L, R, w| w Γ* và q0 w ⊢M*α1pα2 với pF, còn α1α2Γ* }

Cho TM nhận diện một ngôn ngữ L là cho lần lượt các từ của L vào TM xem

TM có chấp nhận từ đó hay không TM sẽ dừng và đi vào một trong những trạng tháikết thúcF (không có phép chuyển kế tiếp) khi từ được chấp nhận, nhưng nếu TMkhông chấp nhận một từ nào đó thì TM có thể ngừng ở một trạng thái ∉ F hoặc cũng

có thể nó chạy mãi mà không dừng lại

Ví dụ: Thiết kế TM chấp nhận ngôn ngữ L = {L, R, 0n1n | n ≥ 1}

Khởi đầu TM chứa 01 bên trái nhất trên băng sau đó là vô hạn khoảng trống Blank TMlặp lại quá trình sau

 M thay 0 bên trái nhất bằng X rồi chuyển sang phải tới 1 trái nhất, TM thay

1 này bằng Y rồi dịch chuyển về bên trái cho tới khi gặp X phải nhất nó chuyểnsang phải một ô (tới 0 trái nhất) rồi tiếp tục lặp một chu trình mới

 Nếu trong khi dịch chuyển sang phải để tìm 1 mà TM gặp Blank thì TMdừng và không chấp nhận input Tương tự, khi TM đã thay hết 0 bằng X vàkiểm tra còn 1 trên băng thì TM cũng dừng và không chấp nhận input

 TM chấp nhận input nếu như cũng không còn ký hiệu 1 nào nữa trên băng Đặt TM M (Q, ∑, Γ, δ, q0, B, F) với các thành phần :

Q = {L, R, q0, q1, q2, q3, q4}; ∑= {L, R, 0, 1}; Γ = {L, R, 0, 1, X, Y, B} và F = {L, R, q4}

Ta có thể hình dung mỗi trạng thái là một câu lệnh hoặc một nhóm các câulệnh trong chương trình Trạng thái q0 là trạng thái khởi đầu và nó làm cho ký hiệu 0bên trái nhất thay bằng X Trạng thái q1được dùng để tiến sang phải bỏ qua các số 0

và Y để tìm 1 bên trái nhất Nếu M tìm thấy 1 nó thay 1 bằng Y rồi đi vào trạng thái

q2 Trạng thái q2đưa M tiến sang trái cho tới X đầu tiên và đi vào trạng thái q0, dịchchuyển sang phải để tới 0 bên trái nhất và tiếp tục một chu trình mới Khi M tiến sangphải trong trạng thái q1, nếu B hoặc X được tìm thấy trước 1 thì input bị loại bỏ(không chấp nhận) vì có chứa nhiều ký hiệu 0 hơn 1 hoặc input không có dạng 0*1* Trạng thái q0 còn có vai trò khác Nếu trạng thái q2 tìm thấy X bên phải nhất và ngaysau đó là Y thì các số 0 đã được xét hết, do đó ở trạng thái bắt đầu một chu trình mới

q0 không tìm thấy ký hiệu 0 nào để thay thành X mà chỉ gặp Y thì TM đi vào trạngthá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 ngaysau 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ì TM 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ỏ

Trang 7

Hàm chuyển δ được cho trong bảng sau :

-Các phép chuyển hình thái của TM M trên input 0011:

q00011 Xq1011 ⊢ X0q111 ⊢ X q20Y1 ⊢ q2X0Y1 ⊢ X q00Y1 ⊢ XXq1Y1 ⊢ XXY

q11 ⊢ XX q2YY ⊢ X q2XYY ⊢ XX q0YY ⊢ XXYq3Y ⊢ XXYYq3⊢ XXYYq4

Nhận xét: Như vậy, ta có thể dễ dàng thấy, TM khác với một ôtômát hữu hạn ở chỗ

đầu đọc-viết có thể dịch chuyển tự do trên băng, không những đọc mà còn có khảnăng viết trên băng và vùng làm việc còn có thể mở rộng theo yêu cầu phát sinh TMkhác với ôtômát đẩy xuống ở chỗ nó không dùng thêm Stack như một bộ giữ nhớ màviết các ký hiệu cần ghi nhớ ngay trên băng

II Hàm cục bộ của máy Turing

Bất kỳ chương trình máy tính nào cũng đều tạo xâu ra của các xâu vào bởi hợphàm tính toán của các xâu khác Giống như máy Turing T với bảng chữ vào  cóthể tính toán hàm ƒ trên miền *, xâux nằm trong miền ƒ, bất cứ khi nào T khởitạo cấu hình tương ứng của xâu x, T sẽ dừng và xuất ra xâu ƒ(x) trên băng.

TMs ở mục 9.1, bất kỳ ngôn ngữ nào cũng được chấp nhận, việc đơn giản củachúng là dừng và chấp nhận trạng thái dừng hoặc lỗi thực thi, phụ thuộc xâu vào màngôn ngữ được chấp nhận Nội dung băng cuối của phép tính không quan trọng.Trường hợp hàm tính toán ƒ của máy TM, nhấn mạnh xâu ra của xâu vào trên miền ƒ.Chúng có thể đọc xâu vào không thuộc miền ƒ, kết quả là những tính toán không liênquan Tuy nhiên, TM tính toán chính xác hàm ƒ, không phải các hàm khác ở miền lớnhơn Vì vậy, chúng xác định xâu vào x không thuộc miền ƒ, TM không chấp nhậnxâu vào x Theo tiến trình tính toán các hàm, máy TM chấp nhận ngẫu nhiên ngôn

ngữ, miền của hàm

Nó tiện ích về những thay đổi nhỏ của các chương sau, và nói về các hàm cục

bộ trên  *, đúng hơn là những hàm con trong * Vấn đề lớn là môi trường,không loại trừ các vấn đề khác Hàm cục bộ ƒ trên * có thể không được xác định;nếu xảy ra trường hợp ƒ xác định bất kỳ đâu trên *, và quan trọng khi xem hàm ƒnhư hàm tổng quát Để máy Turing tính toán ƒ, nó thích hợp với giá trị ƒ của xâuvới các bảng chữ trên máy

Trang 8

ATM có thể quản lý giá trị các hàm Nếu xâu vào được biểu diễn bởi k- băng(x1, x2, …., xk) (*)k, chỉ yêu cầu những quy tắc thay đổi không đáng kể đối với

TM, và khởi tạo băng từ chứa k xâu, tách rời ký tự trống

Định nghĩa 9.3: Hàm của máy TM

Máy Turing T = (Q,  ,  , q0,  ), và lấy ƒ là hàm cục bộ trên * vớigiá trị trên *, với mỗi x *, ƒ xác định

(q0, x) ├ *

T (ha, ƒ(x))Nếu hàm ƒ cục bộ trên (  *)k có giá trị trên *, T tính ƒ với mỗi k- băng(x1, x2, …, xk), ƒ xác định

(q, x1x2…xk) ├ *

T (h,  ƒ(x1, x2,…, xk))Với 2 bảng chữ  1 và  2, k nguyên, hàm cục bộ ƒ: (*1 )k → *2

là khả năng tính toán của máy Turing, hoặc những tính toán đơn giản nếu máy Turingthực hiện tính toán ƒ

Điều đó không chỉ đúng với máy Turing tính toán với một hàm Ví dụ: Nếu Ttính toán hàm ƒ: (  *)2 → * , sau đó T tính toán ƒ1:  * → * xác địnhbởi ƒ1(x) = ƒ(x, ) Tuy nhiên, với bất kỳ k và bất kỳ C  *, TM tính toán ítnhất là một hàm với giá trị k

Hàm có các đối số cũng có thể được tính toán bởi máy Turing, mỗi lần chúnglựa chọn cách để biểu diễn các con số cho xâu chữ, hạn chế trong số tự nhiên, chúng

sử dụng “đơn phân ” (unary) để biểu diễn, số tự nhiên n được biểu diễn xâu 1n = 11…1

Định nghĩa 9.4: Tính toán với hàm số tự nhiên

Lấy máy Turing T = (Q, {L, R, 1},  , q0,  ), nếu hàm cục bộ ƒ trên N , tập hợpcác số tự nhiên, T tính ƒ với mọi n, ƒ xác định

q1, gặp ký tự chữ thường thì thay bằng ký tự chữ hoa và ghi nhớ nó rồi dịch chuyểnđầu đọc sang phải Khi máy TM tiến đến q3 hoặc q5, nếu gặp ký tự hoa thì ghi nhớ ký

tự hoa rồi dịch đầu đọc sang trái Đầu đọc dịch chuyển sang trái, bắt gặp chữ hoa đầu

Trang 9

tiên, thay đổi và dịch chuyển sang phải Với những xâu có độ dài chẳn, TM quay về

q1, ở q8 máy kêt thúc tiến trình Trường hợp xâu có độ dài lẻ, ở trạng thái q3 và q5, nếugặp ký tự thường thì dịch trái Đầu đọc dịch chuyển đến cuối xâu, và kết thúc bằngdịch trái, đổi chữ hoa thành chữ thường

├ (q5, B B A)├ (q8, BB A)├ (q8, BBA) ├ (q9, BB A)├ (q9, B B a)├ (q9, B ba) ├ (q9, bba)├ (ha, bba)

(q0, baba)├ (q1, b aba) ├ (q4, B a ba)├ (q4, Ba b a)

├ (q4, Bab a)├ (q4, Baba)├ (q5, Bab a)

├ (q6, Ba b B)├ (q6, B a baB)├ (q6, B aba B) ├ (q1, A a bB)├ (q2, AA b B)├ (q2, AAb B) ├ (q3, AA b B)├ (q7, A AAB)├ (q1, AB A B)

├ (q8,  ABA B)├ (q8, ABAB)├ (q9,  ABAB)

Trang 10

, /

1 

S

, /

Hình 9.7 Máy Turing tính n chia dư cho 2

Ví dụ 9.5: n chia dư cho 2

Phép chia dư của n cho 2 có thể được tính toán bằng những dịch chuyển từ cuốixâu vào, dịch chuyển từ phải sang trái, gặp 1 thì xoá, nhảy đến 1 khác Những tínhtoán của máy TM được mô tả ở hình 9.7

Ví dụ 9.6 : Hàm đặc trưng cho tập hợp

Bất kỳ ngôn ngữ L *Hàm đặc trưng của L là hàm  L : *  {L, R, 0,1}

được xác định bởi công thức:

0 1

Tính toán của hàm  L tương tự như xác nhận ngôn ngữ L; thay vì phân biệtxâu thuộc L hay xâu không thuộc L được xác nhận hay không được xác nhận, TMchấp nhận mọi xâu vào và phân biệt 2 kiểu kết thúc của xâu dạng (ha,  1) ở trườnghợp này và dạng (ha,  0) ở trường hợp khác

Nếu TM T tính toán  L, chúng chứa xác nhận L T thay đổi để xuất ra 0, thay

ha bằng hr Thỉnh thoảng có cách khác, ví dụ đơn giản là ngôn ngữ L giống nhau trên{L, R, a, b} (ví dụ 9.2) Máy TM xác nhận L biểu diễn trên hình 9.2 và máy TM tính toán

 L được biểu diễn trên hình 9.8

Như đã thấy ở mục 9.1, TM có thể xác nhận ngôn ngữ L và dịch chuyển được hay không hay lặp vô cùng

a/a,R b/b,R b a//,,L L

b/ ,L L

, / 

Trang 11

 / ,L

a/a,L  /a, R  / ,R b/b,L

b/ ,R b/ ,L

 / ,L a/ ,L

 / ,L a/a,R  / ,L  / 0 ,L

b/b,R

a/ ,L  / 1 ,L

 / ,L

 / ,L

Hình 9.8 Tính  L

III Kết hợp các máy Turing

Một trong những mục đích của chương này là đưa ra những gợi ý tiềm năng tạo

ra các máy Turing kết hợp Suốt quá trình máy Turing thực hiện những tính toánthông thường hay thực hiện các vòng lặp chính là thực hiện dịch chuyển đầu đọc băng

từ bắt đầu từ một hướng nào đó của xâu chữ hoặc xoá một phần băng từ Nếu chúngcần mô tả mỗi monolithical của máy Turing, biểu diễn một cách chi tiết nhất, hạn chế

độ phức tạp của các vấn đề để chúng có thể giải quyết được Thông thường, máyTuring phức tạp (phức tạp về thuật toán hoặc là phức tạp về phần mềm) được tạo ra từnhững máy đơn giản hơn, những thứ có thể dùng lại được

Block Diagram

Input Output

Trường hợp đơn giản nhất, chúng ta có thể xây dựng máy Turing thực thi trênmáy Turing đầu và thực thi cả trên các máy Turing khác nữa Nếu nối T1 với T2 thìđược TMs, cùng với việc tách tất cả các trạng thái không dừng và các hàm dịchchuyển δ1 và δ2, theo thứ tự chúng ta viết T1T2 để tạo ra máy TMs này Thiết lập cáctrạng thái là hợp của hai trạng thái T1T2 khởi tạo trạng thái đầu T1 và thực hiện việcdịch chuyển của T1 ( dùng hàm δ1 ) lên trên, nơi mà T1 có thể dừng, bất kỳ dịchchuyển nào khiến cho T1 dừng thì trạng thái được chấp nhận T1T2 thực hiện trên cùngmột dịch chuyển, ngoại trừ nó khởi tạo trạng thái T2 thay cho dịch chuyển này Tạimọi điểm, đầu đọc băng từ có vị trí xác định, nơi mà T1 dừng Từ vị trí này, sự dịchchuyển của T1T2 là sự dịch chuyển của T2 (dùng hàm δ2) Nếu là T1 hoặc T2 dừng trongquá trình xử lý thì T1T2 cũng vậy, và T1T2 chấp nhận khi và chỉ khi T2 chấp nhận

Để dùng máy này trong ngữ cảnh lớn hơn, bằng cách tươ ng tự là chuyển đổilược đồ nhưng không kèm biểu diễn trạng thái rõ ràng, chúng ta có thể viết

T1  T2

Turing Machine

R

a/ ,

Trang 12

h a

Có thể thêm các điều kiện, phụ thuộc những biểu tượng trên băng từ hiện tạikhi mà T1 dừng, và có thể viết

Một vài TMs chỉ dừng ở trạng thái reject ( từ chối ) thì xem như là chính máy

đó đã thành công trong việc kết nối với các máy khác ( máy TM thực hiện thuật toán

“di chuyển đầu đọc băng từ một lần từ trái qua ”) Trong trường hợp khác, máy TMthường dừng khi chạy một cách độc lập và sau đó dừng khi đã sử dụng hết khả năngcủa máy, được cung cấp nhờ băng từ đã chuẩn bị sẵn trước khi dùng Ví dụ một máy

TM T chờ để đoán nhận xâu vào s cần bắt đầu cấu hình dạng q,y, z Cũng giốngnhư T dừng khi xử lý đầu vào z theo cách thông thường, không phụ thuộc vào y ( lý

do là nếu như T dừng khi bắt đầu cấu hình q , z, sau đó T sẽ không bao giờ dịchchuyển đầu đọc băng từ sang bên trái của ký tự trống , thay vào đó, bắt đầu cấu hình

)

,

(q yz , T sẽ không bao giờ thực sự thấy bất kỳ ký hiệu nào của y) Thực thi của Tđúng, tuy nhiên phụ thuộc vào băng từ bị trống ở bên phải của z trừ khi được xem như

là không gian cần cho việc tính toán z

Để có thể mô tả việc biên dịch TMs mà không phải mô tả các thao tác nguyênthuỷ (primitive) như việc phát sinh máy TM, nó cũng thỉnh thoảng trở nên có ích khitrộn các ký hiệu với nhau nhưng không phải tất cả các trạng thái của máy TMs đềuđựơc biểu diễn Ví dụ lược đồ ở hình 9.10a, viết gọn lại ở hình 9.10b, hiển nhiên đượcxem là đúng

Nếu ký hiệu hiện tại là a, TM thực hiện T; nếu là b, dừng và ở trạng thái chấpnhận (accept), và nếu là bất kỳ ký hiệu nào khác đều bị từ chối (reject)

Trang 13

Mặc dù việc kết nối chính xác các máy TMs là phức tạp, nó khá rõ trong những

ví dụ mà chúng ta đã theo dõi Có khả năng nguồn bị xáo trộn, tuy nhiên các ký hiệu

đã được đoán nhận Máy TM T có dạng T1   T2 Nếu T1 đọc ký hiệu không rõ (kháca) thì T từ chối.Tuy nhiên, bình thường nếu T2 dừng, T cũng dừng và băng từ khôngđọc ký hiệu nào cả Có thể tránh những mâu thuẫn bên ngoài bằng cách cho rằng, bìnhthường nếu T1 dừng đọc ký hiệu khác a, T dừng, không kể đến T có thể sau đó khôngcòn tương đương với sự biên dịch của T1T’T2 đã mô tả ở trên, đây là điều khôngmong muốn Trong ký hiệu của chúng, lần thực thi cuối cùng của mỗi máy TM con làbiên dịch cho máy TM kế tiếp, sau một vài sự lựa chọn để xác định chính xác sự biểudiễn, giống như hình 9.11a và 9.11b

Cơ bản để xây dựng một máy TM, giống như dịch chuyển một loạt các vị trícủa đầu đọc một cách trực tiếp hoặc gián tiếp, viết những ký hiệu ở nơi hiện tại, vàtìm kiếm trực tiếp hoặc gián tiếp cho các ký hiệu, dễ hiểu và không cần phải giải thích

rõ ràng Chúng nhận ra được cả những điểm nhỏ trong quá trình thực thi

chữ không có ký tự trống, và cấu hình cuối có dạng (h0, x x) Máy TM sẽ chép ký

tự đầu tiên, ghi nó và dịch sang phải, đến ký tự thứ hai, ghi nó vào Nó đánh dấunhững ký tự đã đọc bằng cách ghi những ký tự đó bằng chữ hoa Chúng hiểu ký tựđọc vào là {L, R, a, b}; tất cả những điều đó là cần thiết cho việc tạo ra chính xác vị trí(“chữ hoa”) của mỗi ký tự ở bảng chữ đọc vào Khi việc ghi chép hoàn thành, ký tựviết hoa sẽ thay đổi lại giống bản gốc Máy TM biểu diễn ở hình 9.12

Trang 14

 / ,R  /a, L a/a,L a/a,L

b/b,L b/b,L a/A,R

A/a,LB/b,L

Hình 9.12 Máy Turing copy xâu chữ

z để tránh trường hợp thừa nhận xâu vào là [a,b] Máy TM thực hiện xoá ký tự

và thay thế bằng ký tự trống Nó dịch chuyển sang phải đến cuối cùng gặp z thì dịchchuyển sang trái, cứ tiếp tục dịch chuyển sang trái đến lúc gặp ký tự trống Quá trìnhdịch chuyển được mô tả ở hình 9.13 Trạng thái qa và qb là để nó ghi nhớ giữa nhữnglần nó xoá và ghi lúc dịch chuyển sang trái Tất nhiên trước khi nó viết một ký tự là

nó đã đọc ký tự đó và xác định trạng thái tiếp theo

q a

q b

h a

q

h a q

0

Trang 15

Hình 9.13 Máy Turing Delete xâu chữ

Chèn ký tự a vào hoặc thay đổi nội dung băng từ thành y z từ y a z, xác nhận ký

tự và tiến từ trái sang phải, dịch chuyển dừng và thay a bởi ∆

Để xoá, máy chuyển từ y a zthành y z Nếu những gì được gọi khi nội dung băng

từ không phải là y a zy mà là y a zw, ở đây w có phải là chuỗi các ký hiệu haykhông? Trước hết, có thể xem máy TM được thiết kế để thực thi cho y  z w trên băng

từ, tuy nhiên sự biểu diễn đó không hợp lý Trừ khi chúng biết những tính toán đãthực hiện trước đó, hoặc trừ khi đánh nhãn ký tự trống bên phải nhất để nhận biết, nếukhông chúng không có cách nào để biết được Lời chỉ dẫn “dịch chuyển đầu đọc đến

ký tự trống bên phải nhất ”, thông thường không được thực hiện bằng máy TM (bàitập 9.12) Nói chung, máy Turing được thực hiện một cách lý thuyết Cho rằng nóchắc chắn có cấu hình nếu nó dừng sau một vài cấu hình đặc biệt Về mặt kỹ thuật cóthể nói rằng, kết quả có được nếu như máy TM có một vài cấu hình khác nhau Máyđược thoã mãn về kỹ thuật, và không đoán nhận, có lẽ dừng ở hr hoặc lặp vô hạn

Ví dụ 9.9: Một cách xác nhận khác

Cho rằng Copy ở máy TM hình 9.12 và đảo ngược ở hình 9.6 Máy TM bắt đầuthực hiện như sau: Bắt đầu băng từ x y, với x, y  {L, R, a,b}*, Equal xảy ra khi và chỉkhi x = y Sau đó, hợp các máy TM biểu diễn ở hình 9.14 xác nhận ngôn ngữ bởi {L, R, a,b} bằng cách so sánh xâu vào với xâu đảo của nó và được chấp nhận khi chúng bằngnhau

IV Biến tấu của máy Turing: Multitape TMs

Các phiên bản của máy Turing được giới thiệu ở mục 9.1 Ở đây có vài sự khácbiệt về những quy ước nhỏ, quan tâm đến cấu hình khởi tạo, dịch chuyển được phép,giao thức chấp nhận xâu…Thêm vào đó, mô hình máy TM có thể được cải tiến theomột vài cách thông thường Trong mục này, chúng ta đề cập đến một số cái khác nhau

và đưa ra các phiên bản cải tiến

TM thân thiện hơn với người dùng, như băng thêm vào, dễ dàng hơn để mô tảthuật toán: có thể chia nhỏ dữ liệu và lưu trữ trong các băng từ khác nhau, tránhnhững sai lầm về kỹ thuật, và thành công nếu như tất cả dữ liệu được lưu trữ và truyxuất từ một băng từ đơn Vì vậy, có sự cải tiến ở những phiên bản sau Tuy nhiên,mặc dù có sự thay đổi về môi trường nhưng vẫn không có sự thay đổi lớn về mặt tínhtoán Cuối cùng là trong mục này sẽ đưa ra những ví dụ hữu ích về cách tạo ra loạimáy tính có thể bắt chước các máy khác

Trang 16

Để so sánh hai lớp trong máy trừu tượng với việc tính toán, bắt đầu từ nhữnghạn chế Ở đây, chúng ta không quan tâm đến tốc độ, năng suất hay môi trường, chỉquan tâm đến cách mà 2 loại máy giải quyết cùng một vấn đề và có cùng câu trả lời.Bất kỳ máy Turing nào cũng cho ra một câu trả lời, trước hết là chấp nhận hay khôngchấp nhận, thứ hai là có cho ra cùng kết quả khi nó ở trạng thái dừng Điều này cónghĩa là nếu như muốn biểu diễn máy B có cùng khả năng như máy A, chúng cần phảibiểu diễn cho bất kỳ máy TA của loại A, máy TB của loại B để chấp nhận cùng xâu vào

là TA và cùng một xâu ra là TA bất cứ khi nào nó ở trạng thái dừng

Trước hết, chúng ta đề cập ngắn gọn về sự khác biệt của các mô hình cơ bản,chúng có những hạn chế nhất định Một khả năng có thể xảy ra là yêu cầu đầu đọcdịch chuyển sang phải hoặc sang trái Trong phiên bản này, giá trị của hàm dịchchuyển δ gồm phần tử (Q  {L, R, ha, hr }) x (Г  {∆} ) x {L, R, L, R, S} Khả năng thứ hai làghi ký hiệu hoặc đọc ký hiệu nhưng không phải là cả hai Trong trường hợp này, δ lấygiá trị trong (Q  {L, R, ha, hr }) x (Г  {∆}  {L, R, L, R}), L, R được thừa nhận không phải làphần tử của Г Cả 2 trường hợp này cho thấy rằng, những hạn chế không làm giảmkhả năng của máy

Xác định sự khác nhau giữa các máy Turing và máy tính là máy TM có băng từ

1 thứ nguyên với kết thúc trái Một cách để làm tăng khả năng của máy, đó là có thểgiảm những hạn chế: tạo ra băng từ 2 thứ nguyên, hoặc bỏ bớt kết thúc trái và tạo rabăng từ có khả năng điều khiển cả hai Cách khác, nên bắt đầu với các quy tắc, đó làmáy có thể thực thi, quy ước đối với những xâu vào và xâu ra Tóm lại, khả năng củamáy thay đổi không đáng kể khi có sự thêm vào khác

Đúng hơn là xác định một băng, chúng có thể thay thế bằng cách ghép thêmcác băng khác nữa Chúng quyết định đầu đọc băng từ đơn hay không, vị trí chính xáccủa các băng, hoặc là đầu đọc trên mỗi băng từ dịch chuyển độc lập với những cáikhác Chúng có hai lựa chọn, máy Turing n băng từ được xác định bởi 5 thành phần T

= (Q, ∑, Г, Qo, δ), nó dịch chuyển trên cơ sở là trạng thái hiện thời và n- băng đãkhảo sát của băng từ, từ đó, đầu đọc dịch chuyển một cách độc lập, được biểu diễn bởihàm dịch chuyển sau:

Chúng khởi tạo cấu hình cho xâu vào x

(qo, x, , …, )Với những từ khác, trước hết băng từ đọc vào Chúng xuất ra TM n- băng lànội dung cuối của băng 1 Băng 2, thông qua n, được dùng để làm không gian làmviệc phụ, và khi máy TM dừng thì nội dung của nó bị bỏ qua Liên quan đến hàm ƒcủa máy tính, bất cứ khi nào bắt đầu với xâu vào x nằm trong miền ƒ, nó dừng ở một

vài cấu hình dạng (ha, ∆ƒ(x)), ở đây nội dung băng 2 là bất kỳ, trường hợp khác thì

báo lỗi

Hiển nhiên là với bất kỳ n ≥ 2, TM n- băng ít nhất cũng có những khả năngnhư một băng Để bắt chước máy TM, máy TM n- băng đơn giản hoạt động như trênbăng 1 và chuyển đến các ký tự trống khác Và chúng biểu diễn ngược lại

Trang 17

Định lý 9.1:

Với n ≥ 2 và cho máy Turing n- băng T1 = {L, R, Q1, ∑, Г1, q1,δ1} Thì máy TM 1- băng

T2 = {L, R, Q2, ∑, Г2, q2,δ2}, với Г1 Г2 , thoã mãn 2 điều kiện sau:

1 L(T2) = L(T1), với bất kỳ x  ∑* , T2 chấp nhận xâu vào x nếu và chỉ nếu T1

(q2,  x) ├*

T2 (ha, yaz)Nếu như T1 chấp nhận xâu vào x, thì T2 cũng chấp nhận xâu vào x và cho xâu ra

giống với T1

Chứng minh:

Chứng minh với n = 2 Dễ thấy điều này trong các trường hợp mở rộng

Xây dựng máy TM 1- băng, có khả năng bắt chước theo máy 2- băng, nó hoạtđộng như máy 2- băng Cách lấy băng đơn giống như băng 2, để dùng cho băngchữ phức tạp Nếu thêm ký tự ít hơn chữ, có thể nảy sinh những vấn đề về kỹ thuậttrong việc bắt chước, tìm vị trí rãnh đầu đọc đã chia nhỏ

Bảng chữ Г2 chứa các ký tự

1 Ký tự trong Г = Г1  {L, R, ∆} Đúng vì xâu vào và xâu ra có cùng dạng

2 Phần tử của Г x Г , (X, Y) có thứ tự, biểu diễn X theo thứ tự i ở băng từ đầutiên, Y ở băng tần thứ 2 Băng từ có 2 rãnh, tương ứng với 2 băng từ của T1 2rãnh không có ngay lúc đầu, mà được tạo ra từ từ khi T2 dịch chuyển đầu đọccủa nó sang phải

3 Phần tử của (Г x Г’)  (ГГ’ x Г)  (ГГ’ x Г'), ở đây Г’ chứa các ký tự như Г Bất

cứ lúc nào bắt chước, ký tự được đầu đọc chỉ định phù hợp với băng T1 Biểudiễn cặp ký tự trên đầu đọc T1 trên cùng băng

4 Thêm ký tự trống, chèn vào bên trái của thứ tự, nó dễ tìm thấy điểm bắt đầucủa đầu đọc khi cần

Tiếp theo T2, sau khi chèn ký tự trống, thay đổi ký tự trống, trên băng 1 là ký tự(∆’, ∆’), nghĩa là đầu đọc của mỗi rãnh bây giờ trên băng 1, và sau đó tất nhiên đầuđọc lùi về 0 Từ đó, 2 rãnh sẽ mở rộng ra như T2 và đầu đọc dịch chuyển sang phải,bất cứ khi nào phù hợp với băng cha, nó chuyển từ ký tự đơn sang ký tự đôi

Bắt đầu bắt chước, T1 dịch chuyển dạng

δ(b, a1, a2) = (q, b1, b2, D1, D2)

a1, a2 là ký tự có thứ tự của băng từ tương ứng Vì T2 chỉ có một đầu đọc, nóphải xác định bước dịch chuyển tiếp theo của ký tự trên rãnh băng từ của nó, tạo ranhững biến đổi dịch chuyển thích hợp trên rãnh, gồm cả những ký tự mới được tạo ra

để phù hợp với bất kỳ sự thay đổi vị trí trên đầu đọc T1

Có thể dùng T2 để nhớ trạng thái hiện tại của T1 Với khả năng này, có thể mô

tả T2 bắt chước những dịch chuyển đơn của T1, bắt đầu từ bên trái nhất của băng từ

1 Dịch chuyển đầu đọc sang phải đến khi tìm thấy cặp (a1’, c) và ghi nhớ a1.Dịch chuyển lùi lại đến ký tự # ở đầu

Trang 18

4 Nếu vị trí hiện tại có chứa #, từ chối, T1 kết thúc bằng cách dịch chuyển đầuđọc sang băng 2 Nếu không và nếu vị trí hiện tại không chứa cặp kýtự,chuyển ký tự a đó đến cặp (a, ∆’), nếu chứa cặp (a, b) thì chuyển sang (a,

b’), đầu đọc bắt đầu dịch chuyển

Định vị cặp (a1’, c) ở bước 1, thay đổi thành (b1, c) và dịch chuyển đầu đọc theo chỉ thị

0 1 0 1’

 0’

 0 1 # 

 (p, 0, 1) = (q,  , 0 ,L,R)Dòng thứ 2 trình diễn sau bước 4, ký hiệu 1 được thay bằng cặp ký hiệu, kýhiệu thứ 2 là kết quả dịch chuyển của đầu đọc trên băng thứ 2 Dòng thứ 3 trình diễncấu hình sau bước 6

Không tiến đến trạng thái kết thúc ha, lặp lại bước 6 để T2 bắt chước dịch chuyển của

T1 Khi trạng thái mới là ha, T2 thêm bước dịch chuyển để có cấu hình đúng

7 Dịch chuyển qua băng, chuyển đến cặp (a, b) cho ký hiệu a

8 Xoá #, những ký hiệu còn lại là 0

9 Dịch chuyển đầu đọc đến ký tự có độ ưu tiên, thay đổi ký tự tương ứng và dừng đầuđọc ở trạng thái ha

Hệ quả 9.1: Bất kỳ ngôn ngữ nào chấp nhận máy TM n- băng thì cũng có thể thực

hiện với máy TM thông thường

Chứng minh: Được chứng minh từ định lý 9.1

Ngày đăng: 11/11/2014, 15:21

HÌNH ẢNH LIÊN QUAN

Hình 9.6. Đảo xâu - HÀM CỤC BỘ, KẾT HỢP CÁC MÁY TURING,  BIẾN TẤU CỦA MÁY TURING và CHƯƠNG TRÌNH RAM CHUẨN, RAM THÔ SƠ TÌM NGHIỆM HỆ PHƯƠNG TRÌNH TUYẾN TÍNH BẬC NHẤT (TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN)
Hình 9.6. Đảo xâu (Trang 9)
Hình 9.7. Máy Turing tính n chia dư cho 2 - HÀM CỤC BỘ, KẾT HỢP CÁC MÁY TURING,  BIẾN TẤU CỦA MÁY TURING và CHƯƠNG TRÌNH RAM CHUẨN, RAM THÔ SƠ TÌM NGHIỆM HỆ PHƯƠNG TRÌNH TUYẾN TÍNH BẬC NHẤT (TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN)
Hình 9.7. Máy Turing tính n chia dư cho 2 (Trang 10)
Hình 9.8. Tính  L - HÀM CỤC BỘ, KẾT HỢP CÁC MÁY TURING,  BIẾN TẤU CỦA MÁY TURING và CHƯƠNG TRÌNH RAM CHUẨN, RAM THÔ SƠ TÌM NGHIỆM HỆ PHƯƠNG TRÌNH TUYẾN TÍNH BẬC NHẤT (TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN)
Hình 9.8. Tính  L (Trang 11)
Hình 9.12. Máy Turing copy xâu chữ - HÀM CỤC BỘ, KẾT HỢP CÁC MÁY TURING,  BIẾN TẤU CỦA MÁY TURING và CHƯƠNG TRÌNH RAM CHUẨN, RAM THÔ SƠ TÌM NGHIỆM HỆ PHƯƠNG TRÌNH TUYẾN TÍNH BẬC NHẤT (TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN)
Hình 9.12. Máy Turing copy xâu chữ (Trang 14)

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