(Faux?) Preuve de calculabilité d'une fonction?

19

Considérons , une fonction qui retourne 1 si zéros apparaissent consécutivement dans . Maintenant, quelqu'un m'a donné une preuve que est calculable:n π f ( n )f(n)nπf(n)

Soit pour tout n, apparaît dans , soit il y a am st apparaît dans et n'apparaît pas. Pour la première possibilité ; Pour le second ssi , 0 sinon. π 0 m π 0 m + 1 f ( n ) : = 1 f ( n ) : = 1 n m0nπ0mπ0m+1f(n):=1f(n):=1nm

L'auteur affirme que cela prouve la calculabilité de , car il existe un algorithme pour le calculer.f(n)

Cette preuve est-elle correcte?

Mike B.
la source
2
Vous pouvez utiliser du latex dans vos questions pour les rendre plus lisibles.
Dave Clarke
7
L'argument est correct, mais pas constructif. La personne ne vous donne pas de MT, elle vous donne deux MT et vous dit que l'un d'eux calcule la fonction que vous voulez, mais ne sait pas laquelle.
Kaveh
1
Votre version est calculable. Cependant, j'ai mal lu et trouvé accidentellement une version qui, selon moi, n'est pas calculable. Seul changement: au lieu d'exactement n zéros, demandez si π a au plus n zéros. Si c'est vraiment le cas, je pense que vous ne pouvez pas le confirmer, car π a un nombre infini de chiffres et il n'y a (semble-t-il?) Aucun motif réapparaissant.
chazisop
Une fois, j'ai corrigé une page Wikipédia qui a fait une erreur connexe, affirmant que l'existence de la constante de Chaitin prouvait l'existence de «nombres entiers non calculables».
Geoffrey Irving
ces types de questions ont tendance à porter sur des «langues triviales». mais notez comment généralement une légère reformulation, par exemple lorsque la langue est m est un (ou le 1er) emplacement de la chaîne 0 k ou -1 s'il n'y en a pas, peut être indécidable. voir aussi comment peut-on décider que a une séquence de chiffres? / Informatiquef(n,k)=mm0kπ
vzn

Réponses:

23

Pensez-y de cette façon, Mike: Cette preuve se "ramifie" en plusieurs cas possibles, dont l'un doit être vrai (en utilisant la loi du milieu exclu que pour chaque proposition , soit est vrai ou est vrai) . Mais à la fin de chacune de ces branches, vous parvenez toujours à prouver que la fonction est calculable. Par conséquent, quel que soit le cas réel dans la vie réelle, doit être calculable. (Cependant, la raison précise pour laquelle f est calculable sera différente, selon la branche.)p ¬ p f fpp¬pff f

Ryan Williams
la source
16

C'est correct. C'est la même chose que la suivante: définissez comme la fonction constante x 0 si Dieu existe, et x 1 si Dieu n'existe pas. La fonction résultante est une fonction constante, donc calculable. Ce que vous ne pourrez peut-être pas faire, c'est donner cette fonction, mais la fonction elle-même est calculable.f(x)x0x1

Ici, l'une des deux possibilités est vraie: soit il existe un tel , soit il n'en existe pas. La fonction est soit la fonction constante x 1, soit une fonction seuil simple, définie avec m .mx1m

Michaël Cadilhac
la source
4
Je remplacerais « si Dieu existe » avec . :)PNP
Kaveh
m
5
Il n'est pas vraiment logique de dire si un entier est calculable ou non. Quelle que soit la valeur m, il existe une machine de Turing qui la produit. Le trouver peut être difficile, bien sûr, mais ce n'est pas si différent de la situation générale: trouver des algorithmes est difficile, ce qui fait que beaucoup d'entre nous sont employés.
Aaron Roth
0mπ0m+1
mmm0
14

Je pense - et j'espère - que chaque étudiant en informatique est confronté à ce problème qui ressemble à un paradoxe. C'est un très bon exemple de la différence entre calculable au sens TCS et calculable au sens pratique.

ππ

fMTM:fM=f

L'idée de base de la preuve est: je vous donne une classe infinie de fonctions, toutes calculables (à montrer; triviales ici). Je prouve alors que la fonction que vous recherchez est dans cette classe (pour montrer; distinction de casse ici). qed

Raphael
la source
9

Oui, c'est vrai, c'est calculable. Le problème est que votre fonction ne produit vraiment pas la solution à une famille infinie de problèmes, comme (par exemple) une fonction calculant une solution au problème d'arrêt - donc il n'y a pas de problème de calcul. Au lieu de cela, vous représentez sous forme de fonction un fait mathématique unique avec une représentation finie - soit un entier, soit le fait que f est la fonction constamment 1

Ω

Bien sûr, trouver l'algorithme correct pourrait être un problème difficile. Mais trouver des algorithmes corrects est généralement difficile!

Aaron Roth
la source
3

poster un peu vieux, mais je voulais poster une autre réponse.

Il s'agit d'une preuve (ou argument) non constructif de calculabilité. Il dit simplement que la fonction doit exister dans un certain sens puisque je peux la représenter (ou plus correctement l'indexer), dans l'ensemble (ou l'univers) des fonctions calculables. Cependant, il ne construit ni la machine elle-même (c'est-à-dire l'algorithme), ni l'index (en supposant une énumération efficace des machines calculables). L'expression anglaise « merci pour rien » semble dans ces cas la plus appropriée, comme suit:

-- Look, I proved there is water somewhere! 

Now you can be happy, while dying from thirst!

Les gens de l'histoire des mathématiques se sont beaucoup disputés sur la validité réelle (ou la plage de validité) et la signification de ces arguments. Le résultat final est que le même type d'arguments réapparaît dans les théorèmes d'incomplétude de Goedel et se retourne contre cette "hypothèse de l'univers fermé" .

Si vous n'aimez pas tellement ces arguments, je ne vous en voudrais pas.

Nikos M.
la source