Saat ini saya sedang membaca buku tentang algoritma dan kompleksitas. Saat ini saya sedang membaca tentang fungsi yang dapat dikomputasi dan yang tidak dapat dikomputasi, dan buku saya menyatakan bahwa ada lebih banyak fungsi yang tidak dapat dikomputasi daripada yang dapat dikomputasi, bahkan mayoritasnya tidak dapat dikomputasi. Dalam beberapa hal saya secara intuitif dapat menerimanya tetapi buku itu tidak memberikan bukti formal juga tidak banyak menguraikan topik tersebut.
Saya hanya ingin melihat bukti / biarkan seseorang di sini menguraikannya / mengerti lebih ketat mengapa ada begitu banyak fungsi yang tidak dapat dikomputasi daripada yang dapat dihitung.
Jawaban:
Adalah countably banyak fungsi dihitung:
Setiap fungsi yang dapat dihitung memiliki setidaknya satu algoritma. Setiap algoritma memiliki deskripsi hingga menggunakan simbol dari himpunan terbatas, misalnya string biner terbatas menggunakan simbol . Jumlah string biner terbatas yang dilambangkan dengan { 0 , 1 } ∗ dapat dihitung (yaitu sama dengan jumlah bilangan alami N ).{ 0 , 1 } {0,1}∗ N
Oleh karena itu paling banyak terdapat banyak fungsi yang dapat dihitung. Ada setidaknya dihitung banyak fungsi dihitung karena untuk setiap , fungsi konstan f ( x ) = c adalah dihitung.c∈{0,1}∗ f( x ) = c
Dengan kata lain, ada korespondensi antara:
Di sisi lain, ada banyak fungsi yang tak terhitung banyaknya di atas string (atau bilangan alami). Fungsi (atau f : { 0 , 1f: N → N ) memberikan nilai untuk setiap input. Masing-masing nilai ini dapat dipilih secara independen dari yang lain. Jadi ada N N = 2 N fungsi yang mungkin. Jumlah fungsi lebih dari bilangan asli sama dengan jumlah bilangan real.f: { 0 , 1 }∗→ { 0 , 1 }∗ NN= 2N
Karena hanya banyak fungsi yang dapat dihitung, sebagian besar tidak. Bahkan jumlah fungsi uncomputable juga .2N
Jika Anda ingin menggambarkan ini secara intuitif, pikirkan tentang bilangan asli dan bilangan real, atau tentang string biner terbatas dan string biner tak terbatas. Ada jauh lebih banyak bilangan real dan string biner tak terbatas daripada bilangan alami dan string terbatas. Dengan kata lain (untuk bukti fakta ini lihat argumen diagonal Cantor dan Aritmatika Kardinal ).N < 2N
sumber
Ini adalah konstruksi "eksplisit" dari banyak fungsi Boolean yang tidak dapat dihitung. Biarkan menjadi beberapa fungsi Boolean yang tidak dapat dihitung, katakanlah fungsi karakteristik dari masalah penghentian. Pertimbangkan rangkaian fungsi F = { f : N → { 0 , 1 } : ∀ x ∈ N , f ( 2 x ) = K ( x ) } . Setiap f ∈ F tidak dapat dihitung, dan F tidak dapat dihitung.K
Jadi ada banyak fungsi yang tidak dapat dihitung karena kita memiliki derajat kebebasan "tak terhingga banyaknya" - tak terhingga yang sebenarnya daripada tak terhingga "potensial" seperti dalam kasus yang dapat dihitung.
sumber