Trong trường hợp nào thuật toán ngụ ý thuật toán ?


16

Giả sử rằng, với mỗi , có một máy Turing quyết định ngôn ngữ trong thời gian . Có một thuật toán duy nhất quyết định trong thời gian không? (Ở đây, thuật ngữ được đo bằng , độ dài đầu vào.)ϵ>0MϵLO(na+ϵ)LO(na+o(1))o(1)n

Liệu nó có tạo ra sự khác biệt nếu các thuật toán có thể tính toán được hoặc tính toán hiệu quả, theo thuật ngữ của ?Mϵϵ

Động lực: trong nhiều bằng chứng, việc xây dựng các thuật toán thời gian hơn so với thuật toán giới hạn . Cụ thể, bạn cần ràng buộc thuật ngữ không đổi trong để vượt qua giới hạn . Sẽ thật tuyệt nếu có một số kết quả chung mà bạn có thể gọi để vượt qua giới hạn trực tiếp.O(na+ϵ)O(na+o(1))O(na+ϵ)O(na+o(1))

Câu trả lời:


10

Câu hỏi tương tự như các câu hỏi về sự tồn tại mang tính xây dựng của giới hạn của một chuỗi các đối tượng (mang tính xây dựng). Thông thường nếu bạn có thể xây dựng đồng đều các đối tượng đó (ở đây ) một cách hiệu quả thì bạn có thể hiển thị sự tồn tại của giới hạn một cách xây dựng.Mϵ

Ví dụ: giả sử rằng chúng ta có TM chạy trên và thời gian chạy của nó là (ở đây giới hạn cũng đồng nhất, ví dụ như một cái gì đó như sẽ không hoạt động). Sau đó, chúng ta có thể kết hợp trình giả lập thống nhất này với hàm để thu được máy chạy trong thời gian .N(k,x)M|k|1xO(na+|k|1)+O(|k|)O(2k.na+|k|1)(k,x)xN(x,x)O(na+o(1))

PS: hơi mơ hồ vì lồng các ký hiệu tiệm cận, tôi hiểu nó là . Ngoài ra, chúng ta cần không quá nhỏ, ví dụ ít nhất là .n a + o ( 1 ) a 1O(na+o(1))na+o(1)a1


8

Bạn có thể sử dụng thuật toán tìm kiếm phổ quát của Levin. Giả sử rằng bằng cách nào đó bạn có thể liệt kê một chuỗi các thuật toán quyết định , mỗi thuật toán chạy trong thời gian . Thuật toán của Levin chạy trong thời gian với mọi , trong đó là hằng số phụ thuộc vào . Vậy với mọi , Cho , chọn và đểAkLCkna+1/kT(n)Dkna+1/kkDkCkkε>0k=2/εN=D 2 / ε knNτ(n)ετ(n)0nmột+τ(n)=nmột+o(1)

τ(n)logT(n)lognalogDk+(a+1/k)lognlogna=logDklogn+1k.
ϵ>0k=2/ϵN=Dk2/ϵ. Sau đó, cho , . Do đó và chúng tôi nhận được rằng thuật toán của Levin chạy đúng lúc .nNτ(n)ϵτ(n)0na+τ(n)=na+o(1)

Nếu tôi hiểu thuật toán của Levin, điều này chỉ áp dụng cho các thuật toán tìm kiếm. Thuật toán này sẽ hoạt động để đảo ngược hàm , trong đó có thể được tính trong thời gian . f O ( n o ( a ) )ffO(no(a))
David Harris

Tôi không đề xuất sử dụng thuật toán của chính Levin, chỉ là ý tưởng chạy song song tất cả các thuật toán bằng cách sử dụng khớp nối, theo cách mà mỗi một thuật toán bị làm chậm chỉ bởi một yếu tố nhân. Ak
Yuval Filmus

@ Yuval, khi bạn phù hợp với tất cả các thuật toán, làm thế nào để bạn quyết định chấp nhận câu trả lời nào? Trong một vấn đề tìm kiếm, bạn có thể kiểm tra từng đầu ra giả định, nhưng nói chung điều này là không thể.
David Harris

Tôi chấp nhận câu trả lời đầu tiên xuất hiện. Chúng tôi đang cho rằng các thuật toán quyết định một cách chính xác . LAkL
Yuval Filmus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.