|
Machines de Turing et complexité algorithmique
Résumé.
L'objectif de cet article consiste à esquisser le rôle des machines de Turing en théorie de la complexité (des
algorithmes et des problèmes), dans le domaine de l'optimisation combinatoire. Après avoir rapidement rappelé le
contexte historique dans lequel sont nées puis ont évolué les machines de Turing, nous détaillons le fonctionnement
de celles-ci, en distinguant entre machines de Turing déterministes et machines de Turing non déterministes. Nous
montrons ensuite comment les utiliser pour définir la complexité (en temps de calcul) des algorithmes. Enfin, nous
décrivons grâce à elles plusieurs classes fondamentales en théorie de la complexité : la classe P, la classe
NP, la classe des problèmes NP-complets et la classe co-NP.
Abstract.
The aim of this paper is to outline the role of the Turing machines in the field of (algorithms and problems)
complexity for combinatorial optimization. After a brief recall of the historic context in which the Turing
machines are born and have then evolved, we detail their functioning, both for deterministic and
nondeterministic Turing machines. Then we show how to use them in order to define the (time) complexity of
algorithms. Last, we depict several fundamental classes of the theory of complexity : P, NP, the
class of NP-complete problems and co-NP.
AMS Classification :
03D10, 03D15, 68Q05, 68Q15, 68Q17.
*Ecole Nationale Supérieure des Télécommunications, 46 rue Barrault, 75634 Paris cedex 13. |