Tại sao có nhiều hàm không tính toán hơn các hàm tính toán?


29

Tôi hiện đang đọc một cuốn sách về thuật toán và độ phức tạp. Hiện tại tôi đang đọc về các hàm tính toán và không tính toán được, và cuốn sách của tôi nói rằng có nhiều hàm không thể tính toán hơn so với tính toán, trên thực tế, phần lớn là không thể tính toán được. Trong một số ý nghĩa, tôi có thể chấp nhận một cách trực giác điều đó nhưng cuốn sách không đưa ra một bằng chứng chính thức cũng như không xây dựng nhiều về chủ đề này.

Tôi chỉ muốn xem một bằng chứng / để ai đó ở đây giải thích về nó / hiểu rõ hơn tại sao có rất nhiều hàm không tính toán được hơn các hàm tính toán.


Khi so sánh hai tập hợp vô hạn, ngữ nghĩa của "nhiều hơn" phải được sửa đổi.
Raphael

Câu trả lời:


31

Các là đếm được nhiều chức năng tính toán:

Mỗi hàm tính toán có ít nhất một thuật toán. Mỗi thuật toán có một mô tả hữu hạn sử dụng các ký hiệu từ một tập hữu hạn, ví dụ các chuỗi nhị phân hữu hạn sử dụng các ký hiệu . Số chuỗi nhị phân hữu hạn được ký hiệu là { 0 , 1 } có thể đếm được (tức là giống với số lượng số tự nhiên N ).{0,1}{0,1}N

Do đó, có thể có nhiều nhất là nhiều hàm tính toán. Có ít nhất đếm được nhiều chức năng tính toán vì đối với mỗi , hàm liên tục f ( x ) = c là tính toán.c{0,1}f(x)=c

Nói cách khác, có một sự tương ứng giữa:

  • tập hợp các hàm tính toán,
  • bộ thuật toán,
  • , tập các chuỗi hữu hạn từ { 0 , 1 } , và{0,1}{0,1}
  • , tập hợp các số tự nhiên.N

Mặt khác, có vô số hàm trên chuỗi (hoặc số tự nhiên). Hàm (hoặc f :f:NN ) gán một giá trị cho mỗi đầu vào. Mỗi giá trị này có thể được chọn độc lập với các giá trị khác. Vậy có N N = 2 N hàm có thể. Số lượng hàm trên số tự nhiên bằng số lượng số thực.f:{0,1}{0,1}NN=2N

Vì chỉ có rất nhiều chức năng là có thể tính toán được, nên hầu hết chúng không hoạt động. Trong thực tế, số lượng các chức năng uncomputable cũng là .2N

Nếu bạn muốn hình dung điều này bằng trực giác, hãy nghĩ về số tự nhiên và số thực hoặc về chuỗi nhị phân hữu hạn và chuỗi nhị phân vô hạn. Có nhiều số thực và chuỗi nhị phân vô hạn hơn số tự nhiên và chuỗi hữu hạn. Nói cách khác, (để chứng minh thực tế này, hãy xem đối số đường chéo của Cantorsố học Hồng y ).N<2N


Câu trả lời tốt! Điều tôi không hiểu (tôi có thể thiếu một cái gì đó tầm thường ở đây) là cách bạn có được NN=2N

Đó là số học Hồng y. Viết các số tự nhiên trong một chuỗi vô hạn các số tự nhiên ở dạng nhị phân, sẽ cho trực giác.
Kaveh

Tại sao giả định này là đúng - "Mỗi thuật toán có một mô tả hữu hạn sử dụng các ký hiệu từ một tập hợp hữu hạn"? Tại sao một thuật toán không thể có một mô tả vô hạn?
Roland Pihlakas

@RolandPihlakas là một phần của định nghĩa thuật toán (nếu bạn thích, một chương trình máy tính).
Kaveh

9

K

F={f:N{0,1}:xN,f(2x)=K(x)}.
fFF

R

G={g:N{0,1}:nNmn,g(m)=R(m).}
gGRGG

Vì vậy, có rất nhiều hàm không tính toán được vì chúng ta có "vô số" mức độ tự do - vô cùng thực tế thay vì vô hạn "tiềm năng" như trong trường hợp tính toán.

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.