1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo bài tập môn mật mã và độ PHỨC tạp THUẬT TOÁN tìm hiểu về máy turing và lý thuyết mã

47 15 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

Tiêu đề Tìm Hiểu Về Máy Turing Và Lý Thuyết Mã
Tác giả Phạm Thị Nguyệt Ánh
Người hướng dẫn Cô Ngô Thị Hiền
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Mật Mã
Thể loại Báo Cáo
Định dạng
Số trang 47
Dung lượng 1,24 MB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC  BÁO CÁO BÀI TẬP MÔN MẬT MÃ VÀ ĐỘ PHỨC TẠP THUẬT TỐN Tìm hiểu máy Turing Lý thuyết Mã Giảng viên: Cô Ngô Thị Hiền Sinh viên : Phạm Thị Nguyệt Ánh MSSV : 20173487 A MÁY TURING I MƠ HÌNH MÁY TURING (TM) Một mơ hình hình thức cho thủ tục hiệu có đặc tính cụ thể Đầu tiên, thủ tục mô tả cách hữu hạn Tiếp đó, thủ tục phân thành số bước độc lập, mà bước thực thi vấn đề Nguyên tắc hình thức mơ hình máy Turing Máy Turing có băng nhớ, dùng để ghi loại liệu (dữ liệu nhập, liệu dùng cho việc điều khiển tương tự chương trình máy tính kết trung gian làm việc) Với điều khiển chứa số hữu hạn trạng thái, TM ôtômát khác, làm việc theo lối "ngắt quãng" theo bước chuyển Mô tả TM Máy Turing có nhiều dạng đồng khả năng, nghĩa có nhiều mơ hình định nghĩa khác cho máy Turing tất chúng tương đương Song, nói chung mơ hình máy Turing gồm : - Một điều khiển hữu hạn - Một băng chia thành ô - Một đầu đọc-viết, lần đọc duyệt qua ô băng để đọc hay viết ký hiệu Mỗi ô giữ ký hiệu số hữu hạn ký hiệu băng (các ký hiệu phép viết băng) Khởi đầu xem n ô bên trái băng (n  0) giữ chuỗi nhập (input), chuỗi nhập chuỗi ký tự chọn từ tập hợp tập hợp ký hiệu băng, tập hợp gọi tập ký hiệu nhập Phần lại băng coi có vơ hạn khoảng trống, ký hiệu B (Blank), B ký hiệu đặc biệt băng khơng phải ký hiệu nhập Hình - Mô tả TM Mỗi bước chuyển máy Turing, phụ thuộc vào ký hiệu đầu đọc đọc băng trạng thái điều khiển, máy thực bước sau : 1) Chuyển trạng thái 2) In ký hiệu băng ô duyệt (nghĩa thay ký hiệu đọc băng ký hiệu đó) 3) Dịch chuyển đầu đọc-viết (sang trái (L), sang phải (R) đứng yên()) Định nghĩa Một cách hình thức, ta định nghĩa máy Turing (TM) sau : Định nghĩa: TM hệ thống M (Q, ∑, , , q0, B, F), đó: Q : tập hữu hạn trạng thái ∑: ký hiệu nhập  : tập hữu hạn ký tự phép viết băng B : ký hiệu thuộc  dùng khoảng trống băng (Blank)  : hàm chuyển ánh xạ : Q    Q    {L, R, } ( khơng xác định với vài đối số) q0  Q trạng thái bắt đầu F  Q tập trạng thái kết thúc Hình thái TM (Instantaneous description - ID) {}Một hình thái máy Turing M cho 1 q 2, q trạng thái hành M; 12  * nội dung băng tính từ đầu băng ký hiệu khác Blank bên phải băng Giả sử Q  rời nhau: đầu đọc đọc ký hiệu bên trái 2 2 =  đầu đọc đọc Blank Hàm chuyển Ta định nghĩa phép chuyển trạng thái TM sau : Đặt X1X2 Xi-1 q Xi Xn ID + Giả sử (q, Xi) = (p, Y, L), đó: - Nếu i - = n Xi B - Nếu i =1 khơng có ID kế tiếp, nghĩa đầu đọc không phép vượt qua cận trái băng - Nếu i > ta viết : X1X2 Xi-1 q Xi Xn ⊢M X1X2 Xi-2 p Xi-1Y Xi+1 Xn + Tương tự (q, Xi) = (p, Y, R) ta viết : X1X2 Xi-1 q Xi Xn ⊢M X1X2 Xi-1 Yp Xi+1 Xn + Tương tự (q, Xi) = (p, Y, ) ta viết : X1X2 Xi-1 q Xi Xn ⊢M X1X2 Xi-1 pY Xi+1 Xn Chú ý i - = n chuỗi Xi Xn rỗng vế phải dài vế trái, nghĩa TM M mở rộng chuỗi ký hiệu băng Nếu hai ID quan hệ ⊢M ta nói ID thứ hai kết ID thứ lần chuyển, bước áp dụng hàm chuyển (hoặc nói thứ hai thu từ thứ lần chuyển) Nếu ID thu từ ID khác số lần chuyển (có thể 0) ta ký hiệu quan hệ ⊢M* Ta bỏ ký hiệu M cách viết quan hệ khơng có nhầm lẫn Ngôn ngữ chấp nhận TM Ký hiệu L(M): tập hợp chuỗi * nguyên nhân đưa TM M vào trạng thái kết thúc thực việc thay từ bên trái ký hiệu băng M với trạ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ữ chấp nhận TM M (Q, ∑, , , q0, B, F) tập L(M) = { w  w  * q0 w ⊢M* 1 p 2 với p  F 12  *} Cho TM nhận diện ngôn ngữ L cho từ L vào TM xem TM có chấp nhận từ khơng TM dừng vào trạng thái kết thúc  F (khơng có phép chuyển kế tiếp) từ chấp nhận, TM không chấp nhận từ TM ngừng trạng thái  F chạy mà khơng dừng lại Thí dụ : Thiết kế TM chấp nhận ngôn ngữ L = { 0n1n  n  1} Khởi đầu TM chứa 0n1n bên trái băng sau vơ hạn khoảng trống Blank TM lặp lại trình sau: - M thay bên trái X chuyển sang phải tới trái nhất, TM thay Y dịch chuyển bên trái gặp X phải chuyển sang phải (tới trái nhất) tiếp tục lặp chu trình - Nếu dịch chuyển sang phải để tìm mà TM gặp Blank TM dừng không chấp nhận input Tương tự, TM thay hết X kiểm tra băng TM dừng khơng chấp nhận input - TM chấp nhận input không ký hiệu băng Đặt TM M (Q, ∑, , , q0, B, F) với thành phần : Q = {q0, q1, q2, q3, q4}; ∑= {0, 1};  = {0, 1, X, Y, B} F = {q4} Ta hình dung trạng thái câu lệnh nhóm câu lệnh chương trình Trạng thái q0 trạng thái khởi đầu làm cho ký hiệu bên trái thay X Trạng thái q1 dùng để tiến sang phải bỏ qua số Y để tìm bên trái Nếu M tìm thấy thay Y vào trạng thái q2 Trạng thái q2 đưa M tiến sang trái X vào trạng thái q0, dịch chuyển sang phải để tới bên trái tiếp tục chu trình Khi M tiến sang phải trạng thái q1, B X tìm thấy trước input bị loại bỏ (khơng chấp nhận) có chứa nhiều ký hiệu 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 sau Y số xét hết, trạng thái bắt đầu chu trình q0 khơng tìm thấy ký hiệu để thay thành X mà gặp Y TM vào trạng thái q3 duyệt qua Y để kiểm tra có hay khơng có ký hiệu lại Nếu theo sau Y B, nghĩa băng nhập khơng cịn ký hiệu TM 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ỏ Hàm chuyển  cho bảng sau : Các phép chuyển hình thái TM M 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 dễ dàng thấy, TM khác với ôtômát hữu hạn chỗ đầu đọc-viết dịch chuyển tự băng, khơng đọc mà cịn có khả viết băng vùng làm việc cịn mở rộng theo u cầu phát sinh TM khác với ôtômát đẩy xuống chỗ khơng dùng thêm Stack giữ nhớ mà viết ký hiệu cần ghi nhớ băng II NGƠN NGỮ VÀ "HÀM TÍNH ĐƯỢC" Ngơn ngữ chấp nhận máy Turing gọi ngôn ngữ đệ qui liệt kê - recursively enumerable (r.e) Đó lớp ngơn ngữ rộng, thực chứa ngôn ngữ phi ngữ cảnh CFL số ngôn ngữ mà xác định thành phần cách máy móc Nếu L(M) ngơn ngữ máy Turing nhận diện L(M) không dừng số input không thuộc L(M) Nhưng chuỗi w  L(M) chắn TM dừng, nhiên TM chạy input khơng thể biết ta chắn liệu TM có dừng lại hay khơng Một cách thuận lợi có ý nghĩa xét lớp lớp ngôn ngữ đệ qui liệt kê, ngơn ngữ chấp nhận máy Turing dừng input Lớp ngôn ngữ gọi lớp ngôn ngữ đệ qui - recursive sets Máy Turing máy tính hàm số nguyên Máy Turing xem máy tính hàm số nguyên (đi từ tập số nguyên đến tập số nguyên) Mỗi số nguyên ta viết dạng số hệ phân (unary), tức với số i  ta viết thành chuỗi 0i (gồm i chữ số 0) Nếu hàm f có k đối số i1, i2, , ik ta viết số nguyên băng TM ngăn cách 1, nghĩa input có dạng 0i110i21 10ik Nếu TM dừng (chấp nhận không chấp nhận input) với băng 0m ta nói f (i1, i2, , ik ) = m Chú ý ta tính hàm có đối số Nếu f xác định với đối số i1, i2, , ik ta gọi f hàm đệ qui toàn Một hàm f tính máy Turing ta gọi hàm đệ qui phận Hàm đệ qui phận tương tự ngôn ngữ đệ qui liệt kê tính máy Turing khơng dừng với số đối số Hàm đệ qui tồn tương tự ngơn ngữ đệ qui TM dừng input Thí dụ 2: Thiết kế máy Turing tính tốn phép trừ riêng Ta định nghĩa phép trừ riêng (proper subtraction) sau : f(m, n) = m\ n =m - n m  n m < n Input : 0m10n Output : m\ n M lặp lại việc thay số đầu băng B tiến sang phải, sau tìm thay M lại chuyển sang trái gặp B dừng lại, trở trạng thái bắt đầu tiếp tục vòng lặp M dừng : i) Khi sang phải tìm bên phải, M gặp B Lúc M thay n số bên phải chuỗi input 0m10n thành n + số bên trái thành B, trường hợp xảy chuỗi input có m > n Do M phải thay lại tất n + số sau thành B, sau dịch trái thay trả lại B thành 0, cuối băng lại kết phép trừ m - n số ii) Khi bắt đầu vòng lặp mới, M khơng tìm thấy để đổi thành B, lúc m số đầu bị đổi thành B, trường hợp xảy n  m Khi đó, M thay tất số băng thành B kết phép trừ (biểu diễn gồm toàn ký hiệu B hệ phân) Ta xây dựng TM sau: M ({q0, q1, , q6}, {0, 1}, {0, 1, B}, , q0, B, {q6}) M bắt đầu 0m10n băng kết thúc với 0m\ n băng Các phép chuyển trạng thái định nghĩa sau : 1) d(q0, 0) = (q1, B, R) M thay đầu băng B 2) d(q1, 0) = (q1, 0, R) d(q1, 1) = (q2, 1, R) M di chuyển sang phải qua tìm 3) d(q2, 1) = (q2, 1, R) d(q2, 0) = (q3, 1, L) M di chuyển sang phải vượt qua đến gặp 0, đổi thành 4) d(q3, 0) = (q3, 0, L) d(q3, 1) = (q3, 1, L) d(q3, B) = (q0, B, R) M dịch trái tới gặp B, trở trạng thái q0 bắt đầu vòng lặp 5) d(q2, B) = (q4, B, L) d(q4, 1) = (q4, B, L) d(q4, 0) = (q4, 0, L) d(q4, B) = (q6, 0, ) Nếu trạng thái q2 sang phải tìm để thay thành gặp B ta xét trường hợp kết thúc i) trên: TM vào trạng thái q4 chuyển sang trái đổi tất thành B gặp B bên trái B thay lại thành M vào trạng thái kết thúc q6 dừng 6) d(q0, 1) = (q5, B, R) d(q5, 0) = (q5, B, R) d(q5, 1) = (q5, B, R) d(q5, B) = (q6, B, ) Nếu trạng thái bắt đầu vòng lặp q0 gặp thay gặp 0, khối số bên trái xét hết, trường hợp kết thúc ii) nêu trên: TM vào trạng thái q5, xố phần cịn lại băng vào trạng thái kết thúc q6 dừng Chẳng hạn TM tính tốn phép trừ 2\1 (tức input 0010 ) sau : q00010 ⊢ B q1010 ⊢ B0q110 ⊢ B01q20 ⊢ B0q311 ⊢ Bq3011 ⊢ q3B011 ⊢ Bq0011 ⊢ BBq111 ⊢ BB1q21 ⊢ BB11q2 ⊢ BB1q41 ⊢ BBq41 ⊢ Bq4 ⊢ Bq60 Nếu cho TM tính tốn 1\2 (tức input 0100) : q00100 ⊢ Bq1100 ⊢ B1q200 ⊢ Bq3110 ⊢ q3B110 ⊢ Bq0110 ⊢ BBq510 ⊢ BBBq50 ⊢ BBBBq5 ⊢ BBBBq6 III CÁC KỸ THUẬT XÂY DỰNG MÁY TURING Việc xây dựng máy Turing cách viết (liệt kê) tất hàm chuyển băng nhập công việc đơn điệu Để mô tả đầy đủ cách xây dựng máy Turing, ta cần vài cơng cụ "cấp cao" Phần trình bày số công cụ tổng quát : Lưu trữ điều khiển (Storage in the finite control) Bộ điều khiển dùng để lưu trữ lượng hữu hạn thông tin Để làm thế, ta viết trạng thái cặp phần tử: thành phần để điều khiển, thành phần lưu giữ ký hiệu Chú ý rằng, cách mở rộng khái niệm không thay đổi định nghĩa máy Turing Thí dụ 3: Xét máy Turing M nhận vào ký hiệu chuỗi nhập (viết chữ {0, 1}), lưu trữ vào điều khiển kiểm tra ký hiệu khơng có xuất vị trí khác chuỗi hay không ? Ta xây dựng TM M (Q, {0, 1}, {0, 1, B}, , [q0, B], B, F}), tập trạng thái Q bao gồm trạng thái dạng cặp thành phần {q0, q1}  {0, 1, B}, tức Q gồm chứa trạng thái [q0, 0], [q0, 1], [q0, B], [q1, 0], [q1, 1] [q1, B] Trong cặp thành phần thứ 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  sau: 1)d([q0, B], 0) = ([q1, 0], 0, R) d([q0, B], 1) = ([q1, 1], 1, R) Bắt đầu từ trạng thái [q0, B], TM đọc lưu trữ ký hiệu băng vào thành phần thứ hai điều khiển 2)d([q1, 0], 1) = ([q1, 0], 1, R) d([q1, 1], 0) = ([q1, 1], 0, R) Nếu ký hiệu đọc không giống với ký hiệu lưu trữ tiếp tục di chuyển sang phải 3)d([q1, 0], B) = ([q1, B], 0, ) d([q1, 1], B) = ([q1, B], 0, ) M vào trạng thái kết thúc [q1, B] gặp Blank M vào trạng thái kết thúc tiến đến gặp ký hiệu B mà khơng có ký hiệu giống với ký hiệu lưu trữ điều khiển Vậy M tiến đến B trạng thái [q1, 0] [q1, 1] input chấp nhận Ngược lại, trạng thái [q1, 0] gặp trạng thái [q1, 1] gặp M dừng khơng chấp nhận chuỗi input khơng có hàm chuyển trạng thái để xác định bước chuyển Một cách tổng quát, ta xem điều khiển gồm k thành phần thành phần giữ trạng thái điều khiển thành phần (k-1 thành phần) dùng lưu giữ thông tin Nhiều rãnh băng (Multiple tracks) Một cách mở rộng khác, ta xem băng TM chia thành k thành phần, với k > hữu hạn Một ký hiệu băng xét gồm k ký hiệu, ký hiệu nằm rãnh Thí dụ : Thiết kế TM nhận vào số nguyên n (viết dạng nhị phân) kiểm tra xem có phải số nguyên tố hay không ? Ta dùng băng rãnh hình 7.2 với nguyên tắc sau : Số n dạng nhị phân đưa vào rãnh bao cặp dấu Ë $ Như ký hiệu phép ghi băng [Ë, B, B], [0, B, B], [1, B, B] [$, B, B] Các ký hiệu tương ứng với Ë, 0, 1, $ xem chúng ký hiệu nhập Ký hiệu Blank [B, B, B] Viết số dạng nhị phân rãnh (tức 10) 10 ... giải thuật này, mô RAM dùng máy Turing nhiều băng, theo Định lý 7.2, ta dùng TM với băng vô hạn hai chiều thành công song phức tạp VI MÁY TURING NHƯ LÀ MỘT BỘ LIỆT KÊ Ta xét máy Turing máy dùng... DẠNG CỦA MÁY TURING Sau đây, ta xét thêm số dạng khác máy Turing, chúng phức tạp tinh vi hơn, song thực tế chúng tương đương với mơ hình TM định nghĩa Máy Turing với băng vô hạn chiều Máy Turing. .. chấp nhận máy Turing dừng input Lớp ngôn ngữ gọi lớp ngôn ngữ đệ qui - recursive sets Máy Turing máy tính hàm số nguyên Máy Turing xem máy tính hàm số nguyên (đi từ tập số nguyên đến tập số nguyên)

Ngày đăng: 24/04/2022, 21:53

HÌNH ẢNH LIÊN QUAN

I. MÔ HÌNH MÁY TURING (TM) - BÁO cáo bài tập môn mật mã và độ PHỨC tạp THUẬT TOÁN tìm hiểu về máy turing và lý thuyết mã
I. MÔ HÌNH MÁY TURING (TM) (Trang 2)
Các phép chuyển hình thái của T MM trên input 001 1: - BÁO cáo bài tập môn mật mã và độ PHỨC tạp THUẬT TOÁN tìm hiểu về máy turing và lý thuyết mã
c phép chuyển hình thái của T MM trên input 001 1: (Trang 6)
Hình 2- TM với băng 3 rãnh - BÁO cáo bài tập môn mật mã và độ PHỨC tạp THUẬT TOÁN tìm hiểu về máy turing và lý thuyết mã
Hình 2 TM với băng 3 rãnh (Trang 11)
Sau đó, ta lại thêm các phép chuyển và trạng thái cần thiết để biến đổi từ hình thái Bi0m-i1q50n10n   i thành Bi+10m-i-11q10n10n   i là trạng thái bắt đầu  lại việc COPY, đồng thời kiểm tra i = m hay không (khi tất cả các 0 của 0m đã  bị xoá) - BÁO cáo bài tập môn mật mã và độ PHỨC tạp THUẬT TOÁN tìm hiểu về máy turing và lý thuyết mã
au đó, ta lại thêm các phép chuyển và trạng thái cần thiết để biến đổi từ hình thái Bi0m-i1q50n10n i thành Bi+10m-i-11q10n10n i là trạng thái bắt đầu  lại việc COPY, đồng thời kiểm tra i = m hay không (khi tất cả các 0 của 0m đã bị xoá) (Trang 16)
Một cách hình thức M1 (Q1, 1, 1, 1, q1, B, F1), trong đó:  - BÁO cáo bài tập môn mật mã và độ PHỨC tạp THUẬT TOÁN tìm hiểu về máy turing và lý thuyết mã
t cách hình thức M1 (Q1, 1, 1, 1, q1, B, F1), trong đó:  (Trang 17)
Trudy thống kê tần suất xuất hiện của 26 chữ cái như trong bảng sau: - BÁO cáo bài tập môn mật mã và độ PHỨC tạp THUẬT TOÁN tìm hiểu về máy turing và lý thuyết mã
rudy thống kê tần suất xuất hiện của 26 chữ cái như trong bảng sau: (Trang 38)

TỪ KHÓA LIÊN QUAN

w