Mỗi số tự nhiên x có thể biểu diễn dưới dạng một xâu ký tự chính là biểu

Một phần của tài liệu bài giảng môn lý thuyết tính toán - ch2 thuật toán phổ dụng (Trang 26 - 29)

diễn x trong hệ cơ số nào đó thông qua hai hàm -đệ qui (thực chất là đệ qui

nguyên thủy): length(x) là độ dài xâu biểu diễn và digit(m,x) = giá trị chữ số tại

vị trí biểu diễn thứ m  length(x) và digit(m,x) = 0 nếu m > length(x).

- Mỗi xâu kí có thể mã hóa bởi một số tự nhiên. Xét xâu kí tự trên bộ chữ 

gồm k ký tự: a0, a1, …, ak-1 và mã hóa gd(ai) = i, 0  i k-1. Xét xâu w = w0w1…wl  gd(w) =    l i i i l w gd k 0 ) ( .

gd(w) còn gọi là số Goedel của w.

- Xét máy Turing M có bộ chữ  và tính hàm fM: *  *

và cho gd là mã

hóa xâu  *

. Cần xác định hàm -đệ qui f sao cho fM = gd-1(f(gd(w)). Các

hàm cần dùng :

(1) init(x) cho khởi trạng của M với xâu vào có mã số Goedel là x. (2) hinhtrangtiep(x) cho hình trạng của M tiếp ngay sau hình trạng x. (2) hinhtrangtiep(x) cho hình trạng của M tiếp ngay sau hình trạng x.

27

trạng x :

hinhtrang(x, 0) = x

hinhtrang(x, n+1) = hinhtrangtiep(hinhtrang(x))

(4) stop(x) = 1 nếu x là hình trạng kết thúc ; stop(x) = 0 nếu x không phải là hình trạng kết thúc. hình trạng kết thúc.

(5) xuat(x) cho giá trị tính được bởi M từ một hình trạng kết thúc x.

Hàm -đệ qui tương ứng với fM là :

f(x) = xuat(hinhtrang(init(x), sobuoc(x)))

trong đó sobuoc(x) = i stop(hinhtrang(init(x), i)).

Tân từ stop(hinhtrang(init(x), i)) là an toàn vì M tính toán hàm chắc chắn dừng.

Như vậy, f là T-tính được  f là -đệ qui.

Tương tự, chứng minh được f là -đệ qui  f là T-tính được.

28 2.3.Tính khó của bài toán 2.3.Tính khó của bài toán

2.3.1. Định lý nén

Hàm t-hạn chế ut của u bị hủy và xuất 1 nếu u(x) không dừng sau t(x) bước, nghĩa là ut tính bài toán t-giới nội dừng (t-BHP). Hàm ut còn giữ nguyên tính đầy đủ đối với lớp các hàm tính được với o(t(x)) bước và lớp đó là đóng với phép lấy phủ định. Vì vậy, ut không thuộc vào lớp đó, nghĩa là yêu cầu thời gian (t(x)). Chẳng hạn, 2x-BHP đòi hỏi một thời gian hàm mũ. Để đơn giản các lập luận, mỗi hàm thừa nhận với t-BHP trong tập con trù mật không thể tính được trong o(t(x)) bước.

Với một số input tầm thường, các chương trình BHT có kết quả bởi một thuật toán nhanh. Định lý nén sau đây cung cấp một hàm Pf(x) khác đối với một số hữu hạn các input tầm thường. Định lý này phát biểu đối với việc nén độ phức tạp của máy Turing nhiều đầu đọc-ghi. Nó có thể diễn đạt lại cho các máy khác.

Định nghĩa. Hàm f gọi là xây dựng được  f có thể tính được với V(x) = O(f(x)).

Ví dụ.

1) Hàm 2x là xây dựng được vì V(x) = O(xlogx) << 2x.

2) Hàm 2x + h(x) với h(x) nhận giá trị 0 hoặc 1 đòi hỏi U(x) dừng sau 3x bước và do đó không xây dựng được.

Định lý. Đối với mỗi hàm xây dựng được f có tồn tại hàm Pf sao cho với mọi hàm t hai kết quả sau là tương đương :

(1) Tồn tại thuật toán A mà A(x) tính Pf(x) với không gian t(x) đối với mọi input x. (2) t là hàm xây dựng được và f(x) = O(t(x)).

29 2.3.2. Định lý tăng tốc 2.3.2. Định lý tăng tốc

Định lý. Tồn tại tân từ tính được toàn phần P mà với mỗi thuật toán tính P(x) với thời gian t(x) luôn tồn tại thuật toán khác tính P(x) với thời gian O(log(t(x))).

Định lý trên chứng tỏ không tồn tại một thuật toán tối ưu tuyệt đối (theo thời gian tính toán) cho tân từ P.

2.3.3. Các định lý phân cấp

Độ phức tạp tính toán của một số tân từ P có thể không đặc trưng bởi hàm xây dựng được như trong định lý nén.

Định lý nén có thể tổng quát hóa bằng cách chuyển tương đương tính xây dựng được của hàm f.

Một loạt các tác giả khác : Blum, Robin, … đưa ra các kết quả khác nhau.

Định lý Rice. Mỗi tính chất không tầm thường của ngôn ngữ kể được đệ qui là không giải được, tức là không thể đoán nhận bởi một máy Turing.

Một phần của tài liệu bài giảng môn lý thuyết tính toán - ch2 thuật toán phổ dụng (Trang 26 - 29)

Tải bản đầy đủ (PDF)

(29 trang)