COMPLEX – Complexit´e, algorithmes randomis´es et approch´es page 3
Exercice 3 Machines de Turing
Pour chacun des probl`emes suivants, donner une description haut-niveau d’une machine de Turing le
r´esolvant. Pour le probl`eme de votre choix parmi ces probl`emes, d´ecrire formellement une machine de
Turing le r´esolvant.
Q 3.1 Etant donn´e un mot wconstitu´e de 0 et de 1, la question est de savoir si wcontient au moins
un 0.
Q 3.2 Etant donn´e un mot wconstitu´e de 0 et de 1, la question est de savoir si wcontient autant de
0 que de 1.
Q 3.3 On consid`ere le probl`eme suivant : ´etant donn´e un mot wconstitu´e de 0 et de 1, la question
est de savoir si west un palindrome ou non.
Rappel : un palindrome est un mot dans lequel l’ordre des lettres reste le mˆeme qu’on le lise de gauche
`a droite ou de droite `a gauche (par exemple kayak et010010 sont des palindromes).
Q 3.4 Etant donn´e un mot wconstitu´e de 0, la question est de savoir si la longueur de west une
puissance de 2 (i.e. la machine de Turing reconnaˆıt le langage {02n|n≥0}).
Exercice 4 Le probl`eme de l’arrˆet
Une machine de Turing prend en entr´ee une chaˆıne (finie) de caract`eres x=x0x1. . . xn−1. A l’ex´ecution,
trois comportements sont possibles :
— La machine s’arrˆete dans l’´etat d’acceptation ;
— La machine s’arrˆete dans un autre ´etat ;
— La machine de s’arrˆete pas (boucle infinie).
Notons qu’une machine de Turing ALGO est ´egalement une chaˆıne de caract`eres, qui repr´esente le
codage de ALGO, et qui sera not´ee algo.
On consid`ere le probl`eme suivant, consistant `a d´eterminer si une machine de Turing s’arrˆete sur un
mot donn´e ou pas. Plus pr´ecis´ement :
— L’entr´ee est constitu´ee d’un couple (algo, x), o`u algo est un mot codant une machine de Turing
ALGO, et xun mot.
— L’entr´ee doit ˆetre accept´ee si et seulement si ALGO s’arrˆete sur x.
Supposons qu’il existe une machine de Turing ARRET (→un algorithme) qui d´ecide ce probl`eme.
Consid´erons maintenant la machine de Turing suivante, appel´ee P ARADOXE, et qui prend en entr´ee
le codage algo d’une machine de Turing ALGO. La machine P ARADOXE est d´efinie de la fa¸con
suivante :
1. Si ARRET (algo, algo) est accept´e, alors boucler ind´efiniment ;
2. Sinon accepter.
Q 4.1 Appliquer P ARADOXE sur l’entr´ee paradoxe. Que se passe-t-il ? Qu’en d´eduisez-vous ?
Exercice 5 2-Sat
Un litt´eral est une variable bool´eenne, ou la n´egation d’une variable bool´eeenne (par exemple xou
x). Une clause est compos´ee de plusieurs litt´eraux li´es par des ∨(par exemple x1∨x2∨x3). Une