Liệu một máy không bao giờ dừng lại luôn luôn lặp?


22

Một máy Turing trở về trạng thái đã gặp trước đó với đầu đọc / ghi của nó trên cùng một ô của cùng một băng chính xác sẽ bị bắt trong một vòng lặp. Một cái máy như vậy không dừng lại.

Ai đó có thể đưa ra một ví dụ về một máy không bao giờ dừng mà không lặp?


1
Chỉ cần một lưu ý: các băng cũng có thể khác nhau: một điều kiện đủ (nhưng không cần thiết) cho một vòng lặp vô tận khi TM đi vào các tế bào tương tự ở bước và ở bước trong tình trạng tương tự, đó là ở bước sự phần băng được người đứng đầu truy cập giữa bước và bước bằng với phần tương ứng ngay trước khi vào . t 2 > t 1 t 2 t 1 t 2 t 1t1t2>t1t2t1t2t1
Vor

4
Nếu một TM phải lặp để không dừng lại, bạn có thể dễ dàng giải quyết vấn đề tạm dừng cho các TM: nhớ tất cả các cấu hình trước đó và ở mỗi bước, hãy xem bạn có trong cấu hình bạn đã thấy không trước đây và nếu vậy, bạn biết điều đó không dừng lại (nếu không, vì chúng tôi cho rằng nó phải lặp đi lặp lại để chạy mãi mãi, nó sẽ không chạy mãi mãi, tức là nó sẽ dừng lại, trong trường hợp cuối cùng chúng ta sẽ Biết về nó).
Patrick87

Lấy cảm hứng từ câu trả lời @Niel de Beaudrap: một máy turing có thể tính toán chuỗi oeis.org/A014445 và dừng lại khi nhận được số lẻ. Nó có thể tính oeis.org/A016742 dưới dạng tổng chạy và tạm dừng khi số này là số lẻ. Nó có thể tính toán x^2nơi xchu kỳ giữa -100100chu kỳ được thực hiện với một modulo và tạm dừng khi kết quả là âm tính. Nó có thể tính toán x%2trong đó x nằm trong khoảng từ 0 đến vô cực dương và dừng lại khi kết quả bằng 2. Trong ngôn ngữ lắp ráp, các vòng lặp do / while / for đều đi xuống có một bước nhảy có điều kiện, nhưng nhảy đơn lẻ có nghĩa là rất ít.
Leonid

Giả định của câu hỏi chỉ đúng với các máy xác định.
Raphael

Câu trả lời:


15

Xem xét TM luôn di chuyển đầu băng sang phải và in biểu tượng băng không trống đặc biệt ở mỗi bước. Điều này có nghĩa là TM không bao giờ dừng lại, vì nó luôn di chuyển sang phải và không bao giờ lặp lại trạng thái, vì sau khi k bước, đầu băng nằm trên ô thứ k của máy. Do đó, mỗi cấu hình của máy khác với tất cả các cấu hình khác và máy luôn lặp.

Chúng tôi cũng có thể cho thấy sự tồn tại của những cỗ máy như vậy. Giả sử cho mâu thuẫn rằng mọi TM không bao giờ dừng lại cuối cùng lặp lại. Điều này có nghĩa là nếu bạn bắt đầu TM trên chuỗi , một trong những điều sau đây sẽ xảy ra:wMw

  1. M dừng lại, hoặc
  2. M lặp lại một cấu hình.

Trong trường hợp này, vấn đề tạm dừng sẽ có thể quyết định như sau. Cho TM và chuỗi , mô phỏng trên , tại mỗi điểm viết ra nội dung của băng, trạng thái hiện tại và vị trí băng hiện tại. Nếu cấu hình này là một bản sao, đầu ra "không dừng lại." Mặt khác, nếu dừng trên , đầu ra "dừng". Vì một trong những điều này được đảm bảo sẽ xảy ra cuối cùng, quá trình này luôn chấm dứt, vì vậy chúng tôi sẽ có một thuật toán cho vấn đề tạm dừng, mà chúng tôi biết là không tồn tại.w M w M wMwMwMw

Hi vọng điêu nay co ich!


Hah, đánh bại bạn để chỉnh sửa. Xem bình luận của tôi về câu hỏi. Tôi thích cách giải thích này tại sao không phải tất cả các TM không dừng lại phải lặp lại ... nó xây dựng trực giác.
Patrick87

@ Patrick87- Xin lỗi, tôi không nhận thấy bình luận. Tôi nghĩ về phần phụ lục trên đường đi làm của mình và ngồi xuống để nhập nó ngay khi tôi quay trở lại.
templatetypedef

Không vấn đề gì, anh bạn ... Tôi rất vui vì bạn đã thêm nó, vì tôi nghĩ đó là một cách tốt để giải thích nó. Tôi chỉ thêm nó dưới dạng một bình luận, và không phải là một câu trả lời, vì bạn đánh tôi với điều đó. : D
Patrick87

Trên thực tế, về vấn đề tạm dừng như vậy mà quay trở lại và thay đổi băng quảng cáo infinitum dường như là "vấn đề thực sự". Những người đi bộ trống mà bạn có thể phát hiện.
Raphael

12

Một máy Turing tính toán tất cả các vị trí thập phân của số thập phân (hoặc bất kỳ phân số không kết thúc nào khác, trong bất kỳ cơ sở nào) không bao giờ dừng lại và có thể được viết để ghi trên mỗi ô chỉ một số lần hữu hạn. Tất nhiên, thực tế là không có sự chuyển đổi sang trạng thái tạm dừng sẽ là một tặng cho chết, nhưng ít nhất đó là một ví dụ tự nhiên.

Một trường hợp thú vị hơn (nhưng cũng mơ hồ) sẽ là một máy Turing, tính toán lặp lại hàm Collatz trên đầu vào của nó, chấm dứt khi và chỉ khi nó có được số nguyên 1. Giả thuyết Collatz nổi tiếng

f(n)= ={3n+1,nếu n là số lẻ;n/2,nếu n thậm chí là,
là cho bất kỳ đầu vào, thủ tục này cuối cùng dừng lại. Nhưng nó không được biết liệu đây là trường hợp. Nó có thể thất bại trong hai cách khác nhau, về nguyên tắc: hoặc nó có thể tìm thấy một chuỗi các số nguyên mà chạy vòng quanh (tương ứng với sự tồn tại của một số nguyên n sao cho đối với một số số tác phẩm, trong đó n  1); hoặc có thể có các chuỗi số nguyên n , f (n) , f (f (n))fff(n)= =n, ... mà bất thường chuyển hướng đến vô tận. Nếu bất kỳ chuỗi nào thuộc loại thứ hai tồn tại, điều này có nghĩa là máy Turing mà tôi đã mô tả ở trên sẽ không lặp lại, vì băng sẽ liên tục được thay đổi thành số lớn hơn và lớn hơn.

Tôi thích chơi với các chữ số của pi. Một TM có thể dừng lại bất cứ khi nào bình phương của bất kỳ chữ số nào pibằng chính xác 7.
Leonid

@Leonid: Bạn chắc chắn có thể xem xét một máy Turing chấp nhận một số đầu vào và tạm dừng với điều kiện được xác định bởi đầu vào đó. Bạn thậm chí có thể làm cho đặc điểm kỹ thuật của các điều kiện theo đó nó tạm dừng một phần của đầu vào. Và bạn có thể cung cấp một đầu vào, như bạn mô tả, đặt ra một ràng buộc không bao giờ thỏa mãn.
Niel de Beaudrap

10

Xem xét bất kỳ máy Turing không dừng nào không bao giờ di chuyển đầu đọc / ghi sang trái.


Một số trong số họ vẫn lặp. </ nitpicking>
Raphael

5

Nếu điều này là đúng, thì vấn đề tạm dừng sẽ là quyết định. Bạn sẽ chỉ ghi lại từng cặp (băng, trạng thái) được nhìn thấy khi thực hiện máy Turing và máy sẽ tạm dừng (trong trường hợp đó rõ ràng là dừng) hoặc bạn thấy một cặp mà bạn đã thấy trước đó, trong trường hợp đó là máy không dừng lại.

Vì vấn đề tạm dừng là không thể giải quyết được, điều này không thể đúng. (Xem các ví dụ khác cho các ví dụ truy cập.)


Câu trả lời này thêm gì vào câu trả lời của templatetypedef ?
Raphael

Tôi đoán nó không. Xin lỗi, tôi bằng cách nào đó đã bỏ lỡ câu trả lời khi tôi viết của tôi.
RecursivelyIronic
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.