• Aucun résultat trouvé

Description de la notion de machine de Turing universelle

Dans le document Td corrigé Remerciements - Td corrigé pdf (Page 79-85)

Les machines de Turing dites “universelles” sont des machines de Turing comme les autres, au sens où elles sont composées des mêmes éléments. A quoi tient leur “universalité” ? Au fait qu’elles peuvent imiter le fonctionnement de n’importe quelle autre machine de Turing. L’universalité de ces machines de Turing provient donc de leur universelle capacité d’“imitation”. Que faut-il entendre par “imitation” dans le contexte des machines de Turing ? On dit qu’une machine de Turing A imite une machine de Turing B quand A, munie des instructions adéquates, est capable d’effectuer le calcul effectué par B. L’imitation est universelle quand on reconnaît à la machine A la capacité d’imiter le comportement de n’importe quelle machine.

Quel peut être l’intérêt de cette classe particulière de machines que sont les

“machines universelles” ?

221. Intérêt de la notion de machine de Turing universelle pour une théorie de la représentation

Pratiquement, on ne voit pas exactement quel pourrait être l’intérêt de ce type de machines. En effet, du point de vue de celui qui construit une machine en rédigeant sa table d’instructions, la table d’instructions d’une machine de Turing universelle ne peut être que plus compliquée que la machine qu’elle imite puisqu’il faut rajouter à sa table d’instructions les instructions spécifiques qui lui permettent d’imiter la machine à imiter. Or ceci apparaît bien comme une difficulté supplémentaire. De même que lorsqu’on a caractérisé la notion d’algorithme par le biais de la notion de machine, de même ici on a l’impression de “reculer pour mieux sauter” et de compliquer la recherche d’un algorithme pour un problème donné au lieu de le simplifier : maintenant, non seulement la

recherche d’un algorithme passe par la recherche de la machine de Turing éventuelle qui lui correspondrait mais il faut rajouter à cette recherche les instructions permettant à une machine universelle d’imiter la machine que l’on aura réussi à construire en vue d’effectuer l’algorithme. Ce n’est donc pas du strict point de vue de la caractérisation de la notion de calcul que la notion de machine universelle possède un intérêt.

Si l’on se rappelle en revanche que la notion de machine de Turing a été élaborée dans le contexte de la “thèse de Turing” selon laquelle toute fonction calculable par un être humain en suivant un algorithme est calculable par une machine de Turing, on se rend compte que la notion de machine universelle revêt une grande importance : la simulation qui définit en propre la notion de machine de Turing universelle est le point de vue par lequel tout calcul, quelle que soit sa complexité, peut être envisagé d’un point de vue fini. Essayons de comprendre pourquoi.

Selon le schéma de la thèse de Turing, on pourrait supposer que le calcul de nombres réels très compliqués exige d’augmenter le nombre d’états d’esprit du calculateur humain nécessaires à l’effectuation du calcul, nombre qui finit par tendre vers l’infini à mesure que la complexité s’accroît. Dans ce cas, le calcul peut-il être effectué par une machine de Turing ? En fait, il suffit de rajouter des symboles sur le ruban de la machine pour contourner cette difficulté : plus le calcul est compliqué, plus le nombre d’instructions à écrire sur le ruban peut être élevé, comme le fait remarquer Turing lui-même113. Le cas de la machine universelle présente précisément une confirmation de ce fait114 : la machine

113 Cf. A. M. Turing, (1936), ‘On Computable Numbers with an Application to the Entscheidungsproblem’, Proceedings of the London Mathematical Society, 42 : 230-265, § 9;

republié dans [M. Davis ed., The Undecidable Raven Press, Hewlett, New-York, 1965, p. 115-154], p. 136 : «Si nous admettions une infinité d’états d’esprit, certains seraient “arbitrairement proches” et seraient confondus. Encore une fois, cette restriction n’affecte pas sérieusement le calcul, puisque l’utilisation d’états d’esprit plus compliqués peut toujours être évité en écrivant plus de symboles sur le ruban».

114 C’est ce que remarque J. Webb dans son introduction au texte de Gödel, “Some remarks on the undecidability results”, 1972a, reproduit dans K. Gödel, [Collected Works, t. II, Oxford University Press, Oxford, 1990], p. 300, dans laquelle il renvoyait à un texte de Turing : «Ainsi la complexité de la machine à imiter est concentrée sur le ruban et n’apparaît en aucune façon dans la machine universelle elle-même». A. M. Turing, (1947), ‘Lecture to the London Mathematical Society’, 20 february 1947; republié dans [B. E. Carpenter et R. W. Doran eds., A. M. Turing’s ACE report of 1946 and other papers, MIT Press, Cambridge, Massachussetts, 1986, pp. 106-124], p. 112.

universelle sert à contourner l’aspect infini du nombre d’états d’esprit nécessaires au calcul des nombres réels pris globalement puisqu’elle permet de simuler, grâce à une table de configurations finie, tout calcul effectué par une machine en ne prenant en compte que le numéro de code correspondant à chacune d’entre elle.

L’aspect universel présent dans la notion de simulation possède dès lors un intérêt du point de vue de la confirmation psychologique qu’elle apporte à la thèse de Turing.

Le calculateur humain, selon l’algorithme qu’il veut mettre en pratique, construit en effet telle ou telle machine de Turing. D’un point de vue psychologique, le calculateur utilise toujours le même ressort pour effectuer cette correspondance : pour tel algorithme, utiliser telle table d’instructions. La correspondance entre un algorithme et la table d’instructions fait donc l’objet d’une procédure générale. Cette procédure générale de mise en correspondance ne pourrait-elle pas être elle-même opérée par une machine ? C’est possible, puisqu’on peut concevoir des machines de Turing dites “universelles” qui ont la particularité d’opérer la mise en effectuation, si leur table d’instructions est correctement rédigée, de n’importe quel algorithme. Il suffirait ainsi de définir une machine de Turing ayant cette caractéristique pour réussir à effectuer n’importe quel calcul, comme un calculateur humain unique est capable de s’adapter à chaque problème particulier et de trouver à la fois l’algorithme correspondant au problème qu’il se pose, la table d’instructions de la machine de Turing qui correspond à l’algorithme et leur mise en rapport.

Aussi, du point de vue d’une théorie de la représentation, la notion de machine universelle permet-elle de serrer au plus près le rapport entre le pôle subjectif et le pôle objectif de la représentation, tel que ce rapport s’exprime dans la thèse de Turing. En effet, de même qu’un même calculateur humain est capable de rechercher différents algorithmes pour résoudre les différents problèmes qu’il rencontre, de même la machine universelle est capable, selon les instructions qui lui sont confiées, de calculer ce que différentes machines de Turing peuvent calculer.

La notion de machine universelle permet donc de préciser la signification

de la thèse de Turing. Revenons un instant sur celle-ci; elle s’énonçait sous la forme : “Toute fonction calculable par un être humain en suivant un algorithme peut être calculée par une machine de Turing”. La thèse proposait, grâce au concept de machine de Turing, un équivalent formel à la notion informelle de

“calculable par un être humain” et se présentait comme une implication logique : si une fonction est calculable par un être humain alors elle est calculable par une machine de Turing. Une fois l’existence de machines de Turing universelles mise au jour, on peut préciser la thèse et l’exprimer sous la forme : “Toutes les fonctions calculables par un être humain en suivant un algorithme peuvent être calculées par une machine de Turing universelle”. Dans cette formulation, on prend comme un fait acquis la caractérisation du champ du calculable et on met l’accent sur le fait qu’il est possible de donner un équivalent formel non pas seulement aux cas particuliers de recherche d’une machine de Turing mais à l’instance de recherche des algorithmes elle-même, à savoir l’être humain qui calcule. Cette analogie entre machine universelle et calculateur humain est cependant quelque peu trompeuse : alors que le calculateur humain trouve, par des moyens intuitifs, un algorithme, la machine universelle le reçoit en entrée sur son ruban. Nous reviendrons sur cette distinction.

On voit cependant d’ores et déjà l’intérêt que revêt cette dernière formulation puisqu’elle permet de caractériser plus avant le pôle subjectif du rapport de représentation - à savoir la notion psychologique de calculateur -, en en proposant un équivalent formel, celui de machine universelle. Bref, c’est surtout du point de vue de la théorie de la représentation que la notion de machine universelle possède un intérêt puisqu’elle permet de préciser ce qui sinon serait resté dans l’ombre, à savoir l’instance subjective qui calcule et non pas seulement les manifestations de cette instance.

Après cette description très générale du rôle joué par la notion de machine de Turing universelle du point de vue de la théorie de la représentation, il nous faut déterminer plus avant les caractères propres à ce type de machines.

222. Remarques sur les deux traits propres à l’imitation

On a vu que l’universalité de certaines machines de Turing provenait de leur capacité à imiter tout calcul effectué par machine de Turing. On peut donc décrire le rapport d’imitation comme un rapport entre une “machine imitante” et une “machine imitée”. Comment s’opère cette imitation ?

Deux traits permettent de caractériser celle-ci : d’une part, la capacité à recevoir les instructions d’une autre machine sur son propre ruban et d’autre part la capacité à obéir effectivement aux instructions copiées, c’est-à-dire à effectuer le calcul proprement dit. On va voir que ces deux caractéristiques renvoient aux deux pôles du rapport de représentation tel qu’il apparaît dans la thèse de Turing : la première caractéristique, la réception, renvoie à l’instance psychologique mise en action dans la recherche d’un algorithme tandis que la seconde, l’effectuation, renvoie à ce que la machine exécute objectivement.

222. 1. La capacité à recevoir les instructions d’une autre machine

On a vu à l’instant qu’il fallait opérer une distinction entre d’une part l’instance psychologique du calculateur qui, par des moyens intuitifs, trouve un algorithme et la machine de Turing qui lui correspond et d’autre part une machine de Turing universelle qui reçoit sous la forme d’un numéro de code les instructions d’une autre machine. Cette distinction permet d’éclairer ce qu’il faut entendre par la “capacité de réception” d’une machine de Turing universelle. En quoi consiste cette “réception” ?

En fait, du point de vue du fonctionnement d’une machine de Turing universelle, il n’y a pas à proprement parler de capacité de “réception” qui serait différente de la capacité à recevoir des instructions en entrée sur son ruban : la

“réception” des instructions d’une autre machine se présente sous la même forme que n’importe quelle instruction de n’importe quelle machine. Une machine de Turing universelle reçoit en effet les instructions d’une autre machine sous la forme “ordinaire” d’un codage indexé sur les entiers : à tel numéro de code correspond telle machine de Turing. Comme il est possible de coder les entiers naturels sur un ruban de machine de Turing, il est possible d’opérer ce codage des machines de Turing en une liste infinie dénombrable. On peut alors concevoir une

relation fonctionnelle entre les tables d’instructions des deux machines, la description de la machine imitée jouant le rôle d’un argument de fonction pour la machine imitante. C’est cette relation fonctionnelle qui confère à la machine imitante la particularité d’imiter n’importe quelle machine. On peut alors démontrer qu’il existe au moins une machine de Turing qui peut imiter n’importe quelle machine de Turing, c’est-à-dire qui peut calculer n’importe quelle fonction calculable.

Une machine de Turing universelle n’est donc pas dotée d’une caractéristique supplémentaire tangible qui lui conférerait sa spécificité de machine universelle. C’est plutôt le mathématicien qui reconnaît dans un certain montage d’une table d’instructions cette capacité à l’imitation universelle. De quelle nature est cette reconnaissance ?

Le mathématicien reconnaît à une machine de Turing la capacité à recevoir virtuellement les tables d’instructions de n’importe quelle machine sans qu’il lui soit évidemment possible de vérifier si cette “réception” est bien possible pour chaque numéro de code. On se trouve dans la même situation que lorsque l’on reconnaît à la fonction successeur la capacité virtuelle de pouvoir calculer le successeur de n’importe quel entier sans effectuer ce calcul : la suite des entiers étant infinie, on accorde à la règle de succession un statut universel sans vérifier la vérité de cette règle au cas par cas, puisque cette vérification envelopperait l’infini. La capacité de réception de la machine de Turing universelle renvoie donc en fait à la capacité du mathématicien de coder les tables d’instructions de toutes les machines de Turing qu’il peut parvenir à concevoir. On retrouve donc ici ce qui faisait la spécificité de la thèse de Turing : l’appel à une instance psychologique comme fondement de la possibilité d’un calcul. La capacité de

“réception” propre à la description de la notion de machine de Turing universelle permet de caractériser le champ d’investigation propre à l’intuition : il s’agit d’un champ de nature virtuelle que l’intuition explore au moyen d’algorithmes.

222. 2. La capacité à effectuer le calcul d’une autre machine

A la capacité purement virtuelle consistant à pouvoir recevoir les

instructions d’une autre machine de Turing sur son propre ruban, vient s’ajouter la capacité, pour une machine de Turing universelle, à effectuer les opérations successives telles qu’elles sont décrites dans la table d’instructions de la machine à imiter. Il s’agit là d’une capacité effective et non pas seulement virtuelle qui renvoie au pôle objectif de la thèse de Turing : c’est en effet quand une machine de Turing en imite une autre en effectuant les opérations de cette machine que l’on peut s’assurer que la première machine est bien candidate à être une machine universelle. Aussi est-ce l’effectuation qui confère le caractère d’universalité à telle ou telle machine de Turing. C’est pourquoi la “réception” d’une table d’instructions sur le ruban de la machine universelle apparaît comme une condition nécessaire mais non suffisante à la construction d’une machine de Turing universelle. Quels rapports entretiennent alors les deux caractéristiques ? Pourrait-on imaginer séparer entièrement les deux traits caractéristiques de la notion de machine de Turing universelle et inventer un autre type de machine qui posséderait la capacité de recevoir la table d’instructions d’une machine sans en effectuer le calcul ?

Il semble possible de concevoir un autre type de machine de Turing qui aurait la capacité de recevoir sur son ruban les instructions codées de tables d’instructions de machine de Turing mais qui, au lieu de les exécuter, leur ferait subir une transformation quelconque. Mais en fait, on se rend compte que la

“réception” n’a d’intérêt que si elle est suivie par une effectuation, que celle-ci consiste à exécuter les instructions ou à les transformer d’une manière ou d’une autre. Bref, la virtualité d’une “réception” ne prend son sens que par rapport à une effectuation : le champ du virtuel doit se rabattre sur celui de l’effectif pour que, de façon rétroactive, on puisse considérer la possibilité d’autres “réceptions”

possibles. “Réception” et effectuation semblent donc aller de pair et la première n’a d’intérêt que parce qu’elle implique la seconde.

Dans le document Td corrigé Remerciements - Td corrigé pdf (Page 79-85)