Ví dụ dưới đây chứng minh rằng thuật toán lấy O ( n log ( n ) ) để giải quyết vấn đề trên word-Ram có thể cần O ( n 2 log ( n ) 3 ) trên Máy Turing 1 băng (TM) thực thi chính xác tất cả các tính toán chỉ ra bởi Một . Tôi hiểu câu hỏi liên quan đến TM 1 băng và tôi chỉ sử dụng câu hỏi này trong câu trả lời của mình. Đây là một chỉnh sửa để giải quyết các nhận xét của Emil Jeřábek.MộtO ( n log( n ) )Ô ( n2đăng nhập( n )3)Một
Chúng tôi sẽ tìm thấy kết luận chung hơn sau đây . Để chứng minh rằng TM có thể giải quyết trong một vấn đề được giải quyết trong O ( T ( n ) ) bằng thuật toán A trên RAM, nó không đủ chạy A trên TM. Một thuật toán thông minh có thể cần thiết. Áp dụng tương tự nếu người ta muốn chứng minh một O ( n log ( n ) )O ( T( n )2)O ( T( n ) )MộtMộtO ( n log( n ) )trên không. Chứng minh sự tồn tại của một thuật toán thông minh bất cứ khi nào cần thiết dường như xa ngay lập tức, để nói rằng ít nhất. Điều này không phù hợp với các phản hồi khác mà về cơ bản chỉ đề xuất mô phỏng / thực thi trên TM tất cả các tính toán RAM (của thuật toán ) để thông báo độ phức tạp TM như O ( T ( n ) 2 ) hoặc O ( T ( n ) n log ( n ) ) .MộtO ( T( n )2)O ( T( n ) n đăng nhập( n ) )
Vấn đề: Chúng tôi được cung cấp một mảng / bảng với số nguyên n = 2 k mỗi số được lưu trên các bit log ( n ) . Chúng ta được cung cấp một mảng thứ hai d với các vị trí log ( n ) , mỗi vị trí ghi một số bit log ( n ) . Với mọi t ∈ [ 0 .. log ( n ) - 1 ] , chúng tôi xác định X t = 1 nếu tab [ i ]chuyển hướngn = 2 kđăng nhập( n )dđăng nhập( n )đăng nhập( n )t∈[0..log(n)−1]Xt=1tab[i]MOD MOD d [ t ] ∀ i ∈ [ 0 .. n / 2 - 1 ] . Mặt khác, X t = 0 . Đầu ra ∑ log ( n ) - 1 t = 0 X t . Tôi xem xét đầu vào được đưa ra dưới dạng băng có n log ( n ) +d[t]=tab[n/2+i]d[t] ∀i∈[0..n/2−1]Xt=0∑log(n)−1t=0Xt chữ số nhị phân, để giải quyết các ý kiến của Emil Jeřábek.nlog(n)+log(n)log(n)
Thuật toán trên RAMA Một RAM có kích thước từ cần O ( n log ( n ) + log ( n ) 2 ) = O ( n log ( n ) ) để đọc dữ liệu đầu vào chuỗi nhị phân. Nhưng sau khi đọc dữ liệu, nó chỉ có thể hoạt động với các từ có kích thước log ( n ) . Thuật toán A tính toán bất kỳ X t nào trong O ( nw=log(n)O(nlog(n)+log(n)2)O(nlog(n))log(n)AXt bằng cách đi qua tất cả i ∈ [ 0 .. n / 2 - 1 ] và kiểm tra điều kiện. Vòng lặp chính của A làCHO t = 0 , 1 , 2 , ... log ( n ) - 1 : tính toán X t . Tổng độ phức tạp là O ( n log ( n ) ) (đọc dữ liệu) + O ( n log ( n ) )O(n)i ∈ [ 0 .. n / 2 - 1 ]Mộtt = 0 , 1 , 2 , ... đăng nhập( n ) - 1XtO ( n log( n ) )O ( n log( n ) )(thực hiện các phép tính), vì vậy có thể thực hiện tất cả trong O ( n log ( n ) ) trên RAM.MộtO ( n log( n ) )
Thuật toán trên TM 1 băng:Một Tôi cho rằng TM một băng cần thời gian cho một t cố định . Từ quan điểm của TM, xác định A t tương đương với việc kiểm tra sự bằng nhau của hai chuỗi nhị phân có độ dài O ( n log ( n ) ) . Chẳng hạn, tab thao tác MOD [ i ] MOD d [ t ] có thể tương đương với việc loại bỏ bit 0 của tabÔ ( n2đăng nhập( n )2)tMộttO ( n log( n ) )tab [i]d [t]0 . Trong các trường hợp như vậy, việc xác định A t tương đương với kiểm tra đẳng thức trên các chuỗi bit có độ dài n ( log ( n ) - 1 ) / 2 . Điều nổi tiếng là việc kiểm tra sự bằng nhau của hai chuỗi có độ dài m yêu cầu O ( m 2 ) trên TM 1 băng, nhưng tôi thực sự không thể tìm thấy tài liệu tham khảo ngay bây giờ. Tuy nhiên, tôi cung cấp một bằng chứng trong ps. Nếu TM thực hiệnvòng lặp chínhcủa A , thì nó phải tiêu tốn ít nhất O ( ( n log ntab [i]Mộttn ( nhật ký( n ) - 1 ) / 2mÔ ( m2)Một cho mỗi t = 0 , 1 , 2 , ... log ( n ) - 1 , kết thúc trong O ( n 2 log ( n ) 3 ) .O ( ( nhật ký nn )2)t = 0 , 1 , 2 , ... đăng nhập( n ) - 1Ô ( n2đăng nhập( n )3)
ps. Tôi chỉ ra rằng kiểm tra đẳng thức trên các chuỗi bit với bit không thể nhanh hơn kiểm tra hội chứng trên các chuỗi có m bit (hội chứng mờ được biết là mất ít nhất thời gian O ( m 2 ) ). Chúng tôi có thể sửa đổi bất kỳ thuật toán TM nào để kiểm tra đẳng thức để giải quyết palindrom. Giả sử TM kiểm tra đẳng thức bắt đầu bằng hai số nguyên: một ở bên trái của đầu, một ở bên phải (đây là hình thức nhập đơn giản nhất cho TM). Mỗi di chuyển trên các vị trí bên trái có thể được nhân đôi (phản ánh) trên các vị trí bên phải. Chúng tôi xây dựng một TM được nhân đôi: bất cứ khi nào TM ban đầu ở vị trí - x < 0 (bên trái), TM được nhân đôi ở vị trí xmmÔ ( m2)- x < 0x(Phía bên phải). Nếu một TM giải quyết kiểm tra đẳng thức trong ít hơn , TM nhân đôi được sửa đổi này sẽ giải quyết palindrom trong ít hơn O ( m 2 ) .Ô ( m2)Ô ( m2)
Ngoài ra, có một số thuật toán TM kiểm tra đẳng thức ngoài kia và tất cả chúng đều yêu cầu thời gian bậc hai vì chúng cần một số zigzagging, ví dụ, ví dụ Turing Machine Ví dụ 2 tại khóa học.cs.washington.edu / cferences / cse431 / 14sp / foues / lec3.pdf