Chúng tôi có thể hiển thị một ngôn ngữ không thể tính toán được bằng cách hiển thị không có trình xác minh cho ngôn ngữ đó không?


11

Một trong những định nghĩa của một bộ đếm có thể tính toán được (ce, tương đương với liệt kê đệ quy, tương đương với semidecidable) là như sau:

là ce khi và chỉ khi có một ngôn ngữ decidable V Σ * (gọi là người xác minh) st cho tất cả x Σ * ,AΣVΣxΣ

khi và chỉ khi tồn tại một y Σ * stx , y V .xAyΣx,yV

Vì vậy, một cách để chỉ ra rằng một ngôn ngữ không phải là ce là chỉ ra rằng không có trình xác minh có thể quyết định cho ngôn ngữ đó. Phương pháp này có hữu ích để chỉ ra rằng các ngôn ngữ không phải là ce trong thực tế không?V


3
ce là gì (ý của bạn là gì?)
Ran G.

Tôi không thể nghĩ đến một tình huống mà điều này hữu ích để chứng minh một ngôn ngữ không phải là CE. Tôi hy vọng bạn có thể dễ dàng thay thế bằng A với mức giảm nhiều. Nếu bạn đã đưa ra một số giảm khác, tôi hy vọng rằng "kết quả đầu ra tiêu cực" x , y V sẽ không có ý nghĩa nhiều như y được existentially định lượng. VAx,yVy
Lucas Cook

@RanG., Re là thuật ngữ cũ, ngày nay nó thường được gọi là ce bởi những người làm việc trong lý thuyết tính toán. (Nếu bạn quan tâm đến lý do thay đổi thuật ngữ, tôi khuyên bạn nên kiểm tra trang chủ của Robert Soare.)
Kaveh

@Kaveh cảm ơn. Mỗi ngày một người học được những điều mới ...
Ran G.

Câu trả lời:


4

Trong thực tế, chúng ta thường không chứng minh rằng ngôn ngữ là re hay không re. Nếu ngôn ngữ là re, chúng tôi muốn biết liệu nó có đệ quy hay không. Nếu không phải là re, chúng tôi muốn biết mức độ Turing của nó là gì, không chỉ là mức độ Turing không phải là re.

P P PPT0PP

Vì vậy, về nguyên tắc, bạn có thể chỉ ra rằng một ngôn ngữ không phải là bằng cách chứng minh rằng không có trình xác minh, trong thực tế, nó có nhiều thông tin hơn để chứng minh rằng ngôn ngữ đó không phải là bằng cách chỉ ra rằng nó tính toán một thứ mà không có bộ nào có thể tính toán được; bản chất của "cái gì đó" thường cung cấp thông tin hữu ích về vấn đề đang được nghiên cứu.


3

Để làm cho thuật ngữ tôi sử dụng rõ ràng: decidable = recursive = computable, semidecidable = recursively enumerable = computable enumerable, co-semidecidable = co-recursively enumerable = co-computable enumerable.

Trong thực tế, một phương pháp phổ biến để chỉ ra rằng một ngôn ngữ không thể bán được là cho thấy nó không thể quyết định được và đó là ngôn ngữ có thể bán được. Sau đó, bạn sử dụng thực tế là bất kỳ ngôn ngữ nào có thể bán được và có thể bán được cũng có thể quyết định để kết luận rằng ngôn ngữ của bạn không thể bán được. (lưu ý rằng điều này chỉ hoạt động theo một hướng: một ngôn ngữ có thể không bán được hoặc không bán được, trong trường hợp đó bạn cần một số phương pháp khác)

CFGCFG

Một phương pháp khác là chỉ ra rằng ngôn ngữ đã hoàn thành đối với một số mức cao hơn của hệ thống phân cấp số học .

Tất nhiên có thể chứng minh trực tiếp không có người xác minh, nhưng điều này thường tẻ nhạt, vì nó thường lặp lại bằng chứng rằng vấn đề tạm dừng là không thể giải quyết được. Lưu ý rằng mặc dù đối số trên về cơ bản chứng minh rằng không thể không có người xác minh, vì vậy tôi đoán rằng bạn có thể nói đó là một phương pháp để chứng minh rằng không có người xác minh, nhưng sau đó bạn có thể xem xét bất kỳ bằng chứng nào về tính không xác thực là bằng chứng cho thấy có không có verfier.


Có một lỗ hổng trong ngôn ngữ của bạn. Một ngôn ngữ có thể không bán được và không thể bán được. Ngôn ngữ không thể giải quyết được là những ngôn ngữ như vậy.
Dave Clarke

@DaveClarke: Tôi đã thêm một số định nghĩa thuật ngữ. Bây giờ có đúng không?
Alex ten Brink


@DaveClarke: Tôi đã thêm một ghi chú nói rằng nó chỉ hoạt động theo một hướng.
Alex ten Brink

3
Tôi không tin rằng đây là một kỹ thuật mà mọi người sẽ sử dụng. Tại sao không giảm vấn đề thành một vấn đề "không thể bán được".
Dave Clarke
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.