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.
Réponses:
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:
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: N → N F: { 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
la source
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
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.
la source