Làm thế nào để vẽ phần bù của Máy Turing?


7

Bây giờ tôi khá tự tin về cách tôi sẽ biến thứ gì đó thành Máy Turing. Bây giờ câu hỏi của tôi là làm thế nào để bạn chuyển đổi TM thành phần bổ sung của Turing Machine. Từ những gì tôi có thể nhớ trong Finite Automata, bổ sung cho nó, bạn sẽ biến trạng thái bắt đầu thành trạng thái kết thúc, ngoài ra nếu bạn có trạng thái kết thúc, bạn sẽ biến nó thành trạng thái bắt đầu..Bạn sẽ bổ sung cho Turing Machine như thế nào?

Ví dụ ở đây tôi có một TM đơn giản của một Palindrom và tôi muốn một Palindrom '

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



đặt một trên nó: pbmộtr¯
vzn

Nghiêm túc mà nói, bạn phải quay trở lại defn của TM và xác định những gì nó làm trong mỗi trường hợp "phát hiện ra palendrom" và "không phải là một palendrom" ... có lẽ nó đang viết một "trạng thái" cụ thể nào đó vào băng ... bạn phải mã hóa lại thành "lật" "trạng thái" đó ... dù sao tiêu đề của câu hỏi là sai lệch, nó không thể chỉ được "vẽ" mà cần một số cấu hình lại của bảng trạng thái đặc biệt là các trạng thái tiếp theo.
vzn

1
Biến trạng thái bắt đầu thành trạng thái kết thúc và ngược lại không phải là cách bạn bổ sung DFA. (DFA thậm chí không có "trạng thái kết thúc".) DFA được bổ sung bằng cách biến các trạng thái chấp nhận thành trạng thái không chấp nhận và ngược lại.
David Richerby

Câu trả lời:


11

Bạn không thể làm điều đó nói chung.

Nó sẽ làm cho phần bổ sung của ngôn ngữ của bạn trở nên có thể quyết định, giống như ngôn ngữ. Do đó, cả hai sẽ có thể quyết định bằng cách chạy song song cả hai máy.

Tất nhiên, điều này chỉ liên quan đến trường hợp các ngôn ngữ bán có thể bán được mà TM không phải lúc nào cũng dừng lại đối với các từ không có trong ngôn ngữ.

Nếu bạn có một ngôn ngữ có thể quyết định mà TM luôn dừng lại với có hoặc không, bạn chỉ cần trao đổi có và không.

Tuy nhiên, có một số biện pháp phòng ngừa cần thực hiện:

  • khả năng tương thích của cấu hình chấp nhận và không chấp nhận

    Tùy thuộc vào định nghĩa đã chọn của bạn về Máy Turing, việc chấp nhận và tạm dừng các cấu hình không chấp nhận có thể không tương thích, do đó có thể không thể thay thế cho nhau. Nếu nó được phép cho một trạng thái chấp nhận có các chuyển đổi có thể được sử dụng, thì làm cho nó trở thành trạng thái bình thường có thể làm cho việc tính toán được tiếp tục, thay vì dừng lại mà không chấp nhận. Do đó, một số biện pháp phòng ngừa khá đơn giản phải được thực hiện liên quan đến cách xác định và từ chối được xác định và cách trao đổi chúng.

  • máy không xác định

    Máy không xác định là chống quản lý. Khi người quản lý nói "không", điều đó có nghĩa là không và khi anh ta nói "có" thì có nghĩa là "có thể".

    Các máy không xác định làm ngược lại: khi chúng nói "có", nó có nghĩa là "có" và khi chúng dường như nói "không" (tạm dừng trong cấu hình không chấp nhận) có nghĩa là "có thể". Lý do có nghĩa là nó có thể đã trả lời có với một lựa chọn không xác định khác nhau của một số chuyển đổi. Trên thực tế, automata không xác định nên được cho là chính xác hơn không bao giờ đưa ra một câu trả lời tiêu cực. Nó thuận tiện với automata xác định, nhưng có nghĩa là không có gì với những người không xác định. Đó cũng là "có thể" khi họ không chấm dứt, vì hai lý do: (1) một lựa chọn chuyển tiếp khác có thể đã tạo ra sự chấp nhận và (2) bạn không thể khẳng định không chấp nhận vì tính toán có thể tiếp tục.

    Do đó, không dễ để bổ sung một ngôn ngữ được công nhận bởi một thiết bị không xác định hoặc không tạm dừng. Bạn không thể đơn giản trao đổi "có" và "không", vì bạn chỉ có "có" và "có thể". Bạn sẽ chỉ nhận được một cỗ máy quản lý chỉ trả lời "không" hoặc "có thể", không được Liên minh lý thuyết Automata công nhận. Automata phải chấp nhận bằng cách chấm dứt và trả lời "có" một cách rõ ràng nếu từ đó được công nhận là trong ngôn ngữ. Có thể trả lời không trong một số trường hợp chỉ là phần thưởng của các máy xác định, khi đủ tốt để tạm dừng.

    Vì vậy, trước tiên bạn phải chuyển đổi máy của bạn thành một máy xác định. Sau đó, bạn có thể trao đổi chấp nhận và từ chối các cấu hình (liên quan đến điểm trước đó ở trên), giả sử thêm rằng máy luôn dừng.

    Để có được phần bổ sung của một tập hợp thông thường, trước tiên, thuận tiện là sử dụng DFA nhận ra nó.

    Một máy Turing luôn có thể được biến thành một máy xác định, nhưng nó có thể không dừng lại, do đó để lại chỗ cho "có thể". Do đó, không phải lúc nào cũng có thể bổ sung một ngôn ngữ được công nhận bởi Máy Turing, như đã nêu ở trên. Nhưng có thể đối với một TM (xác định) luôn dừng lại với câu trả lời có / không.


Vì vậy, bạn đang nói rằng bạn không thể làm tất cả bằng cách bổ sung trên TM hoặc chỉ trong vấn đề này? ... Tôi biết có thể làm điều đó trong FA ...
Dana

nó không đơn giản như "trao đổi có và không" hay đúng hơn là che giấu một số chi tiết ...
vzn

1
@Dana: FA không mạnh bằng TM, vì vậy không có gì đáng ngạc nhiên khi chúng có các thuộc tính đóng khác.
Raphael

@vzn Tôi có trả lời những lo lắng của bạn không? (đã bao giờ thử trả lời SE trên điện thoại chưa?)
babou

+8? dòng này không có nhiều ý nghĩa. "Các máy không xác định làm ngược lại: khi chúng nói" có ", nó có nghĩa là" có "và khi chúng nói" không "thì có nghĩa là" có thể ". Đó cũng là" có thể "khi chúng giữ im lặng (vẫn suy nghĩ), nhưng đó là luôn luôn đúng. "
vzn
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.