Professional Documents
Culture Documents
e
Christophe RAPINE et Denis TRYSTRAM
ENSGI - INP Grenoble
DEA Re
her
he Operationnelle, Combinatoire et Optimisation
Notes de
ours, o
tobre 2003
I
1 Motivation et Introdu
tion
La theorie de la
omplexite
her
he a qualier 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 denir les trois notions intervenant dans la denition 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 denition 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 enn, 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
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 aaire 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
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 denir 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.
5
{ la fermeture iterative L = fw j w = w1 : : : w ; w 2 Lg. La fermeture
n i
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
En parti
ulier la taille d'une instan
e sera denie 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 denir
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 dierentes 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 :
Denition 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
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
ongurations
(s; w) ` (q1 ; w1 ) ` : : : ` (q ; "), ou " denote le mot vide,
'est-a-dire que nous
n
sommes arrives dans la
onguration 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
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 denir de la maniere suivante (entre autres !) :
Denition 2 Un langage L sur un alphabet est regulier ssi il verie 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 innis. 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
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 denit 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
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 veriera 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 innie.
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
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 ee
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
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
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
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 simplier 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 denis
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
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 dierente, 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.
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 deni 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 innies) 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 innie), 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 ee
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 innie, 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 eet 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 inni 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 ee
tive,
il ne
onna^t en eet 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 innie si et seulement si TM-A a
epte
son entree :
TM-B(P ) : si TM-A(P; P ) alors bou
le innie sinon stop
Cette ma
hine, si on l'applique a elle m^eme, rentre dans une bou
le innie 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 ee
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
{ re
her
her parmi les p tentatives possibles s'il existe une
orrespondan
e
n
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 innie (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).
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
ongu-
rations (s; w; Z ) ` (q1 ; w1 ; 1 ) ` : : : ` (q ; "; ). Un mot est a
epte par un
n n
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
ongurations 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
Question 2 : Extension
Une pile est un ruban semi-inni 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 ea
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.
21
5.3 RAM
Ma
hines a a
es aleatoires(ou RAM) ou ma
hines a registres.
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
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.
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
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
23