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

CÁC KỸ THUẬT XÂY DỰNG MÁY TURING

36 1,3K 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 508 KB

Nội dung

 Máy Turing MT gồm một bộ điều khiển với tập hữu hạn thạng thái Q và một đầu đọc/ghi R/W, chuyển động trên một băng vô hạn cả về hai phía.. CƠ SỞ LÝ THUYẾT Mục tiêu của mục này là nhằm

Trang 1

CÁC KỸ THUẬT XÂY DỰNG MÁY TURING

QUẢNG BÌNH, THÁNG 12 NĂM 2012

BẢO VỆ ĐỀ TÀI MÔN HỌC LÝ THUYẾT TÍNH TOÁN

Trang 2

MỞ ĐẦU

giao đề thực hiện đề tài : Các kỹ Thuật Xây Dựng Máy Turing Nhóm xin trình bày như sau :

Trang 3

NỘI DUNG CHÍNH CỦA ĐỀ TÀI

PHẦN I : CƠ SỞ LÝ THUYẾT

PHẦN II : BÀI TẬP

Trang 4

PHÂN CÔNG VÀ CÁCH THỰC HIỆN

Tất cả các thành viên trong nhóm đều thực hiện việc nghiên cứu lý thuyết của môn học lý thuyết tính toán

Làm việc theo cả nhóm cùng trao đổi và đưa ra các phương án giải quyết bài toán.

Trang 5

CƠ SỞ LÝ THUYẾT

I.Mô hình máy Turing.

 Máy Turing là mô hình toán học cho máy tính tổng quát, là nền tảng của quá trình xử lý của máy tính hiện đại.

 Máy Turing MT gồm một bộ điều khiển với tập hữu hạn thạng thái Q và một đầu đọc/ghi (R/W), chuyển động trên một băng vô hạn cả về hai phía Băng được chia thành từng ô, mỗi ô chứa một ký hiệu thuộc một bảng

ký hiệu hữu hạn , bao gồm cả ký hiệu trắng B (Blank).

 Ví dụ một mô tả hoạt động của máy Turing như hình 1.

Trang 7

 B: ký hiệu thuộc , ký hiệu trắng (Blank) trên băng.

 ∑: tập các ký tự đầu vào và là tập con của , B  .

 : hàm chuyển: Q    Q    {L, R, L, R, }

 q0  Q là trạng thái bắt đầu

 F  Q là tập các trạng thái kết thúc.

Trang 8

CƠ SỞ LÝ THUYẾT

II.BIỂU DIỄN MÁY TURING

 Máy Turing có thể được mô tả theo ba cách: Máy Turing có thể

 Các mô tả hiện trạng

 Bảng chuyển trạng

 Biểu đồ (đồ thị) chuyển trạng.

Trang 9

CƠ SỞ LÝ THUYẾT

 Mục tiêu của mục này là nhằm đưa ra khả năng phán đoán làm thế nào mà một máy Turing có thể được dùng

để tính toán theo một cách thức không giống như loại máy tính thông thường

 Máy Turing đúng ra có sức mạnh như một máy tính thông thường.

 Đặc biệt là chúng ta sẽ học đựợc máy Turing có thể thực hiện phân loại các sự tính toán dựa trên những máy Turing khác

 Khả năng xem xét cả hai loại máy Turing và các chương trình máy tính khác là những gì chúng ta có thể chứng minh cho các bài toán không thể giải quyết được

Trang 10

CƠ SỞ LÝ THUYẾT

Để xây dựng một máy Turing ta có thể thực hiện theo sự hướng dẫn dưới đây:

– Mục tiêu của việc đọc ký hiệu của đầu R/W là

cần biết xem “cái gì” máy Turing cần thực hiện ở bước tiếp theo Máy phải ghi lại những ký hiệu

đã đọc qua.

– Số các trạng thái phải là cực tiểu Điều này thực

hiện được bằng cách chỉ thay đổi trạng thái khi

có sự thay đổi ký tự cần ghi vào băng hoặc khi

có sự thay đổi hướng chuyển dịch của đầu R/W.

Trang 11

+ Thành phần lưu giữ điều khiển

+ k-1 thành phần còn lại lưu giữ trạng thái

Trang 12

CƠ SỞ LÝ THUYẾT

Một máy Turing được xem như có bộ điều khiển cho phép lưu trữ nhiều trạng thái trên đầu đọc và nhiều

rãnh trên băng

Trang 13

CƠ SỞ LÝ THUYẾT

Ví dụ : Xét máy Turing M nhận vào ký hiệu đầu tiên trên chuỗi nhập (viết trên bộ chữ cái {L, R, 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 có xuất hiện ở vị trí nào khác trên chuỗi nữa hay không ?Chúng ta sẽ thiết

kế một máy Turing

Ta xây dựng TM M (Q, {L, R, 0, 1}, {L, R, 0, 1, B}, , [qq0, B], B, F}) với

với hàm chuyển hàm chuyển  như sau:

1) ([qq0, B], 0) = ([qq1, 0], 0, R)

([qq0, B], 1) = ([qq1, 1], 1, R)

Bắt đầu từ trạng thái [qq0, 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.

Trang 14

CƠ SỞ LÝ THUYẾT

Nếu các ký hiệu được đọc tiếp theo không giống với

ký hiệu đang lưu trữ thì tiếp tục di chuyển sang phải.

Trang 15

CƠ SỞ LÝ THUYẾT

III.2 Nhiều rãnh trên băng (Multiple tracks)

 Với kỹ thuật này 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ụ : Thiết kế TM 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ố nguyên tố hay không ?

Trang 16

CƠ SỞ LÝ THUYẾT

TM với băng 3 rãnh

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

Trang 17

CƠ SỞ LÝ THUYẾT

III.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ư {L, R, ww  w  *}; {wcy }; {L, R, wcy  w, y  *}; {wcy , w  y} hoặc {L, R, wwR  w  *}; {wcy } hoặc các ngôn ngữ có độ dài các chuỗi con cần được so sánh, như {L, R, aibi  i  1} hoặc {L, R, aibjck  i = j hoặc j = k}

 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

Trang 18

CƠ SỞ LÝ THUYẾT

III.4 Chương trình con (Subroutines)

 Cũng giống như một chương trình máy tính hiện đại, máy Turing có thể đóng vai trò tương tự như bất kỳ một kiểu chương trình con nào trong ngôn ngữ lập trình bao gồm thủ tục đệ qui hoặc có tham số

 Ý tưởng chung là ta viết một phần chương trình của TM như là một chương trình con Nó sẽ được thiết kế có chứa một trạng thái khởi đầu và một trạng thái trở về, trạng thái trở về là trạng thái không có phép chuyển kế tiếp và nó sẽ đóng vai trò là trạng thái khởi đầu của một TM khác hoặc là một trạng thái nào đó trong một TM khác Nghĩa

là từ trạng thái trở về của TM này ta tiếp tục các phép chuyển của một

TM khác, sự kiện này có ý nghĩa như là gọi một chương trình con khác hoặc tiếp tục thực hiện chương trình cấp trên

 Lưu ý, các trạng thái của chương trình con phải phân biệt với chương trình cấp trên của nó

Trang 19

PHẦN II : BÀI TẬP

Trang 20

BÀI TẬP

Bài tập 8.3.1 Thiết kế lại máy Turing trong bài tập

8.2.2 để nắm những ưu điểm của các kỹ thuật xây dựng TM đã được thảo luận trong phần 8.3

a Thiết lập máy Turing đón nhận chuỗi w Với w là chuỗi với các ký tự 0 và 1 sao cho số ký tự 0 và số

ký tự 1 có trong chuỗi luôn luôn bằng nhau.

b Thiết lập máy Turing đón nhận chuỗi {L, R, anbncn │n

≥1}

c {L, R, WWR │w là chuỗi bất kỳ của 0 và 1}

Trang 21

BÀI TẬP

Bài tập 8.3.2 Một thao tác chung trong kỹ thuật xây dựng

máy Turing cần phải "Dịch qua" (Shifting over) Một cách lý tưởng chúng ta tạo ra một ô phụ ở vị trí đầu từ hiện tại, ở

đó chúng ta có thể chứa nhiều ký tự hơn Tuy nhiên chúng

ta không thể soạn thảo trên băng từ theo phương pháp

này Hơn nữa, chúng ta phải di chuyển nội dung của ô đến bên phải của vị trí đầu từ đang đứng hiện tại vào một ô bên phải và rồi tìm chúng theo cách lui lại từ vị trí hiện tại của đầu đọc, cách trình bày với hệ thống này định nghĩa : cho phép dùng một ký tự đặc biệt để đánh dấu vị trí mà đầu từ phải quay trở lại.

Trang 22

Bài tập 8.3.1

Câu a: Thiết lập máy Turing đón nhận chuỗi w Với w là chuỗi với các ký : Thiết lập máy Turing đón nhận chuỗi w Với w là chuỗi với các ký

tự 0 và 1 sao cho số ký tự 0 và số ký tự 1 có trong chuỗi luôn luôn bằng nhau

Trang 24

Bài tập 8.3.1

Câu b :

Thiết kế MT đoán nhận ngôn ngữ L = {L, R, anbncn  n  1}.

Biểu diễn MT dưới dạng cơ bản :

Trang 26

Bài tập 8.3.1

Vận dụng kỹ thuật xây dựng MT theo kỹ thuật chương

trình con (Subroutines):

Trước khi xây dựng MT, chúng ta hãy tìm thủ tục để xử

lý dãy aabbcc Sau khi xử lý xong, chúng ta muốn MT ở hiện trạng BBBBBBq7 Thủ tục đó được thực hiện như sau:

1. Từ trạng thái khởi đầu q1, đầu R/W đọc và thay a bằng

B, chuyển dịch sang phải, đồng thời chuyển sang q2

Trong trạng thái q2 nếu ký tự ở đầu R/W là a thì nó

chuyển sang phải

2. Đọc ký tự b trái nhất, đầu R/W đọc và thay b bằng B,

chuyển dịch sang phải, đồng thời trạng thái chuyển sang

q3 Trong trạng thái q3 nếu ký tự ở đầu R/W là b thì nó chuyển sang phải.

Trang 27

Bài tập 8.3.1

tự ở đầu R/W là c thì nó chuyển sang phải

đến khi gặp a trái nhất

bằng B

Dãy tính toán của MT để xử lý aabbcc là:

q1aabbcc Bqaabbcc Bq⊢xq⊢xq 2abbcc Baqabbcc Baq⊢xq⊢xq 2bbcc BaBqbbcc BaBq⊢xq⊢xq 3bcc BaBbqbcc BaBbq⊢xq⊢xq 3cc

Trang 29

Bài tập 8.3.1

Câu c:

Nếu xét dạng cơ bản của máy Turing thì rất phức tạp bởi vì đầu đọc sẽ dịch chuyển liên tục và đồng thời sẽ không nhớ được ký tự đang xét Cho nên trong trường hợp thiết kế máy Turing để đón nhận L trên thì ở đây nên dùng

cả hai kỹ thuật kết hợp :

- Nhiều rãnh trên băng.

- Đánh dấu ký hiệu.

w  (0,1)} với các thành phần như sau :

phần thứ hai của các trạng thái dùng để lưu trữ ký hiệu nhập)

= {L, R, [qB, d]  d = 0, 1} (ký hiệu nhập [qB, d] được xác định bởi d)

 = {L, R, [qX, d]  X = B hoặc  ; d = 0, 1 hoặc B}.

q 0 = [qq 1 , B]

B = [qB, B] được định nghĩa là B, ký hiệu Blank

Trang 32

Ví dụ : 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 [qq, 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 ngoài

Trang 33

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) ([qq1, A1, A2], A3) = ([qq1, 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

Trang 34

về đầu băng) để thực hiện một chức năng khác.

Trang 35

KẾT LUẬN

-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 TM khá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

-Việc áp dụng các kỹ thuật xây dựng máy Turing mang lại những hiệu quả nhất định trong việc thiết kế máy Turing để đoán nhận ngôn ngữ : Giảm trạng thái chuyển so với mô hình máy Turing cơ bản

-Ứng dụng của các kỹ thuật thiết kế máy Turing đã nêu ở trên có thể xây dựng các máy Turing khác như :

+ Máy Turing với băng vô hạn hai chiều

+ Máy Turing với nhiều băng vô hạn hai chiều

+ Máy Turing không đơn định

+ Máy Turing nhiều chiều

Ngày đăng: 23/03/2015, 13:28

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w