Máy Turing không xác định dừng lại trên ít nhất một nhánh tính toán


7

Tôi đang xem cuốn sách giáo khoa của tôi ở đây từ Michael Sipser và anh ấy nói rằng một máy Turing không xác định là một người quyết định nếu tất cả các nhánh tính toán của nó dừng lại trên tất cả các đầu vào. Tôi nghĩ rằng tôi nhớ lại đã thấy ở đâu đó cái mà bạn gọi là máy Turing không xác định dừng lại trên ít nhất một nhánh cho tất cả các đầu vào, nhưng có thể lặp lại trên các máy khác. Có một cái tên cho một điều như vậy? Tôi sẽ thấy sau trong chương này trình xác minh từ , nhưng điều đó dường như không phù hợp ... Tôi nghĩ rằng điều đó đề cập đến một thuật toán.

Trình xác minh cho một ngôn ngữMột là một thuật toán V, Ở đâu

Một= ={w|V chấp nhận w,c cho một số chuỗi c}.
Chúng tôi chỉ đo thời gian của người xác minh theo độ dài của w, do đó, trình xác minh thời gian đa thức chạy trong thời gian đa thức theo độ dài củaw. Một ngôn ngữMộtđa thức có thể kiểm chứng nếu nó có một trình xác minh thời gian đa thức.

Có lẽ chỉ trong định nghĩa của ngôn ngữ được công nhận bởi một NTM? Một NTM chấp nhận một chuỗiwnếu tồn tại ít nhất một đường dẫn tính toán kết thúc ở trạng thái chấp nhận ... nhưng không nhất thiết điều này xảy ra cho tất cả các chuỗi đầu vào (nếu không thì L (NTM) = \ Sigma ^ *)
Vor 12/12/13

Tôi tin rằng bạn sẽ nói rằng máy "chấp nhận" ngôn ngữ.

Một TM không "chấp nhận" một ngôn ngữ, nó chấp nhận các chuỗi. Tập hợp các chuỗi được chấp nhận bởi một TM là ngôn ngữ của TM đó, ghi chú L (M). Bạn có thể nói rằng A TM chấp nhận biểu diễn chuỗi của ngôn ngữ.
Kent Munthe Caspersen

@KentMuntheCaspersen Không. Ngôn ngữ được máy Turing chấp nhận là tập hợp các chuỗi đầu vào mà nó đạt đến trạng thái chấp nhận. Ngoài ra, nếu máy dừng lại cho tất cả các chuỗi mà nó không chấp nhận, nó được cho là quyết định ngôn ngữ.
David Richerby

@DavidR Richby Không phải làm gì?
Kent Munthe Caspersen

Câu trả lời:


2

Ý tưởng là một TM xác định sẽ luôn trả lời Có / Không trong thời gian hữu hạn (nếu không thì toàn bộ ý tưởng không có ý nghĩa). Và để làm được điều đó, mô phỏng xác định của NTM không thể đi vào vùng đất lala trên một số nhánh, tức là mọi nhánh phải kết thúc bằng có / không ở độ sâu hữu hạn. Nó quyết định (cung cấp cho bạn một câu trả lời chắc chắn). Nếu không phải tất cả các nhánh đều dừng lại, nó có thể xác minh (nghĩa là, được cung cấp một từ trong ngôn ngữ, nó được đảm bảo để trả lời Có; nếu không, có lẽ nó sẽ không có, có lẽ nó lặp lại).


1
Chà, rõ ràng một NTM thực sự có thể có những nhánh sâu vô cùng chỉ nhờ vào việc cố gắng giải quyết một vấn đề không thể giải quyết được. Bạn có ý gì khi nói rằng nó không thể? Hay tôi đang hiểu lầm điều gì đó?
Mirrana

Một TM xác định sẽ không luôn luôn trả lời Có / Không trong thời gian hữu hạn, nó có thể lặp lại và do đó không bao giờ dừng lại. DTM mô phỏng NTM có thể lặp trên một trong các nhánh của NTM, nhưng với mô phỏng đầu tiên, các nhánh khác vẫn sẽ được mô phỏng mặc dù. Một trình xác minh không bao giờ có thể lặp trên bất kỳ đầu vào nào, vì đó là một người quyết định.
Kent Munthe Caspersen

3

Các chuỗi được chấp nhận bởi một NTM Mlà ngôn ngữ của M, lưu ýL(M)

Hãy để chúng tôi nói rằng Mcho bất kỳ đầu vào không được đảm bảo để dừng lại trên tất cả các chi nhánh. Sau đó, Mrõ ràng không thể là một người quyết định, và do đó chỉ là một người nhận biết. Mnhận ra ngôn ngữ của tất cả các chuỗi mà bất kỳ nhánh nào Mkết thúc ở trạng thái chấp nhận.

Mlà một trình nhận dạng, nó chỉ được đảm bảo để chấp nhận một chuỗi nếu chuỗi nằm trong L(M). Cho một chuỗi, không có trong L(M)đó, nó có thể từ chối chuỗi hoặc vòng lặp mãi mãi. Bất kỳ NTM nào cũng có thể được mô phỏng bằng DTM, nhưng nếu NTM chỉ nhận ra một ngôn ngữ L, DTM tương đương của nó cũng sẽ chỉ nhận ra L.

Nếu NTM tạm dừng trên tất cả các nhánh cho bất kỳ đầu vào nào thì đó là một người quyết định, thì DTM tương đương cũng sẽ làm như vậy và do đó cũng là một người quyết định.

Một xác minh không phải là điều bạn đang tìm kiếm. Trong cuốn sách Sipsers, Giới thiệu về Lý thuyết tính toán, trình xác minh được giới thiệu khi nói về độ phức tạp của các thuật toán và các lớp phức tạp, bởi vì bất kỳ ngôn ngữ nào Lđều nằm trong NP khi và chỉ khi nó có trình xác minh thời gian đa thức.

Một xác minh cho một ngôn ngữ Lsẽ mất như là đầu vào một chuỗi wtrong Lvà một giấy chứng nhận c(nghĩ về giấy chứng nhận như một giải pháp cho vấn đề w) và xác minh rằng giấy chứng nhận là trong thực tế, một giải pháp đúng, mà làm cho wlời nói dối trong L.

Thí dụ:

Đối với ngôn ngữ

L = { w | w is an integer for which the product of some of the digits equals 12000 }

Bạn có thể tạo một trình xác minh V, đưa một chuỗi wvào L, một chứng chỉ cvà xác minh đó wthực tế là Lsử dụng chứng chỉ c. ccó thể là một chuỗi nhị phân chỉ ra các số nguyên trong wđó tích của 12000.

Ví dụ: Vphải từ chối đầu vào 1923423343, 0010111011, bởi vì2*4*2*3*4*3 = 576 != 12000

Đối với nhiều vấn đề, chúng ta chỉ biết một thuật toán có thể giải quyết chúng chạy theo thời gian theo cấp số nhân của kích thước đầu vào. Đây là lý do tại sao các xác minh là thú vị, bởi vì nó thường là như vậy, rằng chúng tôi đã đưa ra một giải pháp nhanh chóng có thể xác định xem giải pháp đó là đúng hay sai.


"Số nguyên mà sản phẩm của một số chữ số tổng hợp thành 12000" nghĩa là gì?
David Richerby

1
Xin lỗi, mô tả đó rất mơ hồ, tôi đã thay đổi "tổng" thành "bằng". Điều này có nghĩa là L chứa tất cả các số nguyên được tạo bởi các chữ số d1d2 ... dn, trong đó tồn tại nhiều chữ số A trong các chữ số này, sao cho tích của tất cả các số trong A bằng 12000. Ví dụ w = 164245455 nằm trong L vì 4 * 4 * 5 * 5 * 5 * 6 = 12000. Nhưng w = 999999999 không phải ở L. Đây chỉ là một vấn đề quyết định tùy ý, được sử dụng để hiển thị những gì người xác minh làm và thường dễ xác minh giải pháp hơn tìm một.
Kent Munthe Caspersen
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.