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.