Làm thế nào để một máy Turing không phá hủy hoạt động?


11

Sự khác biệt giữa máy Turing xác định và không xác định là gì? Các mô hình khác nhau nhưng tương đương của NDTM. Cụ thể, cụm từ được sử dụng thường xuyên này là "đoán không đặc biệt" là gì? Làm thế nào để sử dụng nó đúng, và ví dụ về việc sử dụng sai. Mục tiêu của tôi là tạo ra một câu hỏi tham khảo.


1
Bạn đang tìm kiếm gì ngoài những gì Wikipedia nói về chủ đề này?
David Richerby

1
Đóng góp của tôi về vấn đề này: một , hai .
Raphael

Tôi không chắc chắn tôi đồng ý với hình thức của nỗ lực này ở một câu hỏi tham khảo (khá rộng). Ngoài ra, tôi không rõ điều gì ngoài định nghĩa được mong đợi ở đây. (Nếu nhiều người đọc định nghĩa, sẽ có ít nhầm lẫn hơn.)
Raphael

Câu trả lời:


8

Dưới đây là một số cách nghĩ về chủ nghĩa không xác định (được sao chép từ câu trả lời này ).

Thần đèn. Bất cứ khi nào máy có một sự lựa chọn, một vị thần sẽ nói cho nó biết con đường nào để đi. Nếu đầu vào là ngôn ngữ, thì vị thần có thể điều khiển máy theo cách mà cuối cùng nó chấp nhận. Ngược lại, nếu đầu vào không có trong ngôn ngữ, bất cứ điều gì vị thần nói với máy để làm, nó sẽ luôn từ chối.

Gợi ý. Máy tính một hàm bivariate. Đầu vào đầu tiên là một từ và đầu vào thứ hai là một "gợi ý" x . Bất cứ khi nào máy phải đối mặt với sự lựa chọn không xác định, nó sẽ đưa ra biểu tượng gợi ý tiếp theo và vận hành tương ứng. Chúng tôi được hứa như sau:wx

  • Tính đầy đủ: nếu thì có một số gợi ý x khiến máy chấp nhận.wLx
  • Âm thanh: nếu thì máy sẽ từ chối trên tất cả các gợi ý.wL

Chấp nhận tính toán. Một tính toán chấp nhận là một tính toán hợp pháp (một trong đó máy luôn hoạt động theo một trong những lựa chọn mà nó phải đối mặt) kết thúc ở trạng thái chấp nhận. Một từ trong ngôn ngữ iff nó có một tính toán chấp nhận.

Chúng ta có thể chính thức hóa khái niệm chấp nhận tính toán bằng cách sử dụng các cấu hình . Cấu hình là một mô tả tức thời về toàn bộ trạng thái của máy. Chúng ta có thể xác định một mối quan hệ , nơi σ , σ ' là cấu hình, nắm giữ khi σ có thể dẫn đến σ ' trong một bước. Trong một máy xác định, có ít nhất một σ ' cho mỗi σ , trong khi ở một máy không xác định, có thể có nhiều hơn một. Một tính toán chấp nhận cho một từ w là một tính toán bắt đầu ở cấu hình ban đầu (băng chứa wσσ'σ,σ'σσ'σ'σww, các điểm đầu khi bắt đầu , trạng thái là trạng thái ban đầu) và kết thúc ở cấu hình chấp nhận.w

Một mô tả tương đương khác là về khả năng tiếp cận. Hãy xem xét một đồ thị có hướng, trong đó đỉnh là cấu hình và có một cạnh từ để σ ' nếu σ σ ' . Một tính toán chấp nhận là một đường dẫn từ cấu hình ban đầu đến cấu hình chấp nhận.σσ'σσ'


6

Sự khác biệt giữa các máy Turing xác định và không xác định nằm ở chức năng chuyển tiếp. Trong máy Turing xác định chức năng chuyển tiếp là một chức năng một phần:δ

δ:Q×BQ×B×{tôieft,rTôight}

có nghĩa là đã cho một trạng thái và một biểu tượng băng bạn có một hoặc không có trạng thái, biểu tượng đầu vào bên phải và hướng để di chuyển. Tuy nhiên, trong các máy Turing không xác định, nó trông giống như (ở đây là tập hợp các tập hợp con của một tập hợp):P

δ:Q×BP(Q×B×{tôieft,rTôight})

có nghĩa là bạn không có hoặc một vài trạng thái, biểu tượng băng để viết hoặc hướng để di chuyển đến. Điều này mang lại cho máy của bạn khả năng lựa chọn hiệu quả trong trạng thái như vậy và biểu tượng băng giữa các "nhánh" tính toán khác nhau có thể.

Trong thực tế, điều này có nghĩa là chúng ta có thể tính toán các đầu ra khác nhau cho cùng một đầu vào. Do đó, ngôn ngữ của máy Turing không xác định là tập hợp các từ mà chúng tôi tìm thấy một dẫn xuất trong các chuyển đổi được xác định. Một chạy cụ thể có thể không tìm thấy dẫn xuất như vậy nhưng điều quan trọng là nó có thể xảy ra. Vì vậy, khi bạn "đoán", bạn chỉ cần chọn một trong những nhánh tính toán có thể.

Ví dụ sử dụng

L= ={(M1,M2):tồn tại ít nhất một từ được cả hai TM chấp nhận cùng một lúc}

Trong trường hợp này, người ta chỉ có thể "đoán" một từ và thực hiện M 1M 2 trên w để kiểm tra xem nếu cả hai chấp nhận, họ chấp nhận cùng một lúc. Việc đoán có thể hoạt động bằng cách giới thiệu trạng thái q với các chuyển tiếp ghi trên một số băng 0 giây và / hoặc 1 giây và thoát ra bằng cách đọc bất kỳ ký hiệu nào cho máy chung.wM1M2wq01

Thành thật mà nói, tôi không bắt gặp bất kỳ ví dụ nào về việc sử dụng sai "đoán" này nhưng kiểm tra xem mỗi lần sử dụng cụm từ này có được thực hiện chính xác hay không, sẽ giảm để xác minh rằng bạn có thể xây dựng một automata với cấu trúc này mô phỏng việc đoán.


"Trong thực tế, điều này có nghĩa là chúng ta có thể tính toán các đầu ra khác nhau cho cùng một đầu vào." - điều này dường như cho thấy rằng chúng ta thực sự có thể xây dựng một cỗ máy không xác định. Điều đó là sai.
Raphael

@Raphael bạn có nghĩa là không thể xây dựng một máy không xác định? tại sao lại như vậy
Rodrigo

Bởi vì tính không xác định là một khái niệm toán học không có tương đương vật lý (theo như tôi biết).
Raphael

5

Chấp nhận chuỗi đầu vào trong NTM

hãy để tôi nói thêm về các máy Turing xác định và không xác định. Chúng ta hãy xem xét rằng đối với một số ngôn ngữ , chúng ta thiết kế một máy Turing xác định và không xác định tương ứng. Trên một số đầu vào x , đó là có thể chỉ có một con đường của cấu hình trong trường hợp của máy Turing xác định, tức là c 0c 1c k (trong đó mỗi c i đại diện cho một cấu hình tại i th bước). Bây giờ trên cơ sở cấu hình c k , chúng ta có thể dễ dàng chấp nhận và từ chối chuỗi đầu vào x .Lxc0c1ckciickx

Xem hình ảnh dưới đây để hiểu rõ hơn: nhập mô tả hình ảnh ở đây

Trong trường hợp NTM, chúng ta cần cẩn thận, vì có thể xảy ra rằng trên một số đường dẫn cấu hình, chúng ta rơi vào trạng thái từ chối. Vì vậy, đối với các máy Turing không xác định, chúng tôi nói rằng một chuỗi được chấp nhận nếu ít nhất một trong các đường dẫn cấu hình dẫn đến trạng thái chấp nhận . Chúng tôi sẽ từ chối chuỗi đầu vào nếu tất cả các đường dẫn cấu hình dẫn đến trạng thái từ chối.

Ví dụ, hãy xem xét cây cấu hình được cung cấp ở trên cho máy Turing không xác định khi nói một số chuỗi đầu vào , Trong trường hợp này, chúng tôi sẽ chấp nhận chuỗi đầu vào vì có một đường dẫn chấp nhận.x

Tham khảo : http://cs.umw.edu/~finlayson/group/fall14/cpsc326/notes/24-complexity2.html


4

Mở rộng với một mô-đun đoán.

Tôi đã tìm thấy mô hình này trong " Máy tính và Độ hấp dẫn " của MR Garey và DS Johnson.

NDTM có cấu trúc chính xác giống như DTM, ngoại trừ việc nó được tăng cường với một mô-đun đoán có đầu chỉ ghi riêng. Mô-đun đoán cung cấp phương tiện để viết ra "đoán" và chỉ được sử dụng cho mục đích này.

nhập mô tả hình ảnh ở đây

Làm thế nào nó hoạt động.

x1|x|1-1Γq0ΓΓ*

q0qYqNqY
MxΓ*M x

MxLMMxqY

STôiΓ*qN

. . .

NPΠ

Tất nhiên, việc sử dụng thuật ngữ "giải quyết" trong các định nghĩa không chính thức này nên được thực hiện bằng một hạt muối. Rõ ràng là một "thuật toán không xác định thời gian đa thức" về cơ bản là một thiết bị xác định để nắm bắt khái niệm xác minh thời gian đa thức, chứ không phải là một phương pháp thực tế để giải quyết các vấn đề quyết định. Thay vì chỉ có một tính toán có thể có trên một đầu vào nhất định, nó có nhiều tính toán khác nhau, một cho mỗi lần đoán có thể.

NP

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.