Có bất kỳ ngôn ngữ quyết định Turing không thể đếm được?


17

Có rất nhiều (và ý tôi là nhiều) ngôn ngữ có thể đếm được là Turing-decidable. Bất kỳ ngôn ngữ không thể đếm được có thể là Turing có thể quyết định?


1
Nếu ngôn ngữ của tất cả các từ có thể là không thể đếm được (đòi hỏi một bảng chữ cái không đếm được) thì nó ngay lập tức cung cấp một ví dụ về một ngôn ngữ không thể đếm được Turing (tầm thường). Nếu nó không phải (nghĩa là có thể đếm được), thì ngôn ngữ con cũng không thể đếm được.
Marc van Leeuwen

Câu trả lời:


24

Mỗi ngôn ngữ trong một bảng chữ cái hữu hạn (hoặc thậm chí có thể đếm được) là có thể đếm được. Giả sử bảng chữ cái máy Turing của bạn là hữu hạn, bất kỳ ngôn ngữ nào nó có thể chấp nhận là có thể đếm được.


Thế còn tập hợp tất cả các ngôn ngữ có số chuỗi hữu hạn trên bảng chữ cái vô hạn thì sao? Là nó có thể đếm được hoặc không đếm được? Ngoài ra, tôi không thể nghĩ ra bằng chứng cho "ngôn ngữ trên bảng chữ cái vô hạn là có thể đếm được".
anir

Bộ của bạn cũng có thể đếm được.
Yuval Filmus

Điều này chứng tỏ "tập hợp các ngôn ngữ trên bảng chữ cái hữu hạn là có thể đếm được". Tôi cảm thấy chúng ta có thể chứng minh "tập hợp các ngôn ngữ chứa các chuỗi vô hạn trên bảng chữ cái hữu hạn là có thể đếm được" theo cách tiếp cận bằng chứng tương tự do bảng chữ cái hữu hạn. Nhưng tôi không thể tưởng tượng làm thế nào phương pháp này có thể được điều chỉnh cho bảng chữ cái vô hạn.
anir

Bạn không thể chứng minh điều đó vì nó sai. Số lượng các chuỗi nhị phân vô hạn đã không thể đếm được.
Yuval Filmus

11

Chúng tôi chỉ có thể có các ngôn ngữ không đếm được nếu chúng tôi cho phép các từ có độ dài vô hạn, xem ví dụ về ngôn ngữ thông thường Omega . Những ngôn ngữ này được gọi là ngữ. Một ví dụ khác sẽ là ngôn ngữ của tập hợp con của các số thực chứa phần mở rộng thập phân của tất cả các số thực.ω

Có một số mô hình trong đó Máy Turing được sửa đổi để chấp nhận ngữ. Một số mô hình này sử dụng điều kiện Buchi để chấp nhận. Vì bạn không thể thấy toàn bộ đầu vào trong thời gian hữu hạn, chúng tôi nói rằng đầu vào được chấp nhận nếu Máy Turing đi vào trạng thái chấp nhận vô hạn nhiều lần. Nếu chúng ta có thể chứng minh điều này bằng cách phân tích đầu vào (không phải bằng cách chạy nó), chúng ta nói rằng đầu vào được chấp nhận.ω


1
Tại sao bảng chữ cái cần phải được đếm?
leftaroundabout 16/2/2016

2
Mỗi mô hình đang được nghiên cứu có bảng chữ cái hữu hạn. Nếu bảng chữ cái cũng trở nên vô hạn (đếm được hoặc không đếm được) thì rất khó để có một mô hình hợp lý.
Shreesh

@Shreesh Chà, nếu bảng chữ cái là không thể đếm được, một ánh xạ ngây thơ của một FSM (với sự chuyển đổi không thể đếm được giữa một số trạng thái hữu hạn) có thể khá mạnh mẽ?
Yakk 16/2/2016

1
Đúng, đây là các loại tiện ích mở rộng, có thể có các lớp ngôn ngữ có thể là siêu lớp của ngôn ngữ RE hoặc ngôn ngữ đệ quy. Nhưng họ không được nghiên cứu tốt, nếu nghiên cứu tất cả. Vấn đề lớn nhất là, theo tôi, làm thế nào chúng ta có thể đưa ra một đại diện hữu hạn của máy. Sau đó, bạn phải viết biểu tượng trong một tế bào băng. Ngay cả các tế bào khiêm tốn có thể cần bộ nhớ vô hạn để lưu trữ mô tả của biểu tượng băng được viết.
Shreesh

Đây là một lời giải thích tuyệt vời. Tôi sẽ nói thêm rằng ngay cả khi tiêu chí chấp nhận / từ chối thông thường được sử dụng, bạn có thể nói rằng vẫn tồn tại một số ngôn ngữ mà máy Turing có thể quyết định và về mặt kỹ thuật sẽ có nhiều chuỗi, nhưng chỉ vì phần lớn các ký tự là " vô dụng "với ngôn ngữ.
Owen

4

Khả năng tính toán cổ điển thảo luận về các chức năng trên các chuỗi hữu hạn từ một bảng chữ cái hữu hạn. Kết quả là tất cả các ngôn ngữ cho dù có thể quyết định hay không thể giải quyết được đều có thể đếm được.

Để xem xét các ngôn ngữ không đếm được, chúng ta phải xem xét các chuỗi vô hạn thay cho các chuỗi hữu hạn. (AFAIK, có một bảng chữ cái vô hạn không thú vị lắm và không tương ứng với một mô hình tính toán thực tế của chính nó.)

Có các mô hình tính toán trong đó chúng ta có thể xử lý các chuỗi vô hạn cho phép chúng ta biểu diễn các đối tượng từ các miền không đếm được như số thực. Chúng thường được biểu diễn dưới dạng tính toán loại cao hơn. Một mô hình sử dụng máy Turing là mô hình TTE. Trong mô hình này, đầu vào có thể là các chuỗi vô hạn và các máy có thể truy cập bất kỳ mục nào trong chuỗi mà nó muốn. Máy không cần kết thúc, tuy nhiên vẫn có điều kiện để đảm bảo đầu ra của máy hội tụ.

ΣωΣΣ={0,1}ΣN=2N22N

MLΣNxΣωMxNxL

Nói một cách đơn giản, tính toán của máy TTE Turing luôn bị dừng lại được xác định bằng cách tính toán của máy Turing trên các chuỗi hữu hạn.


Hãy để tôi đưa ra một số ví dụ về các ngôn ngữ có thể quyết định và không thể giải quyết được của các chuỗi vô hạn:

  1. kNkk36

  2. 010

  3. LiL=iLiLLL

  4. Một ngôn ngữ có thể quyết định nếu cả ngôn ngữ và phần bổ sung của nó đều có thể bán được.

  5. kk


xlgxxlgx cho chúng tôi


f{0,1}f1(1)". Ngoài ra còn có rất nhiều tài liệu tham khảo khác trên trang web về Khả năng tính toán và Độ phức tạp trong Mạng phân tích .


1
" Kết quả là tất cả các ngôn ngữ là hữu hạn " - Ý bạn là có thể đếm được?
Anton Trunov

Tôi nghĩ vậy ông Trunov.
Jyotirmoy Pramanik

Đây là một bài viết hay nhưng tôi không biết số lượng lớn của nó phải làm gì với câu hỏi cụ thể được hỏi ở đây. Có lẽ bạn muốn tạo một cặp câu hỏi-câu trả lời?
Raphael
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.