Là không xác định trong một máy Turing không xác định khác với máy tự động hữu hạn và tự động đẩy xuống?


9

Đặt chuỗi đầu vào là . Sau đó, nếu một NFA hiện đang trong trạng thái (và có đọc đầu vào tối đa bảng chữ cái ) sau đó trước khi đọc ký hiệu đầu vào hôm sau chia tách NFA thành hai NFA, một con người trong trạng thái và hạnh phúc khác trong , nếu có một sự chuyển đổi của loại . Nếu có một chu kỳ của loại , trong đó là một số trạng thái của NFA, sau đó không có ích gì khi nhớ một NFA khác ở trạng tháiw1w2...wnrwirsrϵsrϵsϵq1....ϵqkϵrqir đến khi đầu vào được đọc cho đến khi bảng chữ cái . Nếu một thiết bị PDA (không xác định) ở trạng thái r (và đầu vào được đọc cho đến w i ) và tồn tại một chu kỳ r ε , ε một s ε , ε một q 1 . . . . ε , ε một q k ε , ε một r (nơi chuyển tiếp ε , ε một phương tiện thatnothing sau wwi

rwirϵ,ϵasϵ,ϵaq1....ϵ,ϵaqkϵ,ϵarϵ,ϵa được đọc từ đầu vào, không có gì được bật hoặc đọc từ ngăn xếp và bảng chữ cáiađược đẩy lên ngăn xếp) sau đó trước khi đọc bảng chữ cái đầu vào tiếp theo w i + 1 sẽ có vô số PDA ở các trạng tháir,s, q 1 ,. . . q k vì không giống như NFA mặc dù các trạng thái là nội dung ngăn xếp hữu hạn có thể khác nhau (khả năng vô hạn), nếu tôi không sai.wiawi+1r,s,q1,...qk

Như với NFA và PDA, sức mạnh của tính không xác định đến từ chuyển đổi. Vì vậy, tôi cho rằng máy Turing không xác định cũng nhận được nó không định mệnh từ ε chuyển như NFA và PDA (giống như PDA). Tôi biết rằng một máy Turing xác định có thể mô phỏng một máy không xác định (tôi biết bằng chứng sử dụng tìm kiếm đầu tiên). Nhưng bây giờ tôi nghi ngờ làm thế nào là có thể. Bởi vì nếu một chu kỳ của loại trong PDA ở trên, tồn tại trong sơ đồ trạng thái của máy Turing không xác định thì trước khi đọc ký hiệu tiếp theo w i + 1ϵϵwi+1máy Turing xác định ngay cả khi mô phỏng cấu hình trong một số nhánh của máy Turing không xác định (trong khi bfs) sẽ phải theo dõi máy Turing vô hạn (một lần nữa các trạng thái là hữu hạn nhưng các ký hiệu trên băng có khả năng vô hạn).
Vậy làm thế nào chính xác là không xác định trong trường hợp máy Turing? Có phải tôi đang hiểu nhầm một cái gì đó tầm thường? Các máy Turing không xác định có sử dụng chuyển tiếp không?ϵ


Tôi xin lỗi vì những nghi ngờ tầm thường của tôi. Nếu bất cứ điều gì không chính xác, tôi có thể cập nhật câu hỏi của tôi.


2
liên quan đến câu hỏi tiêu đề, không có nhiều khác biệt trong định nghĩa chính thức. đối với sức mạnh mới nổi, vâng, nó có nhiều ý nghĩa khác nhau trong mỗi mô hình máy. Đối với phần còn lại của câu hỏi, khó phân tích. :(
vzn

1
Bạn đã kiểm tra Wikipedia chưa? vi.wikipedia.org/wiki/Non-deterministic_Turing_machine
Yuval Filmus

@YuvalFilmus vâng tôi có. Định nghĩa của chức năng chuyển đổi bao gồm tập hợp sức mạnh mà tôi hiểu. Nhưng điều về chuyển trong các máy Turing vẫn chưa rõ ràng đối với tôi. epsilon
sashas

@vzn Mình cũng nghĩ vậy. Tôi thực sự xin lỗi. Tôi rất tệ trong việc đưa ra những nghi ngờ của mình. Nhưng tôi có thể cải thiện nếu bạn đưa ra gợi ý.
sashas

Câu trả lời:


8

Không xác định là khái niệm giống nhau trong tất cả các bối cảnh - máy được cho phép một số tùy chọn để tiến hành tại bất kỳ điểm nào. Tuy nhiên, ngữ nghĩa hơi khác một chút vì các DFA / NFA và PDA luôn xác định tổng số chức năng, trong khi các máy Turing (xác định hoặc không xác định) nói chung xác định các chức năng một phần .

Hàm một phần là một hàm chỉ được xác định trên một phần của miền. Nếu không được định nghĩa trên x sau đó chúng ta viết f ( x ) = . (Vì vậy f thực sự là một hàm tổng, nhưng có một phần tử đặc biệt trong phạm vi biểu thị rằng đầu ra không xác định.) Máy Turing xác định M xác định hàm một phần như sau: nếu M dừng trên x thì M ( x ) là nội dung của băng khi M dừng trên x ; và nếu không, M ( x ) = fxf(x)=fMMxM(x)MxM(x)=.

Trình quyết định máy Turing xác định có hai loại trạng thái tạm dừng, chấp nhận và từ chối và xác định hàm một phần như sau: nếu dừng trên x ở trạng thái chấp nhận, thì M ( x ) = 1 ; nếu nó dừng ở trạng thái từ chối, thì M ( x ) = 0 ; nếu nó không dừng lại, sau đó M ( x ) = . Nếu M luôn dừng thì chúng ta nói rằng nó chấp nhận ngôn ngữ L = { x : M ( xMxM(x)=1M(x)=0M(x)=M .L={x:M(x)=1}

Một máy Turing không xác định (luôn luôn là người quyết định) được phép "phân nhánh" (có một số tùy chọn có thể tại bất kỳ thời điểm nào) và có các ngữ nghĩa sau:

  • nếu trên đầu vào x , máy M dừng trên tất cả các nhánh, tạm dừng ở trạng thái chấp nhận cho ít nhất một nhánh.M(x)=1xM
  • nếu trên đầu vào x , máy M dừng trên tất cả các nhánh, luôn dừng ở trạng thái từ chối.M(x)=0xM
  • nếu trên đầu vào x tồn tại một chi nhánh mà M không ngừng.M(x)=xM

Với định nghĩa này, hy vọng rõ ràng làm thế nào để mô phỏng một máy Turing không xác định bằng cách sử dụng bộ xác định máy Turing xác định: bạn thử tất cả các nhánh, kiểm tra xem có bất kỳ trong số chúng dẫn đến trạng thái dừng chấp nhận hay không. Sau khi tất cả các chi nhánh đã tạm dừng, bạn có thể quyết định xem có nên chuyển sang trạng thái chấp nhận hay chuyển sang trạng thái từ chối. Nếu máy Turing không xác định không dừng trên một số nhánh, thì máy xác định cũng vậy.


Thế còn -moves? Chúng gây ra rắc rối ở chỗ máy tự động tương ứng có thể không bao giờ dừng lại. Đối với automata hữu hạn (NFA và PDA), chúng tôi âm thầm bỏ qua các tính toán không dừng lại. Lý do của chúng tôi để làm điều đó là các ngôn ngữ kết quả luôn có thể tính toán được, mặc dù thuật toán ngây thơ để mô phỏng chúng một cách xác định (mô phỏng tất cả các đường dẫn tính toán) không hoạt động tốt. Điều này không quá khó đối với NFA, có thể được chuyển đổi thành DFA. Tuy nhiên, các thiết bị PDA xác định yếu hơn rất nhiều so với các thiết bị không xác định. Tuy nhiên, bạn có thể chứng minh rằng mọi PDA là tương đương với một mà không có ε -transitions (mặc dù các bằng chứng có thể đi qua văn phạm tiếng bối cảnh miễn phí).ϵϵ

Bạn có thể mô phỏng -moves trong các máy Turing, nhưng bạn phải cẩn thận rằng không có vòng gây tính toán phi ngăn chặn. Tuy nhiên, trong một số trường hợp, chúng ta có thể sử dụng thủ thuật tương tự như trên. Ví dụ: giả sử rằng máy Turing của bạn bị giới hạn không gian: chúng tôi biết giới hạn trên của không gian mà nó sử dụng (tùy thuộc vào độ dài đầu vào). Trong trường hợp đó, mọi tính toán không dừng đều nhất thiết phải quay vòng (vì máy Turing có nhiều trạng thái, bao gồm cả nội dung băng), và vì vậy nếu chúng ta "bỏ qua" các tính toán không dừng như trên, mô hình tính toán kết quả vẫn có thể tính toán được. Tổng quát hơn, điều này hoạt động miễn là chúng tôi được đảm bảo rằng mọi chu kỳ tính toán không dừng lại. (Đây là trường hợp đối với NFA nhưng không phải cho các thiết bị PDA.)ϵ


Cảm ơn bạn. Tôi đã có một nghi ngờ cuối cùng. Trong một PDA có quá trình chuyển đổi , nếu PDA ở trạng thái r thì nó sẽ chỉ phân tách nếu b ( b là bảng chữ cái được đọc từ băng đầu vào, c là bảng chữ cái xuất hiện từ ngăn xếp và a được đẩy sang ngăn xếp ) là ε không phụ thuộc vào những gì mộtc là ( ε hoặc ngăn xếp chữ thường). Tôi có đúng không rb,casrbbcaϵacϵ
sashas

@sasha Thi hành "chia tách" bất cứ khi nào có nhiều hơn một lựa chọn để tiến hành.
Yuval Filmus

Làm thế nào để tôi đi về chứng minh rằng một PDA với chuyển tiếp có thể được chuyển đổi sang một mà không có họ? Tôi biết rằng tôi luôn có thể chứng minh ngôn ngữ được chấp nhận bởi bất kỳ PDA nào là có thể quyết định bằng cách chuyển đổi nó sang CFG của nó ở dạng Chomsky bình thường. Nhưng vẫn không thể chuyển đổi sang PDA mà không có chuyển đổi epsilon. Tôi thực sự sẽ đánh giá cao bất kỳ gợi ý. ϵ
sashas

1
@sasha Bạn có thể chuyển đổi một ngữ pháp ngữ cảnh miễn phí ở dạng bình thường Greibach đến một PDA với không chuyển tiếp (ít nhất là theo Wikipedia). ϵ
Yuval Filmus

1
@YuvalFilmus, một cấu trúc không xác định từ GNF là gốc cơ bản đệ quy: Đối với một sản xuất , nếu A là ở phía trên cùng của ngăn xếp, trên đầu vào một thay thế Một bằng B 1 ... B n trên ngăn xếp. Không ε trong tầm nhìn. Vẫn nonteterministic (có thể có nhiều Một -productions mà bắt đầu một ... ). AaB1B2BnAaAB1BnϵAa
vonbrand
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.