Vous êtes sur la page 1sur 23

Theorie de la Complexit

e
Christophe RAPINE et Denis TRYSTRAM
ENSGI - INP Grenoble
DEA Re her he Operationnelle, Combinatoire et Optimisation
Notes de ours, o tobre 2003

La omplexite est une notion intuitive dont ha un a fait un jour l'experien e.


Pour un ly een, un probleme de Mathematiques est omplexe lorsqu'il ne voit
pas omment le resoudre ou quand les al uls a mener sont trop longs ou vo-
lumineux. Un adre d'entreprise apprehendera ette notion par un trop grand
nombre de parametres qui rentrent en jeu dans la des ription d'une situation.
Un her heur en biologie trouvera omplexe un phenomene en ore inexplique
qui ne rentre pas dans le adre d'une theorie existante. Les informati iens, dont
l'un des obje ts est la resolution algorithmique de problemes, ont eu besoin de
formaliser ette notion pour identi er les problemes pouvant ^etre resolus sur
un ordinateur, les lassi er en fon tion du temps d'exe ution requis pour les
resoudre ou, a defaut, pour fournir de "bonnes" solutions appro hees.
Ce do ument est le support d'un ours de tron ommun du DEA de Re-
her he Operationnelle, Combinatoire et Optimisation ommun a l'INP Gre-
noble et l'UJF, qui a ueille egalement plusieurs etudiants d'autres lieres et
do torants desirant approfondir la question de la omplexite.
Il omporte quatre parties : des elements de al ulabilite, de maniere a de nir
un modele universel de al ul ; la theorie de la omplexite proprement dite,
redu tions, et lasses ; des elements d'approximabilite qui s'interesse a la om-
plexite de fournir des solutions appro hees pour les problemes d'optimisation ;
en n, une introdu tion a la omplexite parallele et l'autre aspe t de la om-
plexite en theorie de l'information (Kolmogorov).
 ements de Cal ulabilite
El

I
1 Motivation et Introdu tion
La theorie de la omplexite her he a quali er la diÆ ulte intrinseque des
problemes : pourquoi ertains problemes nous semblent moins fa iles a resoudre
que d'autres ? Une reponse possible, evidemment, est que ette diÆ ulte est tres
relative, toute entiere ontenue dans le nous (nous n'avons pas pense a la bonne
methode de resolution). La reponse que nous allons re her her, plus satisfaisante
pour notre ego, est que independemment de notre habilete ertains problemes
requierent une puissan e de al ul superieure aux autres pour leur resolution.
La omplexite d'un probleme sera ainsi mesuree a l'aune du temps minimum
ne essaire a un algorithme pour resoudre le probleme.
Determiner la omplexite d'un algorithme donne, 'est-a-dire son temps
d'exe ution sur les entrees du probleme, n'est pas toujours si simple. Determiner
la omplexite d'un probleme appara^t des lors rien moins qu'ambitieux, puis-
qu'il s'agit de determiner quelle est la plus faible omplexite d'un algorithme de
resolution, parmi tous les algorithmes que nous pouvons imaginer { et bien s^ur
tous eux que nous n'imaginons m^eme pas. . . La theorie de la omplexite est
presentee dans la deuxieme partie de e ours ; nous nous atta hons dans ette
premiere partie a de nir les trois notions intervenant dans la de nition de la
omplexite : qu'est- e qu'un probleme ?, qu'est- e que resoudre un probleme ?,
omment modeliser l'exe ution d'un algorithme ? Cette derniere question ap-
pelle a la de nition d'un modele de al ul : un modele de ma hine \universelle"
pour l'exe ution des algorithmes.
Certains auteurs partent dire tement d'une des ription d'un modele d'exe u-
tion de haut niveau, tel la RAM. Cependant il nous semble plus fa ile a etablir
les liens entre re onnaissan e de langages et resolution de problemes ave une
des ription plus elementaire. Ainsi, nous ommen erons par dis uter de la notion
de probleme et d'algorithme de resolution, puis nous introduirons les automates
d'etats nis ave quelques variantes et en n, la ma hine de Turing. Nous ouvri-
rons a la n de e hapitre une dis ussion sur la al ulabilite et les problemes
inde idables. Si la al ulabilite, qui s'o upe de determiner si une fon tion est
al ulable sur tel ou tel type de ma hine n'est pas le entre de e ours, il est
ne essaire de se demander si le modele de al ul retenu est suÆsamment puis-
sant pour modeliser l'exe ution de tout algorithme. Une se onde interrogation,
qui pourrait ^etre le preambule a ette introdu tion, est de savoir si, pour tout
probleme, il existe un algorithme pouvant le resoudre. . .

2
2 Resolution de Problemes et Re onnaissan e
de Langages
2.1 Quelques problemes
A travers quelques problemes, nous allons introduire simplement la formali-
sation de e qu'est un probleme et un algorithme qui le resout.
1. Savoir si un entier n est un nombre premier ou non ? Ce probleme est
un probleme de de ision : la reponse au probleme est vrai si le nombre
n'admet pas d'autre diviseur que 1 et lui-m^eme, faux sinon. Il para^t p
simple
de repondre a la question en essayant tous les diviseurs entre 2 et n.
2. L'existen e d'un hemin entre deux sommets dans un graphe. Ce probleme
est egalement un probleme de de ision : la reponse au probleme est vrai
si il existe un hemin, faux sinon. Il n'est pas \diÆ ile" de trouver la
reponse en visitant de pro he en pro he les sommets. La omplexite de et
algorithme de re her he est lineaire en le nombre d'ar^etes.
3. Considerons maintenant un probleme plus omplique : determiner un ot
maximum dans un reseau. Ce probleme est un probleme d'optimisation
dont une resolution possible (Ford & Fulkerson) fait appel au probleme
pre edent en saturant une serie de hemins entre la sour e et le puits dans
le reseau residuel.
4. La re her he d'un sous-ensemble de sommets onne tes deux a deux (une
lique) de ardinalite maximale dans un graphe. Ce probleme est diÆ ile
et on ne onna^t pas de solution "satisfaisante" a e jour. Par satisfaisant,
nous entendons une solution autre que l'enumeration exhaustive de tous
les O(2 ) sous-graphes possibles.
n

5. L'existen e d'un pavage du plan par un ensemble de formes geometriques.


La question est de de ider si il est possible en n'utilisant que les formes
qui nous sont donnees et sans avoir de re ouvrement entre elles, de paver
entierement le plan. Ce probleme a ete demontre inde idable.

Enon er un probleme ( al ulatoire) demande simplement la des ription de
ses entrees, et du resultat attendu. Il s'agit don , ni plus, ni moins, de de nir
une fon tion f sur un ensemble de depart, les instan es du problemes, asso iant
a haque instan e le resultat attendu. Nous nous interessons a des problemes
ombinatoires, de nissant un ensemble in ni d'instan es. Resoudre le probleme,
'est ^etre apable pour haque instan e x de fournir le resultat f (x). Donner la
fon tion f en extension, par la liste des ouples (x; f (x)) n'est evidemment pas
une reponse satisfaisante au probleme ! Resoudre le probleme onsiste de fait
a al uler la fon tion f , a donner une pro edure e e tive apable de onstruire
sur haque instan e x son resultat f (x). Resoudre un probleme, 'est donner un
algorithme de resolution.

3
2.2 Problemes de de ision
Un probleme de de ision on erne l'enon e d'une question generique ou la
reponse pour haque instan e est soit oui, soit non, le vrai ou le faux. Une
instan e d'un probleme de de ision pour laquelle la reponse est oui est appele
une instan e positive, sinon elle est dite negative. Cette notion de probleme est
syntaxique, independante de tout modele de al ul : la le ture de l'enon e du
probleme suÆt a determiner si nous avons a aire a un probleme de de ison. En
terme fon tionnel, un probleme de de ision orrespond a la des ription d'une
fon tion a valeur booleenne. Le probleme Rea hability, le deuxieme exemple
de la se tion pre edente, de idant de l'existen e d'un hemin entre 2 sommets
d'un graphe s'enon e formellement :
Rea hability
Instan e : Un graphe G=(V,E) et deux sommets x et y 2 V .
Question : Existe-t-il un hemin de x a y ?
Un probleme de de ision  orrespond ainsi a la des ription d'un ensemble
d'instan es I , partitionne en l'ensemble Y des instan es positives (yes ins-
tan es) et N des instan es negatives (no instan es). Resoudre  orrepond a
de ider pour haque instan e x 2 I si x 2 Y .

I
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
Y
000000000
111111111
000000000
111111111
000000000
111111111
N

x 2 I ; x 2? Y

Les problemes de de ision sont le entre de la theorie de la Complexite. Aussi


allons-nous pour l'instant limiter notre dis ussion a ette lasse de problemes.

2.3 Codage des instan es


Pour e rire et exe uter en ma hine un algorithme de resolution d'un probleme,
il nous faut hoisir une representation des instan es, un odage des entrees du
probleme rendant es donnees a essibles a notre pro edure e e tive.
Ainsi pour le probleme Rea hability, nous pouvons hoisir de representer
un graphe par exemple par sa matri e d'adja en e, ou en ore par des listes
d'adja en e. Le hoix de la representation des instan es n'est evidemment pas

4
anodin ; l'art de l'algorithmique reside pre isement dans le hoix des bonnes
stru tures de donnees. Les impa ts sur la omplexite de l'algorithme portent :
{ sur le temps d'exe ution. Pour Rea hability, un algorithme de re her he
s'exe utera en temps O(m) pour une representation par liste d'adja en e,
mais en temps O(n2 ) pour une representation par matri e d'adja en e.
{ sur la taille du odage. Si nous omptons le nombre de bits ne essaires
a la representation memoire d'un graphe, la representation par matri e
d'adja en e demande O(n2 ) bits, tandis que la representation par liste en
demande O(m log n).
Or nous evaluerons la omplexite d'un algorithme omme son temps d'exe ution
(nombre de pas de al ul de la ma hine) en fon tion de la taille de l'instan e
(espa e memoire ne essaire au odage sur la ma hine). Il nous faudrait don en
toute rigueur de nir la omplexite d'un probleme omme la plus petite om-
plexite d'un algorithme sur le meilleur odage de ses instan es. Nous allons faire
abstra tion du odage en admettant que tous les odages raisonnables d'un
probleme demandent la m^eme taille memoire et onduisent aux m^eme temps
d'exe ution pour un algorithme, a un polyn^ome pres. Nous onsidererons don
impli itement pour haque probleme un odage naturel de es instan es, po-
lynomialement lies a tous les odages raisonnables du probleme. Pour prix de
ette abstra tion, nous ne pourrons pre iser la omplexite d'un probleme qu'a
un polyn^ome pres.

2.4 Re onnaissan e de Langage


Un odage des instan es d'un probleme onduit a une representation des
donnees en memoire. Si nous pensons a un modele d'exe ution sur un ordina-
teur, au niveau elementaire le odage d'une instan e est une suite de bits a 0
ou a 1. Cette suite de bits est un mot sur l'alphabet  = f0; 1g. L'ensemble des
mots odants les instan es du probleme de ni un langage.
Bien que les langages soient des stru tures tres pauvres, la theorie des lan-
gages a de multiples appli ations, en analyse syntaxique, en ompilation,. . . Un
alphabet  est un ensemble ni de symboles, par exemple  = f0; 1g. Un
mot w est une suite nie de symboles de , par exemple w = 0, w = 10001,
w = 000000011. L'ensemble des mots sur  est note  . Un langage L est sim-
plement une partie de  , 'est-a-dire un ensemble de mots.
On peut de rire un langage de di erentes fa ons. En extension, omme l'en-
semble de ses mots, s'il est ni (les langages nis n'ayant que fort peu d'inter^et
pour e qui nous on erne). On peut egalement de rire un langage par une
grammaire, ou en ore par des regles de omposition a partir d'autres langages.
Parmi les ompositions possibles :
{ les operations ensemblistes lassiques : l'union, l'interse tion, la di eren e
symetrique. . .En parti ulier pour un langage L, nous noterons L son omplementaire
dans  , 'est-a-dire l'ensemble des mots n'appartenant pas a L.
{ la on atenation L1 :L2 = fw j w = w1 w2 ave w1 2 L1 ; w2 2 L2 g,

5
{ la fermeture iterative L = fw j w = w1 : : : w ; w 2 Lg. La fermeture
n i

iterative de L (ou fermeture de Kleene) est l'ensemble des mots formes


par une on atenation nie de mots de L.
Le probleme de la re onnaissan e d'un langage L onsiste a de ider pour tout
mot w 2  si w appartient a L. La re onnaissan e de langages est l'abstra tion
par rapport aux odages de la resolution d'un probleme de de ision. Pour un
probleme de de ision , un odage represente ha une des instan es omme un
mot sur un alphabet  de symboles. Nous pouvons ainsi asso ier a  le langage
L onstitue de tous les mots odants, a travers un odage naturel de , les
instan es positives. De ider pour une instan e x si x 2 Y est alors equivalent
a de ider pour le mot w en odant x si w 2 L .

I 
11111111
00000000 11111111
00000000
00000000
11111111
00000000
11111111
00000000
11111111 00000000
11111111
00000000
11111111 00000000
11111111
00000000
11111111
00000000
11111111 odage 00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111 00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
naturel 00000000
11111111
00000000
11111111
00000000
11111111 00000000
11111111
00000000
11111111 00000000
11111111
00000000
11111111
00000000
11111111
Y11111111
00000000
N L
00000000
11111111
00000000
11111111 L

00000000
11111111
00000000
11111111 00000000
11111111

Probleme de de ision  Re onnaissan e de L


x 2 I ; x 2? Y w 2  ; w 2? L

En parti ulier la taille d'une instan e sera de nie par la taille jwj (nombre
de symboles) du mot odant l'instan e dans un odage naturel.

3 Modeles de al ul
Nous avons modelise la resolution d'un probleme de de ision omme la re-
onnaissan e d'un langage, a un odage naturel pres. Il nous reste pour de nir
formellement la omplexite a modeliser l'exe ution d'un algorithme de re on-
naissan e de langage sur une ma hine. Ce i revient a nous donner un modele
de al ul pour juger du temps d'exe ution et de l'espa e memoire requis par un
algorithme.
Les automates vont orrespondre a e modele de al ul. On represente les
automates a partir d'un ruban et d'un me anisme (t^ete de le ture). Les etats
de l'automates et ses transitions representeront les di erentes etapes d'un al-
gorithme. Le ruban orrespondra a la memoire de notre ma hine ou sto ker le
mot d'entree.

6
3.1 Automate d'etats nis
Nous ommen ons par presenter une lasse simple d'automates qui nous ai-
dera a pre iser e que peut ^etre un support d'exe ution.
Le ruban de notre automate est onstitue de ases elementaires sur lesquelles
sont ins rits des symboles appartenant a un alphabet . Une t^ete de le ture est
apable de lire le ontenu de la ase sur laquelle elle est pla ee. Notons que le
ruban est en le ture seule, 'est-a-dire que la t^ete ne peut e rire sur le ruban. Au
debut de l'exe ution, on est dans l'etat initial de l'automate et un mot (l'entree)
est ins rit sur le ruban. La t^ete de le ture pointe sur le premier ara tere de e
mot. A haque etape (transition), on lit le symbole de la ase reperee par la t^ete
de le ture et on la depla e d'une ase vers la droite en al ulant un nouvel etat
pour l'automate. Formellement :
De nition 1 Un automate ni (deterministe) est un quintuplet M = (Q; ; Æ; q0; F )
{ Q est un ensemble ni d'etats,
{  est un alphabet,
{ Æ : Q   ! Q la fon tion de transition,
{ q0 2 Q l'etat initial,
{ F  Q l'ensemble des etats a epteurs.

mot w d'entree
RUBAN a b b b b a a b

Q
TETE Æ
111111
000000
000000
111111
000000
111111
DE LECTURE 000000
111111
000000
111111
000000
111111
000000
111111
fon tion 000000
111111
000000
111111
000000
111111F
de transition 000000
111111
000000
111111
000000
111111
000000
111111

Fig. 1 { Composants d'un automate ni : ruban, 


etats, t^ete de le ture et fon tion
de transition.

Le ouple (q; w) 2 Q   est une on guration de l'automate. La on -


guration (q0 ; w0 ) est derivable en une etape de la on guration (q; w) par l'au-
tomate ni deterministe M (note (q; w) ` (q0 ; w0 )) si, par de nition, 9 2 ,
tel que w = w0 et q0 = Æ(q; ). Plus generalement, la on guration (q0 ; w0 )
est derivable de la on guration (q; w) par l'automate ni deterministe M
(note (q; w) ` (q0 ; w0 )) si, par de nition, il existe k  0 et des on gurations
(q ; w ); 0  i  k telles que :
i i

7
{ (q; w) = (q0 ; w0 )
{ (q0 ; w0 ) = (q ; w )
k k

{ 8i; 0  i  k 1; (q ; w ) ` (q +1 ; w +1 )
i i i i

L'exe ution d'un automate M sur un mot w est la suite des on gurations
(s; w) ` (q1 ; w1 ) ` : : : ` (q ; "), ou " denote le mot vide, 'est-a-dire que nous
n

sommes arrives dans la on guration ou tous les symboles de w ont ete lus. Un
mot w est a epte par un automate ni deterministe M si (s; w) ` (q; ") ave
q 2 F . Le langage a epte par un automate ni deterministe M est l'ensemble
L (M ) des mots a eptes par M .
Nous detaillons i-dessous un exemple d'automate ni deterministe. On les
represente souvent par un graphe oriente ou les sommets sont les etats et les ar s
sont les transitions omme dans la gure 2. On represente par un double er le
les sommets dont l'etat est a epteur et une e he sans etiquette represente
l'etat initial :
b

q0 q1
a
a

Fig. 2 { Automate deterministe re onnaissant fa; bg:fbg

L'automate ni deterministe M ave Q = fq0; q1 g,  = fa; bg, F = fq1 g, et


Æ de ni par :
q q0 q0 q1 q1
 a b a b
Æ(q; ) q0 q1 q0 q1
Le langage a epte par M est L(M ) = fwjw se termine par un bg. On peut
veri er fa ilement que l'exe ution a partir du mot d'entree aaab passe bien par
trois etats q0 , puis s'arr^ete dans l'etat q1 qui est a epteur. Il appartient bien
au langage L(M ). On veri era fa ilement que et exemple fournit un automate
orrespondant a la resolution du probleme de de ider si un entier est pair pour
un odage binaire.

Puissan e des automates d'etats nis


Nous pouvons nous demander quelle est la puissan e d'expression des auto-
mates d'etats nis : peuvent-ils re onna^tre tous les langages ?

8
On peut montrer que les langages re onnus par les automates nis sont
exa tement les langages reguliers : tout langage re onnu par un automate ni
est regulier, et tout langage regulier peut ^etre re onnu par un automate ni. Les
langages reguliers peuvent se de nir de la maniere suivante (entre autres !) :
De nition 2 Un langage L sur un alphabet  est regulier ssi il veri e l'une
des onditions suivantes :
{ L est un singleton (ne ontient qu'un seul mot),
{ Il existe deux langages reguliers L1 et L2 tels que L = L1 [ L2 , ou L =
L1 :L2 ou en ore L = L1 .
Par exemple, le langage L sur l'alphabet fa; bg onstitue des mots qui se
terminent par un b est regulier, on peut l'e rire L = (fag [ fbg) :fbg.
Pour montrer qu'il n'y a pas que des langages reguliers, il suÆt de remar-
quer qu'il n'y a pas assez de fa ons de les onstruire a partir des singletons pour
representer tous les langages. La preuve est simple par des arguments ombina-
toires de mise en orrespondan e - bije tion - d'ensembles in nis. L'ensemble des
langages reguliers est denombrable, alors qu'il y a un nombre non denombrable
de langages.
Un exemple simple de langage non regulier est elui onstitue par des pa-
lindromes a partir d'un alphabet initial de deux lettres. De m^eme le langage
ompose des mots de la forme a b sur l'alphabet a deux lettres a et b ne peut
n n

^etre re onnu par un automate ni.


La demonstration utilise la te hnique dite du lemme de l'etoile qui vaut la
peine qu'on la detaille : supposons par l'absurde qu'un automate ni A re onna^t
le langage L = fa b g. Comme L est in ni, il ontient un mot w de taille
n n

superieure au nombre d'etats m de A. Lors de la re onnaissan e de w, A passe


don for ement deux fois par un m^eme etat. Le mot w peut don se de omposer
sous la forme w = xuy, ou le sous-mot u orrespond aux symboles lus entre
les deux o urren es du m^eme etat. Le mot w0 = xu2 y est don ne essairement
re onnu par A, or on peut montrer par une simple etude de as sur u que w0
n'est pas dans L.

3.2 Automate d'etats nis non deterministe


Pour augmenter la puissan e des automates nis et re onna^tre ainsi plus
de langages, nous pouvons essayer de onsiderer leur version non deterministe.
Les automates nis non deterministes sont des automates nis ou l'on permet
plusieurs transitions orrespondant a la m^eme lettre au depart de haque etat.
On peut s'autoriser des transitions sur le symbole vide " dans les automates
nis non deterministes (sans avan er la t^ete de le ture). De plus, on peut avoir
des transitions sur plusieurs symboles, 'est-a-dire dire tement sur des mots de
 .
De nition 3 Un automate d'etats nis non deterministe M est un quintuplet
M = (Q; ; ; q0 ; F ) tel que :

9
{ Q est un ensemble ni d'etats,
{  est un alphabet,
{   (Q    Q) la relation de transition ( n'est pas une fon tion :
elle peut asso ier plusieurs etats a la le ture d'un m^eme symbole.),
{ q0 2 Q l'etat initial,
{ F  Q l'ensemble des etats a epteurs.
Nous donnons i-dessous un exemple d'automate ni non deterministe, represente
gure 3. Cet automate M se de nit par Q = fq0 ; q1 ; q2 g,  = fa; bg, F = fq2g,
et la relation  :

q q0 q0 q0 q1 q1
 a a b a b
(q; ) q0 q1 q0 q2 q2

a
a
q0 q1 q2
a
b

Fig. 3 { Un automate ni non deterministe

Plusieurs exe utions sont en general possibles sur un m^eme mot. Pour que le
mot soit a epte, il suÆt que l'une d'entre elles onduise a un etat a epteur. Le
le teur veri era fa ilement que le langage asso ie a l'exemple est : L(M ) = fwjw
possede un a en avant-derniere position g.
Le non determinisme semble rendre nos automates nis apables de re-
onna^tre plus de langages, du fait qu'une seule exe ution onduisant a un etat
a epteur suÆt pour a epter un mot. Il n'en est rien : pour tout automate
ni non deterministe, on peut onstruire un automate ni deterministe re on-
naissant le m^eme langage. La demonstration n'est pas diÆ ile, elle onsiste a
expli iter systematiquement les transformations de l'un a l'autre ( reation d'un
nouvel etat pour les transitions multiples, serialisation des transitions des tran-
sitions sur plusieurs ara teres, et .). Les automates nis, deterministes ou non
deterministes, re onnaissent don exa tement les langages reguliers.
Il existe plusieurs plusieurs fa ons pour enri hir la puissan e des automates
d'etats nis. On peut par exemple lui adjoindre une pile in nie. e i est suÆsant

10
pour permettre par exemple de re onna^tre le langage a b (on empile les a et
n n

on depile tant qu'il reste un b sur le ruban). e i fait l'obejt de l'exer i e ?? a


la n du hapitre. Ce ours n'est pas entre sur la theorie des langages, passons
don dire tement aux ma hines de Turing.

3.3 Ma hine de Turing


Pour etendre la puissan e des automates nis, nous allons ajouter la possibi-
lite, en plus de lire sur le ruban, de pouvoir e rire sur le ruban et de ontroler le
depla ement de la t^ete de le ture/e riture. Comme pour les automates d'etats
nis, le mot d'entree est initialement ins rit sur le ruban, mais nous avons main-
tenant potentiellement a es a une memoire in nie en le ture/e riture.
Nous allons presenter dans ette se tion la ma hine de Turing de base. C'est
un modele de al ul qui date de 1936, avant m^eme l'existen e de l'Informatique
et des ordinateurs. La ma hine de Turing (TM en abrege) est un automate
onstitue d'une memoire qui est un ruban in ni dans les deux sens divise en
ases elementaires, ontenant ha une un symbole d'un alphabet ; d'une t^ete
de le ture-e riture qui pointe sur une ase du ruban et en lit le ontenu ou y
e rit un symbole, et qui peut se depla er sur le ruban suivant 2 mouvements
elementaires (d'une ase vers la gau he ou vers la droite) ; d'une unite de ontr^ole
nie de ni par un ensemble d'etats et une fon tion de transition. Cette fon tion
de transition est plus omplexe que pour un automates d'etat ni. Elle donne
pour haque etat de la ma hine et haque symbole lu par la t^ete de le ture, l'etat
suivant, un nouveau symbole a e rire et le mouvement de la t^ete de le ture.
De nition 4 Une TM est un septuplet (Q; ;  ; Æ; ; q0; q ) :
E A

{ Q est l'ensemble des etats


{ est l'ensemble des symboles que l'on peut utiliser sur le ruban
{  est l'alphabet d'entree (  )
{ Æ est la fon tion de transition de Q  dans Q   fL; R; S g ou L et
R sont les depla ements respe tivement vers la gau he et vers la droite, S
est la position stationnaire
{  est le symbole blan ( 2 )
{ q0 est l'etat initial et q est l'etat a epteur.
A

Initialement, la t^ete de le ture pointe sur le premier ara tere du mot d'entree.
Toutes les autres ases ontiennent le ara tere  (blan ). La ma hine se trouve
dans l'etat initial q0 . L'exe ution d'une pro edure e e tive sur une TM onsiste
su essivement a lire le symbole sous la t^ete de le ture-e riture, a rempla er e
ara tere par le symbole indique par la fon tion de transition, puis a depla er
la t^ete et a hanger d'etat onformement a la fon tion de transition.
A titre d'exemple nous donnons gure 4 une TM pour la re onnaissan e du
langage L = fa b jn  1g sur l'alphabet  = fa; bg. La fon tion de transition Æ
n n

est representee par les ar s de l'automate, en annotant haque ar du ara tere

11
a a a b b b   

(a; R) (b; R)
a b
(b; R)
q1 q2
(; R) b
a  q R
a  (; L)
q0 ; b q3
b
 (; L)
(; R) (a; L)
q5 a q4 qA


a b
(a; L) (b; L)
Fig. 4 { Une ma hine de Turing re onnaissant le langage a b n n

lu provoquant la transition, et du ouple (; D) pre isant le ara tere a e rire et


le depla ement a e e tuer. Cette ma hine rempla e su essivement le premier
a et le dernier b du mot du ruban par un blan . Un mot w onduit a l'etat
a epteur q si l'exe ution onduit a un ruban ne ontenant que des blan s .
A

Nous avons ajoute un etat rejeteur q atteint pour les mots w 2= L.


R

La ma hine du Turing de l'exemple pre edent n'est pas la seule pouvant


re onna^tre le langage L. En parti ulier, nous aurions pu plus naturellement
ompter le nombre de a et de b du mot. La di eren e fondamentale des ma-
hines de Turing par rapport aux automates d'etats nis est, gr^a e a l'a es en
e riture du ruban, de pouvoir manipuler l'arithmetique. Ainsi une ma hine de
Turing peut non seulement re onna^tre un langage, mais peut egalement al u-
ler un resultat, en e rivant sur sa bande.
Par exemple, la TM suivante ( gure 6) al ule l'in rement d'un entier ode
en binaire. Cette ma hine est donnee par  = f0; 1g, = f0; 1; g, Q = E

fq0 ; q1 ; q2 ; q g, et la fon tion de transition Æ :


f

12
etat symbole lu etat symbole e rit depla ement
q0 0 q0 0 R
q0 1 q0 1 R
q0  q1  L
q1 0 q2 1 L
q1 1 q1 0 L
q1  q2 1 L
q2 0 q2 0 L
q2 1 q2 1 L
q2  qf  R

  1 0 0 1 1 1   

(1; R) (0; L) (1; L)


1 1 1
(; L) (1; L) (; R) q
q0 q1 q2
 0;  
f

0 0
(0; R) (0; L)
Fig. 5 { Une ma hine de Turing al ulant l'in rement d'un binaire

L'entier est ode en binaire sur la bande par un mot sur l'alphabet f0; 1g,
ave le bit de poids faible a droite et elui de poids fort a gau he. A l'initiali-
sation, la t^ete de le ture se situe au debut du mot, sur le bit de poids fort du
nombre (nous supposons pour simpli er que le mot est pre ede sur la bande
d'un blan ). Dans l'etat q0 , la ma hine par ourt alors le mot pour atteindre le
bit de poids faible, en her hant l'o urren e du premier blan . L'etat q1 sert
a remonter le mot en propageant la retenue ; l'etat q2 permet de repositionner
la t^ete de le ture/e riture au debut du mot.
Le temps de al ul et l'espa e memoire requis pour l'exe ution d'un algo-
rithme sur une entree w sont de nis omme le nombre de transitions ne essaires
a la ma hine de Turing pour aboutir a un etat a epteur et omme le nombre de
ases utilisees sur le ruban. Cette des ription est don tres bas niveau, puisqu'elle

13
revient a ompter les instru tions ma hines exe utees et les bits memoires. Rap-
pelons ependant que nous n'evaluerons le temps et la memoire qu'a un po-
lyn^ome pres, e qui nous evitera des analyses fastidieuses.
w

q0

TEMPS
D'EXECUTION

q
f

ESPACE MEMOIRE
Fig. 6 { Le temps d'exe ution et l'espa e memoire sur une ma hine de Turing

Puissan e des ma hines de Turing


La ma hine de Turing est le modele de al ul que nous adopterons pour
modeliser l'exe ution d'un algorithme. Nous pouvons nous demander si e modele
est suÆsamment puissant, 'est a dire si nous avons simplement le \droit" de
faire ela !
La reponse n'a rien d'evident en soi. Les ma hines de Turing, si elles re on-
naissent un ensemble de langages beau oup plus vastes que les seuls langages
reguliers re onnus par les automates d'etats nis, ne re onnaissent pas tous les
langages. Mais tout langage peut-il ^etre de ide par un algorithme ? La reponse
est non. La these de Chur h-Turing stipule que tout modele \raisonnable" de
al ul est equivalent au modele de la ma hine de Turing. C'est une these au
sens premier du terme, qui peut egalement ^etre enon ee omme : les langages
pouvant ^etre re onnus par une pro edure e e tive sont exa tement eux pou-
vant ^etre de ides par une ma hine de Turing. Nous admettrons pour la theorie
de la omplexite ette these, 'est a dire l'equivalen e entre ma hine de Turing
et algorithmes (pro edures e e tives).
Pourquoi la ma hine de Turing s'appelle-t-elle . . .une ma hine ? Si une er-
taine \ma hinerie" intervient (ruban, t^ete de le ture,. . .) nous onsiderons une

14
ma hine de Turing omme le modele de l'exe ution d'un algorithme, en quelque
sorte son ablage en dur a travers les etats et les transitions de l'automate. Et
nous ontinuerons a faire ainsi dans la suite de e do ument. Cependant nous
pourrions aussi avoir une vision di erente, similaire au modele de Von Neumann
pour les ordinateurs, dans laquelle l'automate est une unite de ontr^ole \univer-
selle" qui her he sur le ruban a la fois les donnees et les instru tions a exe uter ;
un algorithme est alors dire tement ode par un mot sur le ruban, representant
les etats et les transitions de sa ma hine de Turing.

Variantes de la ma hine de Turing


On distingue plusieurs variantes de la ma hine de Turing elementaire : ru-
bans multiples, rubans in nis d'un ^ote seulement, transitions non deterministes,
et ..
On peut montrer tout d'abord que les ma hines a une ou plusieurs bandes
sont equivalentes. Notre modele de ma hine multi-bandes est onstitue de k
t^etes de le ture, a transition syn hrone. On suppose que haque bande a le m^eme
ensemble de symboles, e i n'est pas obligatoire mais simpli e la presentation.
Plus pre isement, on her he a etablir que si un langage L est a epte par
une ma hine de Turing a k bandes alors, il existe une ma hine a une bande qui
re onnait L.
La preuve est onstru tive, elle est basee sur la notion de piste. Considerons
une TM a k bandes et derivons une ma hine a une bande TM' ave 2k pistes
qui simule TM, haque bande orrespondant a 2 pistes : la piste 2i 1 a des
blan s partout sauf dans la position reperee par la t^ete de le ture. La piste 2i
ontient les informations de la bande i. En d'autres termes, les k bandes sont
rempla ees par une seule bande ontenant 2k ases, dont une moitie orrespond
aux informations-symboles et l'autre moitie sert a retrouver les transitions. TM'
a un alphabet plus grand pour pouvoir oder haque 2-uplet en un seul sym-
bole. Par exemple, la TM simulant une TM a deux bandes sur l'alphabet f0; 1g
aura un alphabet sur f00; 01; 10; 11g. TM' fon tionne en visitant a haque etape
les k ases reperees dans TM. Cette operation est deli ate et suppose que les
etats ontiennent aussi l'indi ation sur l'endroit ou se trouve les t^etes sur haque
bande (gau he ou droite par exemple). On peut imaginer des pro edures plus
sophistiquees et o^uteuses, omme un depla ement a droite, 2 a gau he, 4 a
droite, et ainsi de suite. On revisite ensuite les ases marquees et on e e tue la
transition orrespondante.
On peut montrer de m^eme l'equivalen e d'une TM elementaire a bandes
in nies ave une TM dont le ruban est limite d'un ote (par exemple a gau he).
L'exer i e 5.2 detaille la onstru tion d'une TM in ni d'un seul ^ote a partir
d'une TM a ruban in ni des 2 otes.

15
Une variante fondamentale : le non determinisme
La derniere variante a onsiderer est la TM non deterministe. Cette a-
ra teristique est importante, elle est a l'origine des lasses de omplexite.
Le determinisme est de ni par l'uni ite du hoix que l'on peut obtenir a
haque transition. On peut au ontraire envisager plusieurs transitions possibles
a haque etape : on a alors potentiellement un grand nombre d'exe utions pos-
sibles ( ertaines pouvant ^etre in nies) a partir d'un seul mot d'entree, et on dira
que le mot est a epte s'il est a epte dans au moins une de es exe utions. On
peut alors montrer, omme pour les automates, que et ajout ne hange pas la
puissan e d'expression des ma hines de Turing : en introduisant un nombre suf-
sant de nouveaux etats, on peut transformer toute ma hine non-deterministe
en une ma hine deterministe qui re onna^t le m^eme langage (mais en un temps
potentiellement beau oup plus long).
Il est evident qu'un langage a epte par une TM deterministe peut l'^etre par
une TM non deterministe. Nous allons demontrer la re iproque :
La preuve est une fois en ore onstru tive. Nous montrons qu'un langage
a epte par une TM non deterministe a une bande peut l'^etre par une TM
deterministe a trois bandes. Intuitivement, on va explorer toutes les exe utions
possibles non pas les unes apres les autres ( ar on risque de tomber sur une
exe ution in nie), mais en xant a l'avan e un nombre n de transitions maxi-
mum et en onsiderant toutes les exe utions de longueur n, et si au une ne mene
a un etat a epteur, en envisageant n + 1 transitions. Cela revient a par ourir
l'arbre de toutes les exe utions possibles en largeur et non en profondeur.
Notons r le nombre maximum de hoix possibles pour haque transition.
Sur le premier ruban, on va oder l'historique des hoix que l'on a envisages, en
les generant par exemple dans l'ordre lexi ographique (on utilise pour ela un
alphabet de r symboles). Sur le se ond on onserve le mot initial pour pouvoir
re ommen er une nouvelle exe ution ave un autre hoix. Et le troisieme ruban
sert a e e tuer le al ul proprement dit. Des que la ma hine du troisieme ruban
dete te un etat a epteur, le mot d'entree est re onnu.
En on lusion augmenter les fon tionnalites de la ma hine de Turing ne sert
a rien : la ma hine simple a eptera les m^emes langages, e qui est onforme a la
these de Chur h-Turing. I i, on ne se pose pas (en ore) la question de l'eÆ a ite
et de la performan e d'une ma hine...

4 Inde idabilite
Les ma hines que nous avons onstruites permettent de repondre "oui" pour
tous les mots d'un langage et "non" pour tous les mots n'appartenant pas a e
langage. On dit que la ma hine a epte ou n'a epte pas es mots. Il se peut
ependant que la ma hine ne s'arr^ete pas pour un mot n'appartenant pas au
langage, qu'elle ne puisse pas de ider si un mot appartient a e langage, mais

16
omment dis erner si une exe ution est in nie, ou simplement tres longue ?
Les modeles de al ul ont interesse les logi iens et mathemati iens depuis le
debut du sie le dernier, avant m^eme l'apparition des ma hines. Depuis Hilbert
en 1890, jusqu'a Turing, Chur h, Godel, Post dans les annees trente... Avant
m^eme l'apparition des ordinateurs, Godel montrait l'existen e d'enon es impos-
sibles a demontrer mathematiquement, omme le probleme du pavage du plan
par des polyminos quel onques. ette notion (l'inde idabilite) a ete largement

utilisee en Informatique depuis. Etablir qu'un probleme est inde idable est plus
fort que dire simplement qu'on ne sait pas le resoudre. Il est en e et alors inutile
d'en her her une solution algorithmique, on peut mieux erner les problemes a
resoudre. Si un probleme est inde idable, on her hera a le relaxer pour pouvoir
resoudre un sous-probleme. Nous allons developper un exemple simple qui uti-
lise un argument dire t (par ontradi tion). Plus generalement, il existe deux
types de preuve. La prin ipale te hnique est la te hnique de diagonalisation
qui onsiste a partir d'un ensemble in ni a onstruire un nouvel element qui
n'est pas dans et ensemble. Ce i a permi en parti ulier d'etablir que l'ensemble
des nombres reels n'est pas denombrable. iLa se onde te hnique est elle de la
redu tion dont nous reparleons largement dans le hapitre suivant et qui sert a
prouver l'intra tabilite des problemes.

Halting problem
Instan e : Un programme e rit dans un langage donne et une entree
Question : Le programme s'arr^ete t-il sur ette entree ?
Le Halting problem ou probleme de l'arr^et n'est pas une pro edure e e tive,
il ne onna^t en e et pas de solution al ulable, il est inde idable.
Nous detaillons maintenant un exemple de demonstration d'inde idabilite
sur e probleme. Nous partons de la these de Chur h-Turing qui stipule que
toute ma hine programmable peut ^etre simulee par une ma hine de Turing et
ainsi, montrer le resultat a partir d'une ma hine de Turing.
Supposons par ontradi tion que Halting problem soit de idable. Dans e
as, il existe une ma hine de Turing (que nous appellerons TM-A) qui s'arr^ete
sur "oui" ou "non" si l'on e rit sur son ruban les instru tions d'un programme
quel onque et ses donnees. Cette ma hine TM-A, etant donne un programme P
en entree et un mot w, peut-^etre onsideree omme une fon tion booleenne :
TM-A(P; w) (s'arr^ete et) retourne la valeur vrai si le programme P s'arr^ete
pour l'instan e w
(s'arr^ete et) retourne Faux si P ne s'arr^ete pas pour l'instan e w.
Supposons que TM-A soit onstru tible, alors on peut reer une autre ma-
hine TM-B qui rentrera dans une bou le in nie si et seulement si TM-A a epte
son entree :
TM-B(P ) : si TM-A(P; P ) alors bou le in nie sinon stop
Cette ma hine, si on l'applique a elle m^eme, rentre dans une bou le in nie si
et seulement si elle s'arr^ete lorsqu'on l'applique a elle-m^eme. Cette ontradi tion

17
permet d'aÆrmer que TM-A(P; w) n'existe pas.
La demonstration d'inde idabilite pre edente etait dire te. Il existe un autre
type de demonstration ou l'on deduit l'inde idabilite a partir d'un autre probleme
dont on sait qu'il est inde idable. C'est par exemple le as du elebre probleme
de Post, qui est assez simple pour nous permettre d'illustrer ette methode de
resolution. On montre l'inde idabilite du langage L2 onnaissant elle du lan-
gage L1 . S'il existe une pro edure e e tive qui de ide de L2 alors il en existe une
qui de ide de L1 . On onstruit une pro edure qui de ide de L1 en se servant de
L1 omme sous-pro edure. On on lut que L2 est inde idable ar si l'etait, L1
le serait aussi. Remarquons i i que la redu tion n'est pas dans le m^eme "sens"
que la redu tion polyn^omiale pour prouver qu'un probleme est NP- omplet. I i,
on englobe le probleme dont on sait qu'il est inde idable par le probleme dont
on veut montrer qu'il l'est.
POST
Instan e : Deux listes de mots (m1 ; m2 ; _;m ) et (n1 ; n2 ; _;n ) onstruits sur
p p

le m^eme alphabet  .
Question : Peut-on juxtaposer des mots de la premi ere liste de telle sorte
que le mot obtenu soit le m^eme qu'en juxtaposant de la m^eme fa on les mots
de la se onde liste ?
Par exemple, sur l'alphabet f0; 1g, onsiderant les deux listes f0; 11; 101g et
f01; 1; 01g, on peut faire orrespondre les deux listes en juxtaposant les mots en
positions 1; 2; 1 et 3 (on obtient alors 0110101).
Ce probleme est inde idable : au un algorithme ne peut indiquer s'il existe
une mise en orrespondan e quelles que soient les listes de depart. Montrons le
theoreme de Ri e a partir de e probleme. Ce resultat stipule qu'il est impos-
sible de de ider a priori de l'utilite d'une ertaine partie d'un programme. Le
prin ipe est une fois en ore par ontradi tion : supposons que e probleme soit
de idable et montrons qu'alors le probleme de POST l'est aussi.
Supposons don qu'il existe un algorithme (note (A)) qui permette d'indiquer
en temps ni que tout partie de ode de tout programme soit utile ou non. On
onsidere alors la sous-famille de programmes de la forme suivante :
{ Programmer P dependant des listes (m1 ; m2 ; : : : ; m ) et (m01 ; m02 ; : : : ; m0 ).
p

{ pour n=1 jusqu'a 1


p

{ re her her parmi les p tentatives possibles s'il existe une orrespondan e
n

de Post utilisant n mots


{ si la reponse est positive alors repondre "oui"
On applique l'algorithme (A) a P et a la partie nale. Ce i indique si le
probleme de Post asso ie aux parametres de P admet ou non une solution.
(f ) est utile si et seulement si pour tous parametres de P, POST admet
une solution. Disposer de (A) permettrait don de resoudre le probleme de
Post. Comme elui- i est inde idable, l'hypothese sur (A) est don fausse et le

18
probleme de Ri e est inde idable.
On peut donner un exer i e simple de redu tion : prouver que le probleme
de l'arr^et sur mot vide est inde idable en utilisant l'inde idabilite du probleme
de l'arr^et.
La notion d'inde idabilite est fortement liee a la notion de langages re ursivement
enumerables. On peut egalement montre que la satisfaisabilite d'une formule lo-
gique du al ul des predi ats du premier ordre est inde idable...

19
5 Exer i es
5.1 Automates a Pile
Pour etendre la puissan e des automates nis, on ajoute a un automate (non
deterministe) une memoire in nie (par exemple une pile). L'idee i i est de faire
uniquement des manipulations sur le haut de la pile. Remarquons que e i a
onduit a des ma hines realisees pratiquement (langage fourth par exemple).

De nition 5 Un automate a pile M est un tuple M = (Q; ; ; ; Z; q0 ; F )


ou :
{ Q est un ensemble ni d'etats,
{  est un alphabet d'entree,
{ est un alphabet de pile,
{   ((Q     )  (Q   )) la relation de transition (ensemble ni),
{ Z 2 est le symbole initial de la pile,
{ q0 2 Q l'etat initial,
{ F 2 Q l'ensemble des etats a epteurs.
Le triplet (q; u; ) 2 Q     est une on guration. La on guration
(q0 ; w0 ; 0 )
est derivable en une etape de la on guration (q; w; ) par l'automate
a pile M (note (q; w; ) ` (q0 ; w0 ; 0 )) si
9u 2  ; ; Æ; 2  ; w = uw0 ; = Æ; 0 = Æ et ((q; u; ); (q0 ; )) 2 
.
Une on guration C 0 est derivable en plusieurs etapes de la on guration C
par l'automate a pile M (C ` C 0 ) si 9k  0 et C0 ; : : : ; C des on gurations
k

telles que :
{ C = C0 ,
{ C0 = C , k

{ C ` C +1 ; 8i; 0  i < k.
i i

L'exe ution d'un automate a pile M sur un mot w est la suite des on gu-
rations (s; w; Z ) ` (q1 ; w1 ; 1 ) ` : : : ` (q ; "; ). Un mot est a epte par un
n n

automate a pile M si (s; w; Z ) ` (q; "; ) ave q 2 F . Le langage a epte par


M
un automate a pile M est l'ensemble L(M ) des mots a eptes par M .
Exemple : soit P1 = (fs; p; qg; fa; bg; fA; Z g; ; Z; s; fqg)
ave  : f ((s; a; "); (s; A))
((s; "; Z ); (q; "))
((s; b; A); (p; "))
((p; b; A); (p; "))
((p; "; Z ); (q; "))g

20
P1 est un automate a pile.
Sur et automate, on a la derivation (p; baba; AAZ ) ` (p; aba; AZ ) par :
{ p = q, p = q0 , w = baba, w0 = aba, = AAZ , 0 = AZ ,
{ u = b, = A, = ", Æ = AZ ,
{ ((p; b; A); (p; ") 2 .
Le mot aabb est a epte par P1 par (s; aabb; Z ) ` 1 (q; "; Z ) :
P

on gurations transitions
(s; aabb; Z ) ((s; a; "); (s; A))
(s; abb; AZ ) ((s; a; "); (s; A))
(s; bb; AAZ ) ((s; b; A); (p; "))
(p; b; AZ ) ((p; b; A); (p; "))
(p; "; Z ) ((p; "; Z ); (q; "))
(q; "; ")

Question 1
Plus generalement, l'automate P1 a epte exa tement le langage fa b j n 2
n n

N g. Cependant, on peut montrer que les mots de la forme a b ne peuvent


n n n

^etre re onnus, e qui motive la re her he d'un modele plus puissant.

Question 2 : Extension
Une pile est un ruban semi-in ni muni d'une t^ete de le ture ave une ontrainte
parti uliere pour le depla ement de la t^ete : lorsque elle- i se depla e vers l'ori-
gine (a gau he), le ontenu du ruban a droite de la t^ete est e a e. On dispose
de plus d'une fon tion qui permet de tester si la pile est vide (par exemple en
utilisant un symbole spe ial de fond de pile).
Montrer que l'on peut simuler n'importe quelle ma hine de Turing a l'aide
d'une ma hine a deux piles.

5.2 Ma hine de Turing a ruban in ni d'un seul ote


La preuve de e resultat s'obtient par un prin ipe analogue a pre edemment
en simulant une TM a ruban in ni des deux otes par une TM a ruban ni d'un
ote possedant trois pistes. Deux des pistes sont symetriques a partir d'une ase
donnee, elles ontiennent les informations de la TM de referen e. On utilise
une bande supplementaire pour indiquer sur laquelle des deux pistes se trouve
l'information ourante.

21
5.3 RAM
Ma hines a a es aleatoires(ou RAM) ou ma hines a registres.

5.3.1 Des ription


Le modele de al ul RAM a ete introduit par Shepherdson et Sturgis en
1963 dans le adre du al ul sur des entiers, puis etendu aux nombres reels en
1989 par Blum, Shub et Smale. I i, on pourrait faire un exer i e ! On en trouve
une des ription simple dans les ouvrages de Aho, Hop roft et Ullman et plus
re emment de Wolper ou De Rougement...
C'est un modele qui se rappro he des ordinateurs que nous manipulons tous
les jours. Informellement, une RAM est une ma hine omposees d'un nombre ni
de registres R (plus un ompteur d'instru tions CO et un a umulateur ACC)
i

pouvant ontenir des entiers de longueur non bornee. Un programme tournant


sur une RAM est onstitue d'une suite nie d'instru tions. Les instru tions
typiques sont les mouvements en memoire (READ, STORE), les a es aux re-
gistres (LOAD), les operations de base (ADD), les bran hements (JUMP), et ..
On ajoute deux instru tions ST OP et ST OP qui terminent un programme
A R

dans un etat a epteur ou non. On dit qu'un programme a epte l'entree x s'il
atteint l'instru tion ST OP .A

Attention i i : Wolper parle de registres nis et d'une memoire in nie... C'est


sans doute un peu plus simple.
L'entree est de rite par les ontenus des registres R (pour 0  i  n, ACC
i

etant onsidere omme le registre R0 ). Une des ription instantanee de l'etat d'un
programme est un ouple (j; v) ou j est la valeur du ompteur d'instru tions et
v est le ve teur des n + 1 valeurs des registres.
{ L'etat initial est (0; (0; x(1); : : : ; x(n)).
{ Une transition de j a j 0 est une relation qui donne la nouvelle valeur
du ompteur d'instru tions et des registres apres l'exe ution de la jeme
instru tion du programme.
On distingue deux modeles de o^ut pour la mesure du temps d'exe ution d'un
programme sur une RAM : le modele uniforme ou haque instru tion est de o^ut
unitaire et le modele logarithmique ou il depend logarithmiquement de la taille
des operandes. La mesure en espa e represente le nombre de registres utilises
dans le programme et leurs longueurs, independamment de leurs entrees-sorties.

5.4 Liens RAM et TM


Nous montrons dans ette se tion qu'un probleme est de idable sur une TM
en temps polynomial si et seulement si il est de idable en temps polynomial sur
une RAM.
Considerons une TM qui a epte ou rejette une entree x. On peut de nir un
programme sur une RAM qui simule ette ma hine de Turing en asso iant un

22
registre R1 a la t^ete de le ture (plus pre isement, il ontient la valeur en binaire
de sa position) et telle que le ode du symbole x(i) du mot d'entree soit pla e
dans le registre R +1 .
i

Chaque etat de la TM orrespond a une etiquette du ompteur d'instru tions


(CO ). A ette etiquette, le programme veri e si le symbole dont l'adresse se
q;a

trouve dans le registre R1 est bien a. Si e n'est pas le as, le programme s'arr^ete
et rejette x (ST OP ). La transition Æ(q; a) = (q0 ; #; D) est obtenue de la fa on
R

suivante : A FINIR - Qu'en penses-tu ?

23