Ben non, je ne l'oublie pas, ce "n'importe lequel" c'est bien ça le problème. Je sais bien que dans la réalité une machine de turing pourra prédire que certaines autres vont s'arréter ou boucler, et que c'est parce qu'il y a des cas qui resteront inaccessibles qu'on dit qu'une telle machine n'existe pas... et c'est bien ça que je n'arrive pas à comprendre. C'est bien la démo, telle qu'elle est donnée par spi100 ou sur wikipedia, ou sur à peu près tout ce que j'ai trouvé sur le net, qui me pose problème : D'une part il me semble qu'on peut faire exactement la même pour démontrer qu'une fonction retour() n'existe pas, alors que celle-ci existe bien. Du coup une des deux démos est juste, l'autre fausse. Et je n'arrive pas à comprendre ce qui est faux dans la mienne et juste dans la vraie.Envoyé par Jiav
![]()
D'autre part, il me parait très facile de décrire un algorithme permettant de déterminer sur un autre algorithme va se terminer ou partir en boucle, se basant sur le postulat qu'on ne manipule nécessairement qu'un nombre fini d'états. Je sais bien que ça ne correspond pas à l'énoncé parce qu'une machine de turing est sensée avoir un ruban extensible à l'infini. Je comprends bien aussi qu'il faudra toujours une machine beaucoup plus complexe que celle sur laquelle tourne l'algorithme à tester, ce qui fait que quel que soit la machine que l'on utilise pour tester, il existera une infinité d'algorithmes trop complexes et qui nécessiteront une machine plus complexe pour être testés. Mais la démo ne reflète absolument pas cet état de fait et, comme c'est une démo par l'absurde, se base sur une contradiction. C'est cette contradiction qui, pour moi, n'en est pas une.![]()
-----



) devra dans le pire des cas être capable de garder en mémoire ces M*P^N états différents, car potentiellement ils peuvent être tous parcourus avant que ca boucle. J'imagine que le nombre d'états, de cases de ruban ou de symboles possibles de cette machine-émulateur devront être beaucoup plus grands que M, P et N. C'était juste ça que j'entendais par "machine plus complexe". La démo ne fait absolument pas intervenir ces notions, et se contente d'aboutir sur une contradiction qui pour moi n'a rien à voir, et n'en est pas une.
) cette démonstration est fausse : ce qui aboutit à une contradiction, c'est l'absence d'un cas terminal dans une fonction récursive, et pas la nature de la fonction halt(). Du coup, avec l'exemple de la fonction retour(), je peux appliquer exactement le même raisonnement, et aboutir à la conclusion que retour() ne peut pas exister, ce qui est bien évidemment faux

: C'est le "function F(N) defined to be either one more than the value of the Nth computable function applied to the natural number N" qui pour moi n'a pas de sens...
