Đầu vào của máy Turing có thể có chiều dài vô hạn không?


26

Xét chỉ bảng chữ cái , các chuỗi có thể được đưa ra là đầu vào cho các máy Turing là từ tập Σ * . Nhưng nó có ý nghĩa cho đầu vào là một chuỗi nhị phân vô hạn? Ví dụ: nếu máy Turing chấp nhận tất cả các chuỗi bắt đầu bằng 0, thì chuỗi nhị phân có số không vô hạn cũng thuộc về ngôn ngữ được máy Turing chấp nhận?Σ= ={0,1}Σ*

Câu trả lời:


21

Không có vấn đề gì khi chạy máy Turing trên băng được khởi tạo bằng một chuỗi vô hạn, mặc dù điều này thường không được xem xét. Chúng tôi vẫn cần máy để chấm dứt trong thời gian hữu hạn, mặc dù. Cũng có những khái niệm về tính toán thời gian vô hạn, có thể phù hợp ở đây.


4
Hoàn thành các tính toán trong thời gian hữu hạn trong khi đầu vào là vô hạn dường như là một thách thức khó khăn.
Cột

5
@Mast Không nhất thiết. Bạn không thể đủ khả năng để đọc toàn bộ đầu vào.
Yuval Filmus

1
@JulesMazur Từ khóa là siêu tính toán .
Yuval Filmus

3
@JulesMazur Bạn không nhất thiết cần bất kỳ sự siêu tính. Chương trình chỉ có thể tiếp tục ghi vào băng đầu ra và kết quả hội tụ thành một chuỗi vô hạn như trong Máy Turing Loại II.
jkabrg

1
Tôi nghĩ bạn sẽ gặp khó khăn nếu bạn cho phép các chuỗi infinte làm đầu vào. Cụ thể, tập hợp các đầu vào không còn có thể đếm được, phá vỡ một số bằng chứng.
Taemyr

17

Đó là một trong những tính năng của Máy Turing Loại 2 . Chúng được sử dụng, trong số những thứ khác, để phân tích khả năng tính toán của các hàm giữa các số thực. Thú vị hơn nữa, chúng được sử dụng để phân tích khả năng tính toán của các nhà khai thác như tích hợp.

Thực tế thú vị: Tích hợp số chính xác là tính toán.


5

Để trả lời câu hỏi "có hợp lý không", điều này thậm chí có thể hữu ích nếu bạn xem xét các máy Turing chạy trong thời gian hữu hạn.

Cụ thể, đây là một cách rất hữu ích để nghĩ về các máy Turing không có tiền tố . Đây là những máy có bộ đầu vào tạm dừng không có tiền tố; nghĩa là, không có đầu vào nào khiến máy dừng lại là tiền tố của máy khác. Đây là những công suất tương đương với các máy Turing thông thường, nhưng chỉ khi chúng ta cho phép máy Turing quyết định các đầu vào tạm dừng của chính nó: tức là. người dùng không biết đầu vào của máy sẽ dừng lại ở đâu (và đây là một thuộc tính không thể giải quyết được).

Một cách để thấy điều này là một máy Turing thông thường với băng đầu vào vô hạn một chiều với đầu băng không thể di chuyển trở lại. Người dùng lấp đầy băng bằng bit và chạy máy. Đây là theo định nghĩa một máy Turing không có tiền tố. Nếu máy tạm dừng, nó phải chỉ đọc một số bit hữu hạn và không có tiền tố nào của phần băng đó có thể là một chương trình, hoặc máy sẽ dừng lại ở đó.

Đây là một cách hay để nói về các phân phối xác suất có thể tính toán: người dùng lấp đầy băng với các bit ngẫu nhiên (nguồn ngẫu nhiên của máy) và máy phát ra một chuỗi bit ngẫu nhiên. Tập hợp tất cả các máy Turing như vậy tương ứng với tập hợp các bản phân phối có thể tính toán được (cụ thể là các bán phần có thể bán được thấp hơn).

Ưu điểm của đầu vào vô hạn là chúng ta không phải chỉ định máy sẽ làm gì nếu chúng ta cung cấp cho nó tiền tố của chương trình tạm dừng, tức là. máy cố gắng đọc vượt quá đầu vào mà chúng ta đã cho.


2

Ngay cả khi bạn không có một cuộn băng như vậy, bạn có thể sử dụng một máy Turing khác để sản xuất nó.

Một máy Turing có quyền truy cập vào băng dữ liệu trống nhưng vô hạn (hoặc một số nguồn cho biết "máy chỉ có một nhà máy băng nhỏ được tích hợp sẵn"). Vì vậy, nó có thể khởi tạo nó với một số mẫu dữ liệu có thể lập trình, và sau đó băng có thể được sử dụng làm đầu vào của một máy Turing khác.

Tất nhiên, nếu nội dung của bạn không có thuật toán nào có thể được xác định cách sản xuất nó, thì nội dung đó không thể được tạo bởi máy Turing.


6
Tôi không chắc làm thế nào điều này trả lời câu hỏi. Trong mọi trường hợp, không phải tất cả các chuỗi vô hạn đều có thể được tạo bởi các máy Turing, vì có vô số chuỗi vô hạn trên bất kỳ bảng chữ cái nào có ít nhất hai ký hiệu, trong khi đó chỉ có vô số máy Turing và nhiều đầu vào hữu hạn để ghép chúng.
David Richerby

2

Có một số trường hợp có thể xem xét và giảm đầu vào vô hạn thành hoạt động của máy Turing "tiêu chuẩn". Ví dụ, hãy xem xét một mẫu hữu hạn lặp lại vô hạn được chỉ định trên đầu vào. Một máy Turing có thể được tạo ra để theo dõi bao nhiêu mẫu vô hạn này đã được sửa đổi bởi các hành động hiện tại của đầu băng bằng cách sử dụng một lượng lưu trữ bộ nhớ / băng hữu hạn. Nói cách khác, nó "mô phỏng tương đương" một mẫu kích thước vô hạn trên băng.

Một trường hợp khác trong đó "đầu vào vô hạn" đã được xem xét là phân tích tính tương đương / tính đầy đủ của Turing của automata di động. trong một bằng chứng phức tạp, Cook đã đưa ra một khái niệm bây giờ được một số người gọi là "tương đương Turing yếu" trong việc chuyển đổi các hoạt động quy tắc CA 110 thành các hoạt động của máy Turing bắt đầu trên một băng ban đầu được chỉ định vô hạn nhưng với (lặp lại) các mẫu có kích thước hữu hạn.


1
Các thuật ngữ "đầu vào vô hạn" và "mã hóa hữu hạn của một đối tượng vô hạn" rõ ràng là khác biệt và cơ bản (mọi ngôn ngữ thông thường vô hạn với DFA tối thiểu của nó là một ví dụ). Họ không nên nhầm lẫn ở đây.
Raphael

2
có DFA có thể được sử dụng cho mã hóa được mô tả. như đã phác thảo ra một băng có mã hóa hữu hạn của một chuỗi có độ dài vô hạn (thông qua việc lặp lại các mẫu hữu hạn) vừa có khả năng khác nhau / tương tự như một băng chỉ có các chuỗi hữu hạn.
vzn

1

Trong các ngôn ngữ chính thức, theo định nghĩa, một chuỗi là một chuỗi ký hiệu hữu hạn . Một máy Turing cổ điển có một băng vô hạn với chuỗi đầu vào hữu hạn. Như vậy, mặc dù không có giới hạn về thời gian đầu vào có thể là bao lâu, nhưng nó không thể là vô hạn.

Phải nói rằng, có nhiều máy thay thế hoạt động tương tự như TM nhưng với chuỗi đầu vào vô hạn.

Việc nó có ý nghĩa để có đầu vào có độ dài vô hạn hay không phụ thuộc vào mục đích. Nghiêm túc trong bối cảnh của Turing Machines, nó không có ý nghĩa gì (vì điều đó là không thể), nhưng trong bối cảnh của các máy giống Turing, nó có ý nghĩa và nó có nhiều ứng dụng.


4
Hoàn toàn có thể có chuỗi vô hạn. Thật vậy, có cả một nhánh của lý thuyết automata liên quan đến tình huống chính xác này. Và, do thay đổi duy nhất cần thiết cho định nghĩa về máy Turing để cho phép chúng xử lý các đầu vào vô hạn là xóa điều kiện nói rằng đầu vào phải hữu hạn, tôi không đồng ý rằng nói "không có ý nghĩa" khi nói về máy Turing và chuỗi vô hạn.
David Richerby

1
@DavidR Richby: chúng tôi dường như đồng ý. Vui lòng cho tôi biết làm thế nào tôi có thể viết lại đoạn cuối để làm rõ hơn rằng nó chỉ đúng trong bối cảnh của các máy Turing nguyên bản, cổ điển, không bị biến đổi (trong đó các đầu vào theo định nghĩa là hữu hạn), rằng nó không có ý nghĩa gì nói về đầu vào chiều dài vô hạn. Ngay sau khi chúng tôi xóa điều kiện, nó không còn là một TM nữa, mà là (cái mà tôi gọi là) Máy giống như Turing.
mọi người

1
Tôi không đồng ý rằng thiết bị dừng là một máy Turing chỉ vì bạn khởi động nó với những thứ vô hạn trên băng. Máy vẫn là máy tương tự; bạn chỉ cần thay đổi các điều kiện ban đầu. Các định nghĩa về cách máy Turing liên quan đến langau của chuỗi hữu hạn (ví dụ: langau có thể quyết định hoặc bán có thể quyết định) về mặt đầu vào hữu hạn nhưng điều đó không có nghĩa là máy yêu cầu nó. Tương tự, máy tính của bạn sẽ không ngừng là máy tính nếu bạn đặt một đống CDROM vô hạn bên cạnh nó.
David Richerby

1
@DavidR Richby Vâng, về mặt kỹ thuật, máy Turing là máy có đầu vào hữu hạn. Nếu bạn thay đổi hạn chế này trong định nghĩa, bạn xác định một cái gì đó khác. Ý tưởng đằng sau điện toán vẫn giống nhau, theo một nghĩa nào đó, nhưng làm thế nào để bạn thể hiện sự phức tạp bây giờ? Những vấn đề rất khác nhau.
Raphael
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.