Si vous vous considérez mentalement sain, ne lisez pas cet article.
Cet article traite d'un sujet d'informatique théorique des plus fumeux.
http://fr.wikipedia.org/wiki/Oracle_(machine_de_Turing)
Quelques explications :
Les machines de Turing sont le modèle mathématique de calcul le plus puissant (actuellement, en tout cas).
Par calcul, on parle ici d'application d'un algorithme, ce qui signifie que les machines de Turing sont plus ou moins, mathématiquement, des fonctions.
Par puissant, on veut dire qu'il peut appliquer des algorithmes (simuler des fonctions) plus complexes.
Cependant, il y a des problèmes qui ne peuvent pas être résolus par une machine de Turing : ces problèmes sont dits indécidables par une machine de Turing.
Le problème indécidable, en informatique théorique, le plus connu est le problème de l'arrêt.
Le problème de l'arrêt consiste à déterminer si une machine de Turing donné en entrée (ou en argument, pour l'analogie aux fonctions) s'arrête (que l'algorithme se termine) pour toutes les entrées possibles ou si il peut ne pas s'arrêter.
Une machine de Turing capable de résoudre le problème de l'arrêt serait une machine de Turing, qui, pour toute machine de Turing existante, est capable de dire si la machine de Turing entrée en argument finit son calcul pour toutes les entrées existantes.
Comme je l'ai dit plus haut, ce problème est indécidable, il n'existe donc pas de machine de Turing capable de décider le problème de l'arrêt pour une machine de Turing.
C'est là que ça devient marrant.
Pour résoudre ce problème, des chercheurs (je crois) ont proposé une alternative aux machines de Turing : il s'agit de prendre une machine de Turing et d'y ajouter un Oracle. Le mot Oracle est à prendre au sens habituel du terme, c'est-à-dire que c'est une entité omnisciente.
Comme l'Oracle sait tout, alors il sait décider le problème de l'arrêt pour une machine de Turing.
Vous sentez une arnaque quelque part ? C'est normal.
D'ailleurs, l'arnaque est complètement assumée, comme le montre l'article Wikipédia linké plus haut :
"Les oracles sont des outils purement théoriques, puisque ce modèle évite soigneusement de soulever la question de leur fonctionnement."
Eh oui, c'est impossible de créer une telle machine. Bien joué.
Vous pouvez donc vous demander l'intérêt d'avoir pensé à ça. Je n'en vois pas non plus, d'où mon trip sur le sujet.
En bonus track :
Des chercheurs ont démontré que si une machine de Turing avec Oracle est capable de décider le problème de l'arrêt pour une machine de Turing classique, elle n'est pas capable de le décider pour une machine de Turing avec Oracle.
Il faut donc ajouter un Oracle pour les machines de Turing avec Oracle.
Ces machines, dotées de 2 oracles, peuvent décider le problème de l'arrêt pour une machine de Turing avec un oracle, mais ne le peuvent pas pour les machines avec 2. Et ainsi de suite.
Ce qui donne lieu à des conclusions assez marrantes, dans la mesure où les Oracles savent tout mais en fait non. Qu'il y a des oracles qui savent plus de choses que d'autres :D
Cet article a été approuvé par Gégé.
