Bạn có thể thực hiện đảo ngược tại chỗ một chuỗi trên máy vani vani kịp thời không


7

Với máy Turing vanilla, ý tôi là máy Turing có một băng (không có băng đầu vào hoặc đầu ra đặc biệt).

Vấn đề như sau: băng ban đầu trống, ngoài một chuỗi n 1cát 0s bị chấm dứt bởi một ký tự cuối chuỗi. Đầu băng bắt đầu ở đầu chuỗi. Mục tiêu là để băng chứa chuỗi gốc theo thứ tự ngược lại, được chấm dứt bởi một ký tự cuối chuỗi, với đầu băng quay trở lại đầu chuỗi khi máy Turing cuối cùng dừng lại.

Máy Turing có thể sử dụng một bảng chữ cái lớn như chúng ta muốn (miễn là nó chứa 0, 1và một ký tự kết thúc chuỗi) và có thể có nhiều trạng thái như chúng ta muốn. Có máy Turing cố định nào có thể hoàn thành nhiệm vụ này kịp thời khôngo(n2)?

Thật dễ dàng để làm điều này trong thời gian O(n2)chỉ sử dụng một vài trạng thái và biểu tượng. Có vẻ như trực giác rõ ràng rằng một cái gì đó ngăn cản chúng ta làm điều đó nhanh hơn một yếu tố không đổi nhanh hơn, nhưng tôi chưa bao giờ có thể chứng minh điều đó, và tôi thường lo lắng vào đêm khuya về các ứng dụng kỳ diệu của mã hóa mạng hoặc ma thuật voodoo mà bằng cách nào đó có được tăng tốc logarit ...


Để chứng minh Ω(n2)giới hạn dưới bạn có thể sử dụng các phương pháp giới hạn dưới của Độ phức tạp giao tiếp . Ví dụ, bạn có thể dễ dàng điều chỉnh bằng chứng rằng palindromes ({wwR}) đòi hỏi Ω(n2), cho trường hợp của bạn. Xem bài tập 13.2 của chương Độ phức tạp giao tiếp của Arora và Barak, "Độ phức tạp tính toán: Cách tiếp cận của người điều hành"
Vor

Gợi ý cho bài tập là không chính xác: hãy xem xét máy Turing chỉ sao chép n / 3 bit đầu tiên vào khu vực giữa, sau đó so sánh khu vực giữa với n / 3 bit cuối cùng. Máy này chỉ di chuyển từ vị trí n / 3 đến vị trí 2n / 3 một lần.
zeb

Tôi không nghĩ đó là sai: đưa ra một chuỗi w#nwR, |w|=n (có ba "vùng" có độ dài n / 3), nếu k đi qua # khu vực là đủ để quyết định nó, sau đó có một O(k)giao thức cho sự bình đẳng. Trong trường hợp của bạn, bạn nên kiểm tra độ phức tạp của giao tiếp trong việc đảo ngược chuỗi{0,1}n#n{0,1}n.
Vor

Câu trả lời:


10

Cách tiêu chuẩn để chứng minh những điều như thế này là chỉ ra rằng Θ(n) bit thông tin phải vượt qua ít nhất Θ(n) điểm.

Đó là, nếu bạn đảo ngược "tại chỗ", một phần ba bit đầu tiên phải vượt qua tất cả n/3 tế bào giữa và cuối cùng n/3tế bào. Kể từ khi đầu di chuyểnO(1) bit một khoảng cách nhiều nhất 1 mỗi bước, điều này đòi hỏi n2/9các bước. Nếu bản sao bị đảo ngược kết thúc ở một tập hợp các ô khác nhau, một đối số rất giống nhau sẽ đưa ra mộtΩ(n2) chặn dưới.

Phải mất một số công việc để làm cho ý tưởng trực quan này trở nên nghiêm ngặt, nhưng nó đã được thực hiện, mặc dù tôi không có đủ thời gian để xác định các giấy tờ mà các kết quả này xuất hiện. Nếu ai đó có thể chỉ ra một bài báo có liên quan, vui lòng chỉnh sửa câu trả lời này để làm như vậy .


Ah, tôi nghĩ rằng cuối cùng tôi đã hiểu làm thế nào để làm điều này một cách nghiêm ngặt. Về cơ bản, bạn chỉ cần chỉ ra rằng số lần người đứng đầu bước từ vị trí k đến vị trí k + 1 ít nhất là tối thiểu (k, nk) chia cho logarit của số trạng thái.
zeb

3

Tôi cũng không thấy cách nào để làm điều đó.

Nó dường như để Θ(n2) thời gian chỉ để tạo một bản sao thứ hai của chuỗi (ví dụ: nếu đầu vào là nchuỗi -bit s, ở phần cuối của tính toán, chúng tôi muốn băng chứa chuỗi ss). Có lẽ điều này có thể được chính thức hóa bằng cách nào đó bằng cách sử dụng các phương pháp phức tạp trong giao tiếp; Tôi không biết.

Đây là một số trực giác cho lý do tại sao đảo ngược cảm thấy như nó cần Ω(n2)các bước. Vị trí bit màu0,1,,n/2của băng màu xanh lá cây; đó là "vùng xanh". Tương tự, hãy xử lý các vị trí bit3n/4,,nlà "vùng màu đỏ". Theo trực giác, chúng ta phải truyền đạtn/2bit thông tin từ vùng màu xanh lá cây đến vùng màu đỏ. Nếu máy tự động trạng thái hữu hạn của máy Turing có thể giữb bit thông tin, sau đó máy Turing sẽ phải truy cập vào vùng màu xanh lá cây n/(2b) lần, và sau đó nó sẽ phải đi ít nhất nvị trí để có được khu vực màu đỏ. Do đó, có cảm giác như máy Turing sẽ phải làm ít nhấtn/(2b) vượt qua (trong mỗi lần vượt qua nó đi vào vùng màu xanh lá cây, sau đó đi từ vùng màu xanh lá cây đến vùng màu đỏ) và mỗi lần đi sẽ đi n các bước chỉ dành cho chuyển động đầu, với tổng số ít nhất là n2/(2b)=Ω(n2)các bước. Đây không phải là một bằng chứng hoàn chỉnh, nhưng dường như nó mang lại một số ý nghĩa về lý do tại sao tôi không mong đợi có một cách nhanh hơn để làm điều đó.

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.