Pourquoi y a-t-il plus de fonctions non calculables que de fonctions calculables?

29

Je lis actuellement un livre sur les algorithmes et la complexité. En ce moment, je suis en train de lire sur les fonctions calculables et non calculables, et mon livre indique qu'il y a beaucoup plus de fonctions non calculables que calculables, en fait la majorité est non calculable, dit-il. Dans un certain sens, je peux l'accepter intuitivement, mais le livre ne donne pas de preuve formelle et n'élabore pas beaucoup sur le sujet.

Je voulais juste voir une preuve / laisser quelqu'un ici développer à ce sujet / comprendre plus strictement pourquoi il y a tellement plus de fonctions non calculables que de fonctions calculables.

hsaline
la source
Lorsque l'on compare deux ensembles infinis, la sémantique de "plus" doit être révisée.
Raphael

Réponses:

31

Le sont comptablement de nombreuses fonctions calculables:

Chaque fonction calculable possède au moins un algorithme. Chaque algorithme a une description finie utilisant des symboles d'un ensemble fini, par exemple des chaînes binaires finies utilisant des symboles . Le nombre de chaînes binaires finies notées { 0 , 1 } est dénombrable (c'est-à-dire le même que le nombre de nombres naturels N ).{0,1}{0,1}N

Par conséquent, il peut y avoir tout au plus de nombreuses fonctions calculables. Il existe au moins de nombreuses fonctions calculables car pour chaque , la fonction constante f ( x ) = c est calculable.c{0,1}F(X)=c

En d'autres termes, il existe une correspondance entre:

  • l'ensemble des fonctions calculables,
  • l'ensemble des algorithmes,
  • , l'ensemble de chaînes finies de { 0 , 1 } , et{0,1}{0,1}
  • , l'ensemble des nombres naturels.N

D'autre part, il y a indénombrablement de nombreuses fonctions sur les chaînes (ou nombres naturels). Une fonction (ou f : { 0 , 1 } { 0 , 1 } ) attribue une valeur à chaque entrée. Chacune de ces valeurs peut être choisie indépendamment des autres. Il y a donc N N = 2 N fonction possible. Le nombre de fonctions sur les nombres naturels est égal au nombre de nombres réels.F:NNF:{0,1}{0,1}NN=2N

Comme seules de nombreuses fonctions sont calculables, la plupart ne le sont pas. En fait , le nombre de fonctions est également non calculable .2N

Si vous voulez imaginer cela intuitivement, pensez aux nombres naturels et réels, ou aux chaînes binaires finies et aux chaînes binaires infinies. Il y a beaucoup plus de nombres réels et de chaînes binaires infinies que de nombres naturels et de chaînes finies. En d'autres termes, (pour une preuve de ce fait, voir l'argument diagonal de Cantor et l' arithmétique cardinale ).N<2N

Kaveh
la source
Bonne réponse! Ce que je ne comprends pas (je manque peut-être quelque chose de trivial ici), c'est comment obtenir ? NN=2N
hsalin
C'est l'arithmétique cardinale. Écrivez les nombres naturels dans une séquence infinie de nombres naturels en binaire, ce qui devrait donner l'intuition.
Kaveh
Pourquoi cette hypothèse est-elle vraie - "Chaque algorithme a une description finie utilisant des symboles d'un ensemble fini"? Pourquoi un algorithme ne peut-il pas avoir une description infinie?
Roland Pihlakas
@RolandPihlakas qui fait partie de la définition d'un algorithme (si vous préférez, un programme informatique).
Kaveh
9

Voici une construction "explicite" de nombreuses fonctions booléennes non calculables. Soit une fonction booléenne fixe non calculable, disons la fonction caractéristique du problème d'arrêt. Considérons l'ensemble des fonctions F = { f : N{ 0 , 1 } : x N , f ( 2 x ) = K ( x ) } . Chaque f F est non calculable et F est indénombrable.K

F={F:N{0,1}:XN,F(2X)=K(X)}.
FFF

R

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

Il y a donc beaucoup de fonctions non calculables puisque nous avons "infiniment de degrés" de liberté - l'infini réel plutôt que l'infini "potentiel" comme dans le cas calculable.

Yuval Filmus
la source