Tại sao vấn đề tạm dừng có thể quyết định đối với LBA?


13

Tôi đã đọc trên Wikipedia và một số văn bản khác

Vấn đề tạm dừng là [...] có thể quyết định đối với máy tự động giới hạn tuyến tính (LBA) [và] máy xác định có bộ nhớ hữu hạn.

Nhưng trước đó người ta viết rằng vấn đề tạm dừng là một vấn đề không thể giải quyết được và do đó TM không thể giải quyết nó! Vì LBA được định nghĩa là một loại TM, nên không nên giữ chúng?


9
Bạn có thể sử dụng TM để xác định xem LBA có dừng trên một đầu vào nhất định hay không bằng cách kiểm tra xem nó có dừng lại ở các bước O (2 ^ 2 ^ n) bằng mô phỏng hay không. Bất kỳ LBA nào làm việc lâu hơn thế đều bị mắc kẹt trong một vòng lặp vô hạn. Điều này không nói rằng các LBA có thể giải quyết vấn đề tạm dừng cho các TM nói chung!
Yonatan N

Máy tự động hữu hạn cũng là một loại TM.
Raphael

@Raphael Bạn không thể chỉnh sửa các câu hỏi như vậy. Bạn đã thay đổi ý nghĩa của câu hỏi, do đó làm cho câu trả lời hiện có của tôi không có chủ đề, trong khi câu trả lời khác nằm ngoài chủ đề và hiện đang ở chủ đề.
babou

@babou Tôi không thấy cách tôi thay đổi ý nghĩa của câu hỏi và tôi không thấy một trong hai câu hỏi không trả lời câu hỏi như thế nào (mặc dù chúng sử dụng các cách tiếp cận khác nhau).
Raphael

@Rap Câu hỏi ban đầu liên quan đến diễn ngôn logic hơn là về sự biện minh chính thức của các thuộc tính LBA và đó là những gì bạn đã xóa khỏi tiêu đề. Đối với tôi rõ ràng là, mặc dù có thể chứng minh rằng việc tạm dừng là có thể quyết định đối với các LBA, OP đang tự hỏi làm thế nào nó có thể tương thích với các tuyên bố khác liên quan đến việc đưa LBA vào TM và không thể giải quyết được việc tạm dừng cho TM (tôi có thể chỉnh sửa lại không?) . BTW không có ý định chê bai câu trả lời của Yuval. Tôi hy vọng anh ấy sẽ nhận được hầu hết các phiếu bầu, bởi vì đó là những gì độc giả đang theo đuổi (đó là một vấn đề sư phạm trong chính nó), ngay cả khi tôi sẽ không thưởng thức.
babou

Câu trả lời:


18

Vấn đề tạm dừng có thể giải quyết được đối với bất kỳ máy Turing nào sử dụng lượng không gian giới hạn đã biết, bằng cách khái quát hóa đối số được đưa ra bởi Yonatan N. Nếu lượng không gian là , kích thước bảng chữ cái là A và số lượng trạng thái là Q , sau đó số lượng cấu hình có thể là Q S Một S . Nếu máy dừng thì phải dừng trong các bước Q S A S , vì nếu không, theo nguyên tắc pigeonhole, nó có cấu hình lặp lại và do đó bị kẹt trong một vòng lặp vô hạn. Do đó, để xác định xem máy có dừng hay không, chúng tôi chỉ chạy nó cho Q S A SSMộtQQSMộtSQSMộtSQSMộtS các bước và xem liệu nó dừng lại trong khung thời gian đó.


Tại sao đối số đó làm việc cho các máy không xác định?
Raphael

1
Do định lý của Savitch.
Yuval Filmus

Tôi không biết (hoặc nhớ) định lý của Savitch ngoài tên (tôi chưa bao giờ làm phức tạp nhiều). Nhưng tôi không chắc nó có thể được sử dụng theo cách đó, vì nó áp dụng cho các thủ tục quyết định, tức là tạm dừng tính toán, trong khi tính quyết định của việc tạm dừng là chính xác những gì phải được chứng minh. Bằng chứng có thể được điều chỉnh để bao gồm các quyết định bán giới hạn trong không gian, nhưng có vẻ đơn giản hơn để chứng minh một cách riêng biệt rằng việc tạm dừng là có thể quyết định đối với TM giới hạn không gian, do đó biến các quyết định bán giới hạn không gian thành các quyết định đầy đủ. Điều này gần với những gì được Hopcroft-Ullman-79 thực hiện trong bổ đề 12-1 của họ, trước khi chứng minh định lý của Savitch.
babou

1
Tôi có thể là tôi hiểu nhầm điều này, nhưng là câu trả lời để chạy chương trình theo nghĩa đen, và xem liệu nó có bị kẹt trong một vòng lặp vô hạn hay không?
Mikayla Maki

1
@TrentonMaki Yea, chính xác là như vậy.
Yuval Filmus

10

Bạn có vẻ bị mắc kẹt với một vấn đề hợp lý.

Từ thực tế là có những cuốn sách mà bạn không thể đọc, bạn không thể suy luận rằng bạn không thể đọc bất kỳ cuốn sách nào.

Nói rằng vấn đề tạm dừng là không thể giải quyết được đối với Turing Machines (TM) chỉ có nghĩa là có những máy không có cách nào để xác định liệu chúng có dừng hay không bởi một quy trình thống nhất sẽ luôn dừng lại.

Tuy nhiên, có những máy Turing tạm dừng. Bây giờ, hãy lấy một tập hợp con của Turing Machines, được gọi là Nice Turing Machines (NTM), sao cho nó chỉ chứa các máy Turing dừng lại khi và chỉ khi băng chứa số ký hiệu chẵn. Nếu một máy M được biết là từ bộ đó, bạn có một cách đơn giản để quyết định xem M có dừng hay không: bạn kiểm tra xem số ký hiệu băng có chẵn hay không (chỉ cần hai ngón tay).

Nhưng quy trình đó sẽ không hoạt động đối với TM không có trong bộ NTM. (quá tệ!)

Vì vậy, vấn đề tạm dừng là có thể quyết định đối với NTM, nhưng không phải đối với TM nói chung, mặc dù bộ NTM được bao gồm trong bộ TM.

Điều này thực sự quan trọng, và đôi khi bị lãng quên, khi diễn giải kết quả không ổn định.

Nó cũng có thể là người ta có thể chứng minh rằng một tài sản quan trọng là không thể giải quyết được cho một gia đình rất lớn của các đối tượng toán học hoặc tính toán.

Điều này không có nghĩa là bạn nên ngừng tìm kiếm một giải pháp, mà chỉ là bạn sẽ không tìm thấy một giải pháp cho cả gia đình.

Những gì bạn có thể làm sau đó là xác định các thư mục con có liên quan để giải quyết vấn đề vẫn còn quan trọng và cố gắng cung cấp các thuật toán để quyết định xem tài sản có giữ cho các thành viên của gia đình nhỏ hơn đó hay không.

Thông thường, việc tạm dừng là không thể áp dụng đối với TM nói chung, nhưng nó có thể quyết định, thường rất đơn giản, đối với các gia đình automata lớn và hữu ích, tất cả có thể được coi là trường hợp đặc biệt của TM.


3
"Nói rằng vấn đề tạm dừng là không thể giải quyết được đối với Turing Machines (TM) chỉ có nghĩa là có những máy không có cách nào để xác định liệu chúng có dừng hay không bằng một thủ tục nào đó sẽ luôn dừng lại." - Không hoàn toàn đúng. Đối với bất kỳ TM nào, vấn đề tạm dừng là có thể quyết định. Đó là vấn đề quyết định chung không thể giải quyết được, tức là không có một thuật toán nào liên quan đến tất cả các TM. (Tôi nghĩ rằng điều này phải được thực hiện rất, rất rõ ràng cho người mới bắt đầu. Cf vấn đề pi .)
Raphael

Một ví dụ ngay lập tức hơn là tập hợp tất cả các TM luôn giữ. Của bạn thêm một số hương vị thêm bởi vì nó nằm ngoài hệ thống phân cấp bình thường.
Raphael

Đúng. Đáng lẽ tôi nên nói "thủ tục thống nhất", nhưng nó tiềm ẩn trong đầu tôi khi tôi nói "thủ tục sẽ luôn dừng lại" ngụ ý rằng tôi có thể sử dụng nó trên bất kỳ đầu vào nào, nghĩa là bất kỳ máy nào. Nhưng sự thật là một quy trình có thể hoạt động chính xác cho một máy và làm bất cứ điều gì cho các máy khác. Chà ... - - - - - - - - Về bình luận thứ hai, đó là những gì tôi đã viết lúc đầu. Sau đó tôi đã thay đổi suy nghĩ của mình vì tôi nghĩ ví dụ của mình sẽ dễ hiểu hơn bằng trực giác, vì việc lựa chọn máy móc không phụ thuộc trực tiếp vào tài sản được quyết định (mặc dù nó gần).
babou

2

Nói tóm lại, một LBA có số lượng cấu hình hữu hạn, giả sử D. Do đó, chúng ta có thể chạy cho các bước D và kết luận kết quả. Nếu nó chạy thêm các bước D, theo nguyên tắc pigeonhole, chúng ta có thể nói rằng, nó bị mắc kẹt trong một vòng lặp vô hạn.


1
Điều này thêm gì vào câu trả lời hiện có ? Điều này dường như chỉ lặp lại nó, ít chi tiết hơn. Mặc dù tôi đánh giá cao việc bạn đang cố gắng đóng góp, chúng tôi muốn bạn tránh lặp lại các câu trả lời hiện có và thay vào đó tập trung vào trả lời các câu hỏi chưa có câu trả lời hay.
DW
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.