Vous êtes sur la page 1sur 285

Cours de calculabilite

et complexite
Prof. Jean-Francois Raskin
Departement dInformatique
Faculte des Sciences
Universite Libre de Bruxelles
Annee academique 2009-2010
Organisation pratique du cours :
References Introduction `a la calculabilite,
Pierre Wolper, InterEditions, 1991.
Computational Complexity, Christos H.
Papadimitriou, Addison Wesley, 1994.
Computers and Intractability - A Guide
to the Theory of NP-Completeness, M.
R. Garey and D. S. Johnson, Editor:
W.H. Freeman and Compagny, 1979.
Introduction to the theory of computa-
tion. Michael Sipser, PWS Publishing
Compagny, 1997.
Il est fortement recommande de se pro-
curer la premi`ere reference, et de consulter
les deux autres !!!
Materiel Les slides utilises lors des cours seront
disponibles sur la page web du cours.
1
Plan du cours
Introduction - Motivations
Notions de probl`emes et dalgorithmes
Cardinalite des ensembles - Diagonale de
Cantor
Mod`eles de calcul
les machines de Turing
les fonctions recursives
(le lambda calcul)
Equivalences des mod`eles de calcul et th`ese
de Church
2
Indecidabilite - Decidabilite
Complexite
complexite en temps et en espace
reduction
intractabilite
P versus NP
Complement de complexite (en option)
calculs parall`eles
espace logarithmique
espace polynomiale
Introduction et motivations (I)
Dans dierentes branches de la science, il y a
des resultats `a la vue desquels nous pouvons
tout de suite conclure que certaines pretendues
inventions sont impossibles :
un moteur qui ne consomme pas denergie
base sur le principe du mouvement perpetuel
(en contradiction avec les lois fondamen-
tales de la physique);
un chauage revolutionaire fournissant de
la chaleur et qui ne consomme pas denergie.
...
Il est interessant de noter que pour refuter de
telles inventions, il est inutile detudier ces in-
ventions en details pour y trouver une faille.
Nous pouvons les rejeter `a priori.
3
Introduction et motivations (II)
En est-il de meme pour certains projets en in-
formatique. Y a-t-il des limites `a ce que nous
pouvons faire avec un ordinateur, des limites `a
ce que nous pouvons calculer ?
Cest en eet, le cas : tout nest pas calcu-
lable ! Dans ce cours, nous allons essayer de
comprendre les limites de linformatique :
nous verrons quil existe, en eet, des pro-
bl`emes qui nont pas une solution algorith-
mique.
nous verrons egalement que certains probl`e-
mes nont pas de solutions satisfaisantes en
terme decacite.
4
Introduction et motivations (III)
Quand un informaticien tente resoudre un probl`eme
et quil ne parvient pas `a resoudre ce probl`eme,
il adopte generalement deux attitudes :
(version optimiste) il se dit : je pense que
je suis proche de reussir, je vais corriger
quelques details et ajouter les derniers cas
que mon algorithme ne consid`ere pas;
(version plus realiste) il se dit : je suis
parti sur de mauvaises bases, je vais recom-
mencer `a zero...
5
Introduction et motivations (III)
Apr`es avoir suivi ce cours, ce meme informati-
cien se rendra peut-etre compte que :
le probl`eme quil est cense resoudre est in-
soluble algorithmiquement : il nexiste au-
cun algorithme qui peut le resoudre et il
nen existera jamais !
Avouez quil est interessant de se rendre compte
de ce phenom`ene !
6
Introduction et motivations (IV)
Il y a une autre situation o`u le cours de calcu-
labilite et complixite vous sera tr`es utile:
Patron : vu la hausse des prix du petrole,
nous ne pouvons plus gaspiller ! Je veux
que tous nos representants de commerce
se deplacent optimalement : plus 1km de
trop !!! Mais il ne faut pas non plus perdre
du temps `a la planication ! Faites-moi un
programme qui calculera le circuit optimal
pour nos representants chaque matin !!!
Vous : bien patron...
7
Introduction et motivations (IV)
Deux situations sont possibles : (i) vous avez
malheureusement renonce `a suivre le cours de
calculabilite et complexite, (ii) vous avez suivi
le cours de calculabilite et complexite.
8
Introduction et motivations (IV)
Situation (i) : apr`es trois semaines de travail
`a la recherche dun algorithme ecace pour
resoudre le probl`eme de votre patron, vous
vous resignez `a aller le trouver pour admet-
tre que vous etes certainement trop stupide et
que vous narrivez pas `a resoudre son probl`eme
de mani`ere ecace (les seuls algorithmes que
vous avez trouves ne terminent pas en une
journee meme sur la machine la plus rapide de
la compagnie...) Votre patron perd son calme
et vous licencie !
9
Introduction et motivations (IV)
Situation (ii) : vous commencez `a travailler sur
le probl`eme et vous vous rendez compte que les
seules solutions que vous trouvez enum`erent
chaque circuit possible (le probl`eme cest quil
y en a un nombre exponentiel), aucune des
heuristiques auquelles vous avez pense ne marche
pas dans tous les cas ! Et l`a, vous vous rap-
pelez le bon vieux temps : quand vous etiez
etudiant..., et le cours de calculabilite et com-
plexite que vous avez suivi !
10
Introduction et motivations (IV)
Conant, vous allez dans le bureau de votre
patron et vous lui dites que le probl`eme nest
pas soluble ecacement et quil fait partie des
probl`emes NP-Complet, et donc que votre pa-
tron devra se contenter dune approximation
du circuit le plus court !
Normalement, votre patron vous felicitera (de
ne pas avoir cherche en vain une solution ef-
cace et exacte au probl`eme, recherche qui `a
coups sur aurait dure le reste de votre carri`ere)
et vous obtiendrez une promotion !!!
11
Introduction et motivations (IV)
Si votre patron persiste dans son obstination,
vous faites deler dans son bureau tous les in-
formaticiens qui ont dej`a essaye de resoudre
ecacement un probl`eme NP-Complet et qui
ny sont jamais parvenus !
12
Notions de probleme et dalgorithme (I)
Quest-ce quun probl`eme ?
Commencons par donner quelques exemples de
probl`emes :
determiner si un nombre naturel n est pair
ou impair;
calculer le PGCD de deux nombres naturels
m et n;
etant donne un graph G et deux sommets
m et n de ce graphe, determiner si il ex-
iste un chemin menant de m `a n dans ce
graphe;
13
Notions de probleme et dalgorithme (I)
Quest-ce quun probl`eme ?
etant donne une procedure Pascal, et un
vecteur de valeurs pour les param`etres in-
put de la procedure, determiner si la pro-
cedure termine sur ces valeurs input (pro-
bl`eme de larret).
...
14
Notions de probl`eme et dalgorithme (II)
Quest-ce quun probl`eme ?
Quelles sont les caracteristiques dun probl`eme?
un probl`eme est une question generique,
cest-`a-dire quun probl`eme contient des
param`etres ou variables libres. Lorsque lon
attribue une valeur `a ces variables libres on
obtient une instance du probl`eme;
un probl`eme existe independement de toute
solution ou de la notion de programme pour
le resoudre;
un probl`eme peut avoir plusieurs solutions,
plusieurs algorithmes dierents peuvent re-
soudre le meme probl`eme.
15
Notions de probl`eme et dalgorithme (II)
Quest-ce quun probl`eme ?
Nous nous interesserons `a une classe speciale
de probl`emes : les probl`emes de decision.
Un probl`eme est dit de decision si la reponse
aux instances du probl`eme est soit oui soit
non.
Exemples :
Determiner si oui ou non un nombre entier
n est pair est un probl`eme de decision;
Par contre determiner la longueur minimale
du circuit qui passe par tous les sommets
dun graphe nest pas un probl`eme de decision.
16
Notions de probl`eme et dalgorithme (II)
Quest-ce quun probl`eme ?
La classe des probl`emes de decision est limitee
mais susante pour illustrer les notions qui
nous interessent. Pour ne pas surcharger (inu-
tilement) la formalisation, nous nous limiterons
la plus part du temps aux probl`emes de decision.
Les techniques que nous allons etudier sont
generalisables aux autres probl`emes.
Nous verrons egalement que, par exemple, la
plupart des probl`emes doptimisation sont equivalents
(pour une notion dequivalence que nous preciserons
plus tard) `a des probl`emes de decision.
17
Notions de probl`eme et dalgorithme (II)
Quest-ce quun algorithme
Maintenant que nous avons une idee intuitive
et precise de ce quest un probl`eme essayons
de preciser quelque peu la notion dalgorithme
(ou encore de programme).
Derri`ere la notion dalgorithme se trouve la no-
tion de procedure eective pour resoudre un
probl`eme (toutes les instances dun probl`eme).
Un programme Pascal est une procedure ef-
fective. Pourquoi ? Le code Pascal peut-etre
compile et ensuite execute mecaniquement
par le processeur. Une autre caracteristique es-
sentielle dune procedure eective est quelle
contient exactement la marche `a suivre pour
resoudre le probl`eme et quaucune decision sup-
plementaire ne doit etre prise lors de lexecution
de la procedure.
18
Notions de probl`eme et dalgorithme (II)
Quest-ce quun algorithme
Voici un exemple dune procedure qui nest pas
eective pour resoudre le probl`eme de larret :
Determinez si le programme na pas de
boucle innies ou dappels recursifs
innis.
Il est clair que cette solution nest pas eective
: rien nest dit au sujet de comment detecter
les boucles innies ou les appels recursifs in-
nis. Notons que nous etablirons dans la suite
de ce cours quil nexiste aucune procedure ef-
fective pour resoudre le probl`eme de larret.
19
Notions de probl`eme et dalgorithme (II)
Quest-ce quun algorithme
Dans la suite, nous aurions pu utiliser la no-
tion dalgorithmes ecrits dans un langage de
programmation usuel pour formaliser la notion
de procedure eective.
Nous ne choisirons pas cette option car elle
serait trop lourde. En eet, pour quun pro-
gramme ecrit dans un langage usuel (comme
Pascal) soit une procedure eective, il faut que
le programme soit compile.
20
Notions de probl`eme et dalgorithme (II)
Quest-ce quun algorithme
Cette indirection complique la formalisation.
Pour eviter cette etape de compilation, nous
adopterons des langages de programmation pri-
mitifs qui ont une forme tellement simple que
leur procedure dinterpretation (comment les
executer) est immediate. Nous etudirons en
particulier le formalisme de la machine de Tur-
ing.
Attention : pour quune procedure soit con-
sideree comme eective pour resoudre un probl`eme,
il faut que celle-ci se termine sur toutes les in-
stances du probl`eme.
21
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
Si un probl`eme doit etre resolu par une procedure
eective, il est naturel que les instances du
probl`emes soient accessibles `a la procedure ef-
fective. Pour cela, nous avons besoin dun
encodage des instances du probl`eme. Cet
encodage doit pouvoir etre manipule par la
procedure eective.
Si nous ecrivions nos procedures eectives `a
laide dun langage de programmation usuel,
nous encoderions les instances de probl`emes
`a laide dentiers, de sequences dentiers, de
chanes de caract`eres, ...
22
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
Ici, nous adopterons un point de vue un peu
plus abstrait et considererons seulement des
chanes de caract`eres sur un alphabet ni.
Remarque : Il est evident que cela est su-
isant : en eet, de toutes facons tout est tou-
jours ramene dune facon ou dune autre `a des
chanes de 0 et de 1.
23
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
Quelques denitions
Un alphabet est un ensemble ni de symboles,
dans la suite nous utiliserons ,
1
,
2
, ... pour
designer des alphabets.
Quelques exemples dalphabets : = a, b, c, d,
= 0, 1, = , , , , ...
Notons que la caracteristique importante dun
alphabet est son nombre delements et non
pas les symboles particuliers qui le composent
(ces symboles nont aucune interpretation).
24
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
Quelques denitions
Un mot sur est une sequence nie delements
de .
Par exemple : ababcdcdabcd est un mot sur =
a, b, c, d.
La longueur dun mot est le nombre de sym-
boles quil contient.
Par exemple : la longueur de la sequence w =
ababcdcdabcd est 12, on notera cela long(w).
On utilisera egalement la notation w(i) pour
denoter le i
e
symbole du mot w, et pour
denoter un mot vide (de longueur nulle)..
25
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
On appelera fonction dencodage la fonction
qui transforme une instance particuli`ere dun
probl`eme en son codage en terme de mot.
Dans la suite nous considererons que chaque
instance dun probl`eme est representable par
une sequence nie de symboles.
26
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
Soit un probl`eme de decision dont les instances
sont encodees par des mots denis sur un al-
phabet . Lensemble de tous les mots denis
sur peut etre partitionne en trois sous-ensem-
bles :
les mots representant des instances du pro-
bl`eme pour lesquelles la reponse est oui,
nous appelerons ces instances les instances
positives du probl`eme;
les mots representant des instances du pro-
bl`eme pour lesquelles la reponse est non,
ces sont les instances negatives;
les mots qui ne representent pas des in-
stances du probl`eme considere.
27
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
Les deux derni`eres classes sont souvent re-
groupees et ainsi nous obtienons par chaque
probl`eme une partition de lensemble des mots
en deux sous-ensembles :
les mots qui representent des instances pos-
itives du probl`eme;
les mots qui representent des instances ne-
gatives du probl`eme ou qui ne representent
pas dinstance du probl`eme.
28
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
Un probl`eme peut donc etre caracterise par
lensemble des mots qui sont des instances pos-
itives du probl`eme. Nous appelerons un ensem-
ble de mots un langage.
Un langage est un ensemble de mots denis
sur le meme alphabet.
Souvent nous ne ferons pas la distinction entre:
resoudre un probl`eme;
reconnatre de mani`ere eective le langage
des encodages des instances positives du
probl`eme.
Notations : denote le langage vide, nous
utiliserons /, /
1
, /
2
, . . . pour designer des lan-
gages.
29
Notions de probl`eme et dalgorithme (II)
Formalisation de la notion de probl`eme
Quelques exemples de langages :
pour lalphabet = a, b,
/ = aabbaabab, bbabba, bbaaaabbba
est un langage;
lensemble des programmes Pascal syntax-
iquement corrects;
lensemble des programmes Pascal qui ter-
minent est un langage.
Nous montrerons que les deux premiers lan-
gages (cest evident pour le premier) sont ef-
fectivement reconnaissables et par contre le
troisi`eme ne lest pas.
30
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
La cardinalite est le terme technique utilise en
theorie des ensembles pour designer la taille
dun ensemble.
Pour les ensembles nis, la taille dun ensemble
est simplement son nombre delements.
Donc, deux ensembles nis ont la meme cardi-
nalite si et seulement si ils ont le meme nombre
delements.
31
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
Pour des ensembles innis, cest un peu plus
complique.
Si deux ensembles innis peuvent etre mis en
bijection, cest-`a-dire quil existe une fonc-
tion bijective dun ensemble vers lautre (bijec-
tive=injective et surjective), alors nous dirons
quils ont la meme cardinalite.
Grace `a cette notion de cardinalite, on peut
regrouper les ensembles de meme cardinalite
en classes dequivalence.
32
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
Etudions maintenant quelques ensembles qui
ont la meme cardinalite que lensemble des
nombres naturels (lensemble inni le plus sim-
ple).
Denition: un ensemble est denombrable (enu-
merable) sil existe une bijection entre cet en-
semble et lensemble des nombres naturels.
La cardinalite des ensembles denombrables est
notee
0
(aleph 0).
33
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
Voici quelques exemples densembles denom-
brables :
lensemble des nombres pairs est denombrable.
Voici une bijection qui etablit cette pro-
priete:
(0, 0), (2, 1), (4, 2), (6, 3), . . .
Notons quun sous-ensemble stricte inni
de lensemble des naturels a donc la meme
cardinalite que lensemble des naturels dans
son enti`erete.
34
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
lensemble des mots sur lalphabet a, b
est denombrable. Pour obtenir une enume-
ration, on classe les mots par tailles crois-
santes et par ordre alphabetique au sein
dune meme taille. On obtient donc :
(, 0), (a, 1), (b, 2), (aa, 3), (ab, 4),
(ba, 5), (bb, 6), . . .
De mani`ere generale, lensemble des mots
sur un alphabet ni est enumerable.
35
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
lensemble des nombres rationnels est de-
nombrable. En eet, un nombre rationnel
est caracterise par une paire de nombres
entiers
a
b
(et les paires de nombres entiers
sont denombrables). Voici une facon denu-
merer les nombres rationnels :
enumerons les rationnels par ordre
de sommes croissantes de leur numerateur
et denumerateur, et par ordre de
numerateur et puis de denumerateur
pour les sommes identiques. Ceci
donne :
(
0
1
, 0), (
0
2
, 1), (
1
1
, 2), (
0
3
, 3), (
1
2
, 4), . . .
36
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
Exercices : montrez que
lensemble des mots (nis) sur un alphabet
enumerable est enumerable;
lensemble des suites nies de nombres na-
turels est enumerable.
37
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
Montrons maintenant que tous les ensembles
innis ne sont pas enumerables.
Theor`eme : lensemble des sous-ensembles
dun ensemble denombrable inni nest pas denom-
brable.
Preuve: Nous appliquons la methode de la
diagonale. Soit A = a
0
, a
1
, a
2
, . . . un ensem-
ble denombrable, S = s
0
, s
1
, s
2
, . . . lensemble
de ses sous-ensembles que nous considerons
ici denombrable (demonstration par labsurde).
Montrons que lont peut deduire une contra-
diction.
Pour cela, nous considerons une matrice B
doublement innie qui contient une ligne pour
38
chaque element de A et une colonne pour chaque
element de S.
Lelement B[i, j] a la valeur 1 si a
i
s
j
et la
valeur 0 sinon. Considerons maintenant len-
semble D = a
i
[ a
i
, s
i
. Clairement D est
un sous-ensemble de A. Mais D nest egal `a
aucun des s
i
enumeres comme colonnes de B.
En eet, supposons que D = s
k
, ceci est im-
possible car par denition de D, on a a
k
D
ssi a
k
, s
k
.
Rem : on appelle cette methode la methode de
la diagonale car D est obtenu en changeant de
mani`ere systematique la valeur de la diagonale
de la matrice B).
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
De mani`ere similaire, on peut montrer que :
lensemble des fonctions des naturels dans
les naturels nest pas denombrable;
lensemble des sequences innies sur un al-
phabet ni nest pas denombrable;
il y a plus de langages que de langages
reguliers.
Exercices : etablissez ces trois armations.
39
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
Les ensembles qui ont la meme cardinalite que
lensemble des sous-ensembles dune ensemble
denombrable ont une cardinalite notee
1
.
Voici quelques exemples densembles qui ont
la cardinalite
1
:
lensemble des sequences innies sur un al-
phabet ni;
lensemble des fonctions des naturels dans
les naturels;
40
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
lensemble des nombres reels compris entre
0 et 1 (pour montrer cela, il sut de savoir
que chaque nombre reel entre 0 et 1 est
represente par sa suite innie de decimales).
On dira que les ensembles de cardinalite
1
ont
la puissance du continu.
41
Preliminaires : Cardinalite des ensembles
et diagonale de Cantor (I)
Le theor`eme de Cantor est une des causes des
limites fondamentales de linformatique (et des
syst`emes formels en general).
Il est evident que lensemble des procedures ef-
fectives est denombrable alors que lensemble
des probl`emes est non denombrable (ensemble
des sous-ensembles de lensemble des mots -
nis).
42
Plan du cours
Introduction - Motivations
Notions de probl`emes et dalgorithmes
Cardinalite des ensembles - Diagonale de
Cantor
Mod`eles de calcul
les machines de Turing
les fonctions recursives
(le lambda calcul)
Equivalences des mod`eles de calcul et th`ese
de Church
43
Indecidabilite - Decidabilite
Complexite
complexite en temps et en espace
reduction
intractabilite
P versus NP
Complement de complexite (en option)
calculs parall`eles
espace logarithmique
espace polynomiale
Mod`eles de calcul
Structure du chapitre :
les machines de Turing
les fonctions recursives
(le lambda calcul)
44
Mod`eles de calcul
Introduction
Nous denirons tout dabord le formalisme des
machines de Turing. Cest ce mod`ele que
nous choisirons pour donner une denition for-
melle `a la notion intuitive de procedure eec-
tive (algorithme).
Il convient de justier ce choix. Notons quune
demontration formelle de ladequation de ce
choix est impossible vu que nous navons pas
de denition formelle de ce quest une procedure
eective (cest exactement ce que nous cher-
chons). Pour justier le choix des machines de
Turing, nous nous baserons sur des arguments
de dierents types.
45
Mod`eles de calcul
Introduction
Types darguments :
nous allons etudier plusieurs extensions du
mod`ele des machines de Turing et montrer
que les langages acceptes par ces machines
sont identiques aux langages acceptes par
les machines de Turing;
de plus, nous allons montrer que tout pro-
bl`eme resolvable par un programme ecrit
dans un langage usuel et execute sur un
ordinateur peut letre par une machine de
Turing;
nous montrerons egalement quune autre
formalisation de la notion de procedure ef-
fective, basee sur une idee tout `a fait dif-
ferente : les fonctions recursives, est equi-
valente.
46
Mod`eles de calcul
Les machines de Turing
Introduction
Nous allons maintenant denir un formalisme
pour reconnatre des langages. Precedement,
vous avez dej`a etudie (dans le cadre du cours
de theorie des langages) dierentes classes dautomates
qui permettent de reconnatre dierentes classes
de langages.
Par exemple, on sait que les automates nis
reconnaissent la classe des langages reguliers,
la classe des automates `a pile reconnaissent la
classe des langages hors-contexte. Est-ce que
cette derni`ere classe est un bon candidat pour
notre notion de procedure eective ?
47
Mod`eles de calcul
Les machines de Turing
Introduction
La reponse est malheureusement non, car par
exemple le langage
a
n
b
n
c
n
[ n 0
ne peut etre reconnu par aucun automate `a
pile mais il est clair quil doit exister une pro-
cedure eective qui lorsquon lui donne un mot
ni determine si oui ou non ce mot appartient
au langage ci-dessus.
48
Mod`eles de calcul
Les machines de Turing
Composants
Une machine de Turing deterministe est com-
posee :
dune memoire innie sous forme dun ru-
ban divise en cases. Chaque case du ruban
peut contenir un symbole dun alphabet
appele alphabet de ruban.
a b a a b
dune tete de lecture qui se deplace le long
du ruban et qui pointe vers une case du
ruban.
dun ensemble ni detats parmi lesquels
on distingue un etat initial.
49
Mod`eles de calcul
Les machines de Turing
Composants
une fonction (partielle) de transition qui
pour chaque etat de la machine et symbole
se trouvant sous la tete de lecture precise
(si elle est denie):
letat suivant,
le caract`ere qui sera ecrit sur le ruban `a
la place du caract`ere qui se trouve sous
la tete de lecture,
un sens de deplacement de la tete (une
case `a la fois).
50
Mod`eles de calcul
Les machines de Turing
Execution
Une machine de Turing sexecute selon la pro-
cedure suivante:
Initialement, le mot dentree se trouve au
debut du ruban. Les autres cases du ruban
contiennent toutes un symbole special ap-
pele le symbole blanc, on le notera . La
tete de lecture est sur la premi`ere case du
ruban (extremite gauche) et la machine se
trouve dans son etat initial.
51
Mod`eles de calcul
Les machines de Turing
Execution
A chaque etape de lexecution, la machine,
si la fonction de transition est denie :
lit le symbole se trouvant sous la tete
de lecture,
remplace ce symbole par le symbole don-
ne par la fonction de transition,
deplace sa tete de lecture dune case
vers la gauche ou vers la droite suivant
le sens precise par la fonction de transi-
tion,
change detat comme precise par la fonc-
tion de transition.
52
Un mot est accepte par la machine lorsque
lexecution de celle-ci atteint un etat ac-
cepteur, est rejete si lexecution sarrete
avant datteindre un etat accepteur ou est
innie et natteint jamais detat accepteur.
Mod`eles de calcul
Les machines de Turing
Denition
Passons maintenant `a une denition plus formelle.
Une machine de Turing M est formellement
decrite par les 7 elements suivants :
M = (Q, , , , s, B, F)
Q est un ensemble ni detats,
est lalphabet du ruban,
est lalphabet dentree (lalphabet utilise
par le mot dentree), on a ,
s Q est letat initial,
53
F Q est lensemble des etats accepteurs,
B \ est le symbole blanc, que lon
notera ,
: Q Q L, R est la fonc-
tion de transition (L et R sont utilises pour
representer respectivement le deplacement
`a gauche et `a droite de la tete de lecture).
Cette fonction est partielle.
Mod`eles de calcul
Les machines de Turing
Conguration
Pour denir formellement la notion dexecution
dune machine de Turing ainsi que la notion de
mot accepte par une machine de Turing, nous
avons besoin de la notion de conguration.
Une conguration contient toute linformation
necessaire `a la poursuite de lexecution de la
machine, cest-`a-dire:
letat dans lequel la machine se trouve,
le contenu du ruban,
la position de la tete de lecture sur le ruban.
54
Mod`eles de calcul
Les machines de Turing
Conguration
La seule information dicile `a representer
est le ruban : cest une suite innie de sym-
boles.
Mais notons tout de meme, cela nous sera utile
dans la suite, qu`a tout moment seul un nom-
bre ni de symboles sur le ruban sont dierents
du symbole .
Il importe donc seulement de garder le prexe
ni de symboles qui sont dierents de .
Mod`eles de calcul
Les machines de Turing
Conguration
Plus formellement, nous denoterons une con-
guration par une triplet
(q, w
1
, w
2
)
o`u :
q Q est letat de la machine;
w
1

est le mot apparaissant sur le ruban


avant (strictement) la position de la tete
de lecture;
w
2

(\), le mot se trouvant sur le


ruban entre la position de la tete de lecture
et le dernier caract`ere non blanc.
55
Mod`eles de calcul
Les machines de Turing
Conguration
Illustrons la denition de conguration. Con-
siderons une machine dans letat q avec le ruban
suivant :
a b a a

b b a
et la tete de lecture en position 5 (le symbole
est coie dun chapeau), alors la conguration
de la machine est :
(q, abaa, bba)
Si la tete de lecture se trouve en position 8
(premier caract`ere blanc) alors la cong est
(q, abaabba, )
56
Mod`eles de calcul
Les machines de Turing
Execution
Nous allons maintenant denir formellement
levolution de la conguration dune machine
en denissant une fonction de transition entre
les congurations.
Soit une conguration (q,
1
,
2
). Ecrivons cette
conguration sous la forme (q,
1
, b

2
) en pre-
nant b = si
2
= . Les congurations at-
teignables `a partir de (q,
1
,
2
) sont dans la
machine M alors denies comme suit:
si (q, b) = (q

, b

, R) nous avons alors


(q,
1
, b

2
)
M
(q

,
1
b

2
)
si (q, b) = (q

, b

, L) et si
1
,= et est donc de la
forme

1
a, nous avons alors
(q,

1
a, b

2
)
M
(q

1
, ab

2
)
57
Mod`eles de calcul
Les machines de Turing
Execution
Nous pouvons maintenant denir la notion de
derivation en plusieurs etapes.
Une conguration C

est derivable en plusieurs


etapes de la conguration C avec la machine
M, ce qui sera note C

M
C

, si il existe k 0 et
des congurations intermediaires C
0
, C
1
, . . . , C
k
telles que :
C
0
= C;
C

= C
k
;
C
i

M
C
i+1
pour 0 i < k.
58
Mod`eles de calcul
Les machines de Turing
Langage accepte
Nous sommes maintenant en position pour denir
le langage accepte par une machine de Turing.
Le langage L(M) accepte par une machine de
Turing est lensemble des mots w tels que
(s, , w)

M
(q,
1
,
2
) avec q F.
Ce sont donc les mots sur lesquels lexecution
de la machine atteint un etat accepteur.
59
Mod`eles de calcul
Les machines de Turing
Exemples
Nous allons maitenant considerer deux exem-
ples :
une machine de Turing qui accepte le lan-
gage
a
n
b
n
[ n 0
une machine de Turing qui accepte len-
semble des mots nis qui sont des palin-
dromes.
60
Mod`eles de calcul
Les machines de Turing
Langages decides
Nous allons maintenant nous interesser `a une
notion importante : celle de langage decide.
Une machine de Turing qui accepte un lan-
gage L ne represente pas necessairement une
procedure eective pour reconnatre ce lan-
gage. En eet la denition de langage ac-
cepte que nous avons donnee nexclut pas le
fait que la machine peut ne jamais terminer
son execution sur un mot qui nappartient pas
au langage que la machine reconnat. Vu que
notre but est de donner une caracterisation
formelle de la notion procedure eective pour
reconnatre les instances positives dun probl`eme
de decision, nous devons tenir compte des executions
divergentes.
61
Mod`eles de calcul
Les machines de Turing
Langages decides
Donc `a partir dune conguration (s, , w), plu-
sieurs cas peuvent se presenter :
lexecution de la machine atteint un etat
accepteur et la machine accepte le mot;
lexecution de la machine sarrete apr`es un
temps ni soit parce quaucune transition
nest possible ou lexecution tente de faire
bouger la tete de lecture vers la gauche
alors que la tete pointe sur la premi`ere case
du ruban. Dans ces deux cas le mot est
rejete par la machine.
62
Mod`eles de calcul
Les machines de Turing
Langages decides
lexecution de la machine est innie et donc
ne termine jamais. Le probl`eme est qu`a
aucun moment on ne peut etre sur que lon
peut arreter lexecution et que le mot sera
rejete.
63
Mod`eles de calcul
Les machines de Turing
Langages decides
On va maintenant introduire le nouveau con-
cept de langage decide qui exclut la troisi`eme
possibilite. Pour denir ce nouveau concept,
nous avons besoin du concept dexecution dune
machine de Turing.
Lexecution dune machine de Turing sur un
mot w est la suite de congurations
(s, , w)
M
C
1

M
C
2

M
. . .
M
C
k

M
. . .
maximale.
64
Mod`eles de calcul
Les machines de Turing
Langages decides
Maximale veut dire que soit
elle est innie,
ou elle termine dans un etat accepteur,
ou elle se termine dans une conguration
o`u aucune conguration nest derivable.
65
Mod`eles de calcul
Les machines de Turing
Langages decides
Un langage L est decide par une machine de
Turing M si :
M accepte L,
M na pas dexecution innie.
Par consequent, un langage decide par une
machine de Turing peut etre reconnu par une
procedure eective.
66
Mod`eles de calcul
Les machines de Turing
Langages recursifs et
recursivement enumerables
Les langages respectivement decides et acceptes
par les machines de Turing sont appeles recursifs
et recursivement enumerables.
Un langage est recursif sil est decide par une
machine de Turing.
Un langage est recursivement enumerable sil
est accepte par une machine de Turing.
67
Mod`eles de calcul
Th`ese de Turing-Church
La th`ese de Church au sujet des machines de
Turing est la suivante :
Les langages reconnus par une procedure
eective sont ceux decides par une
machine de Turing.
Comme nous lavons dej`a souligne, cet en-
nonce est une th`ese et non pas un theor`eme!
Cette th`ese est le maillon qui nous manquait
pour montrer quil existe des probl`emes qui ne
peuvent pas etre resolu par une procedure ef-
fective.
68
Mod`eles de calcul
Th`ese de Turing-Church
Il est clair que ce qui est decide par une ma-
chine de Turing lest par une procedure eec-
tive (on peut par exemple interpreter une ma-
chine de Turing sur un ordinateur).
Par contre lautre direction est plus delicate :
tout langage reconnu par une procedure eec-
tive est-il decide par une machine de Turing
? (ou encore tout probl`eme soluble algorith-
miquement est-il soluble avec une machine de
Turing ?)
Comment peut-on justier la th`ese de
Church ?
69
Mod`eles de calcul
Th`ese de Turing-Church
Justications
Deux types de justications pour la th`ese de
Church :
une variete dextensions que lon peut ap-
porter aux machines de Turing ne changent
pas la classe des langages quelles decident;
dautres formalisations de la notion de pro-
cedure eective (nous etudierons les fonc-
tions recursives et plus tard des mod`eles
plus proche de nos ordinateurs daujourdhui,
on pourrait egalement parler du -calcul),
basees sur des concepts tout `a fait dierents
(en tout cas pour les fonctions recursives
et pour le -calcul), sont equivalentes.
70
Mod`eles de calcul
Th`ese de Turing-Church
Simplicite des machines de Turing
Pourquoi avoir choisi le mod`ele simpliste des
machines de Turing ?
Justement pour leur simplicite !
71
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Premi`ere extension : ruban doublement in-
ni
Que se passe-t-il si on consid`ere une machine
avec un ruban inni vers la droite mais egalement
vers la gauche ?
La denition dune telle machine est identique
`a celle dune machine de Turing habituelle `a
lexception du fait suivant : la tete de lecture
peut toujours se deplacer vers la gauche.
On peut montrer que toute machine `a ruban
doublement inni peut etre simulee par une
machine `a un ruban simplement inni. Nous ne
donnons pas la demonstration detaillee, seule-
ment lidee. Une preuve compl`ete est donnee
dans [PW91, page 143-144].
72
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Lidee de la simulation est la suivante : elle
consiste `a replier le ruban en deux et considerer
des pairs de symboles obtenues par ce repliage.
Il sut alors de considerer une machine sur
un alphabet compose des pairs de symboles de
lalphabet de depart et redenir la relation de
transition de mani`ere adequate.
73
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Autre extension : machine de Turing `a rubans
multiples
Considerons une machine avec plusieurs rubans
et plusieurs tetes de lecture. Letat dune telle
machine est constitue de la location courante,
du contenu de chaque ruban et de la position
de chaque tete de lecture.
On peut `a nouveau simuler le comportement
dune telle machine avec un alphabet de sym-
boles composes decrivant le contenu des dif-
ferents rubans et la position des tetes de lec-
ture.
74
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Par exemple, pour une machine `a deux rubans,
on utilise des symboles de la forme (a
1
, a
2
, b
1
, b
2
)
o`u a
1
represente la valeur dans le premier ruban
et a
2
= 1 si la tete de lecture du premier ruban
est dans cette position du ruban, a
2
= 0 sinon,
b
1
et b
2
encode la meme information mais pour
le deuxi`eme ruban.
Comment simuler un etape de lexecution de
la machine `a deux rubans ?
trouver la position des tetes de lecture et
determiner les symboles lus,
modier ces symboles, deplacer les tetes
de lecture et changer detat.
75
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Un autre mod`ele : les machines `a acc`es di-
rect.
Une machine RAM (random access memory)
est une machine semblable aux ordinateurs
reels. Supposons que la machine `a simuler
comporte une memoire `a acc`es direct et un
certain nombre de registres dont un compteur
de programme.
Montrons quune machine de Turing (multi-
rubans et donc mono-ruban) peut simuler une
machine RAM.
76
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Les idees derri`eres la simulation :
un ruban est utilise pour chaque registre et
un ruban est utilise pour la memoire
le contenu de la memoire est representee
par des paires de mots (adresse, contenu).
0 v
0
1 v
1
. . . a a v
2
. . .
77
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
La machine de Turing simule alors la machine
`a memoire RAM de la facon suivante :
Parcourir le ruban representant la memoire
jusqu`a trouver ladresse correspondant au
contenu du compteur de programme (PC);
Lire et decoder linstruction se trouvant `a
cette adresse;
78
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Le cas echeant trouver les operandes de
cette instruction;
Executer linstruction, ce qui implique even-
tuellement la modication de la memoire
et/ou des registres;
Incrementer le compte de programme (sauf
si linstruction est une instruction de branche-
ment) et passer au cycle suivant.
79
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Une modication plus fondamentale : machines
de Turing non-deterministes
Jusqu`a present nous nous sommes limites `a
des machines qui pour chacune de leurs con-
gurations ont au plus une conguration at-
teignable. Que se passe-t-il si on relache cette
propriete et que lon consid`ere des machines
o`u une conguration peut-etre suivie par non
plus une seule mais un ensemble de congu-
rations, cest-`a-dire si on consid`ere une rela-
tion de transition `a la place dune fonction
de transition ?
80
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Dans ce cas devient de type :
: (Q) (Q L, R)
Donc `a une pair (q, b) correspond un ensemble
de triples (q

, b

, X) o`u X L, R, la machine
peut choisir nimporte lequel de ces triplets.
Exercice : redenir formellement la notion de
conguration successeur.
81
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Les autres notions sont identiques `a celles don-
nees pour les machines deterministes.
Neanmoins, une machine non-deterministe na
pas une execution unique sur un mot w et
on impose seulement quune execution termine
dans un etat accepteur pour accepter w.
Est-ce que le non-determinisme apporte un pou-
voir dexpression accru ?
82
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
Theor`eme : tout langage accepte par une ma-
chine de Turing non deterministe est aussi ac-
cepte par une machine de Turing deterministe.
note : la notion de decide nas pas de sens
pour une machine non-deterministe.
Comment peut-on montrer que le non-deter-
minisme napporte pas de pouvoir dexpression
supplementaire ?
On va montrer comment une machine deterministe
peut simuler une machine non-deterministe.
83
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
On va montrer quun machine deterministe peut
simuler toutes les executions dune machine
non-deterministe.
Dicultes :
il est dicile de simuler toutes les executions si-
multanement : par exemple, comment partager le
ruban entre plusieurs executions ?
on ne peut pas non plus simuler les executions une
par une. En eet, si on commence une execution
qui est innie, on ne la terminera jamais... et si il
existe une autre execution qui termine dans un etat
accepteur, elle ne sera jamais executee et on ne se
rendra pas compte que le mot est accepte !
Solution : on adopte une methode intermediaire.
84
Mod`eles de calcul
Th`ese de Turing-Church
La solution est de considerer toutes les executions
en parall`ele mais en considerant des prexes de
longueur croissante. Dabord, tous les prexes
de longeur 1, puis 2, puis 3, ...
Comment proceder ?
La premi`ere propriete importante dont nous
avons besoin est le fait que les machines de
Turing sont `a branchement ni. Le nombre
maximum de successeurs dune conguration
est donne par :
max
qQ,q
[ ((q, a), (q

, x, X)) [
85
Mod`eles de calcul
Th`ese de Turing-Church
Supposons que pour chaque pair (q, a), on nu-
merote les choix permis par la relation de tran-
sition de 1 `a (maximum) r. Avec cette con-
vention, chaque prexe de longueur m dune
execution peut-etre represente par une suite
de m nombres inferieurs `a r.
On peut alors construire une machine de Tur-
ing deterministe `a trois rubans qui simule la
machine non-deterministe de la facon suivante:
le premier ruban contient le mot dentree et
nest pas modie (ainsi le mot est toujours
l`a quand on recommence les executions);
86
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
le deuxi`eme ruban servira `a contenir les
sequences de nombres inferieurs `a r;
le troisi`eme ruban sert `a la machine deter-
ministe pour simuler le comportement de
la machine non deterministe.
87
Mod`eles de calcul
Th`ese de Turing-Church
Extensions
La machine deterministe proc`ede alors comme
suit:
1. sur le deuxi`eme ruban, elle gen`ere toutes
les sequences de nombres inferieurs `a r (al-
phabet ni), par ordre de longueurs crois-
santes;
2. chaque fois quune sequence est generee,
elle simule la machine non-deterministe en
resolvant les choix comme donnes par la
sequence;
3. elle sarrete et accepte d`es quune des se-
quences generees represente une execution
de la machine non-deterministe qui se ter-
mine dans un etat accepteur.
88
Mod`eles de calcul
Machine de Turing universelle
On peut montrer en fait quil existe une ma-
chine de Turing qui permet de simuler toutes
les machines de Turing.
On donne `a cette machine deux entrees : le
mot dentree et un encodage de la machine de
Turing quon veut simuler. Une telle machine
est appelee une machine de Turing universelle.
Nous reviendrons plus en detail sur cette ma-
chine lorsque nous nous interesserons aux pro-
bl`emes indecidables.
89
Mod`eles de calcul
Fonctions calculables par
les machines de Turing
Jusqu`a present, nous avons restreint notre at-
tention aux probl`emes de decision. Un mot qui
encode une instance de probl`eme est accepte
par la machine de Turing si il represente une in-
stance positive du probl`eme, sinon il est rejete
par la machine.
Comment peut-on faire calculer un resultat
`a une machine de Turing et obtenir une no-
tion de fonction calculable par une machine de
Turing ?
Lidee est de considerer le contenu du ruban
en n dexecution.
90
Mod`eles de calcul
Fonctions calculable par
les machines de Turing
Une machine de Turing calcule une fonction
f :

si, pour tout mot dentree w, elle sarrete tou-


jours dans une conguration o`u f(w) se trouve
sur le ruban.
Rem : decider un langage revient `a calculer
une fonction dans le codomaine 0, 1.
91
Mod`eles de calcul
Fonctions calculable par
les machines de Turing
On peut reenonce la th`ese de Church-Turing
en termes de calcul de fonctions :
Les fonctions calculables par une procedure
eective sont les fonctions calculables
par une machine de Turing
Exercice :
expliquez comment on peut faire calculer
une fonction de NN dans NN par une machine
de Turing;
prouvez quil existe des fonctions de NN dans
NN qui ne sont pas calculables par une ma-
chine de Turing.
92
Mod`eles de calcul
Les fonctions recursives
Nous venons de terminer lintroduction aux ma-
chines de Turing en montrant quelle pouvait
calculer des fonctions. Dautres approches sont
envisageables pour formaliser la notion de fonc-
tion calculable par une procedure eective. Une
formalisation alternative est donnee par la no-
tion de fonction recursive.
Consid`erons les operations de bases sur les nom-
bres entiers, comme +, , , , . . .. Il est clair
quelles sont calculables.
93
Mod`eles de calcul
Les fonctions recursives
Pourquoi ?
on peut par exemple connatre un algo-
rithme pour +, qui etant donne un en-
codage binaire de a et b calcule lencodage
binaire de a +b, a b.
on peut calculer les fonctions qui sont de-
nissables `a partir des fonctions de base.
Par exemple, si on a un algorithme pour
+ et , il est clair quon pourra calculer la
fonction a (b +c) par exemple.
Mais il y a des fonctions qui ne peuvent pas
etre obtenues par composition simple de fonc-
tions de base. Pensez `a la fonction factorielle:
n!.
94
Mod`eles de calcul
Les fonctions recursives
La decomposition de la fonction factorielle en
terme de produits est donnee par :
n! = n (n 1) (n 2) . . . 1
Malheureusement cette decomposition depend
de la valeur de n. Pourtant il est clair que cette
fonction est calculable.
95
Mod`eles de calcul
Les fonctions recursives
Pour pouvoir denir des compositions variables,
nous utiliserons la notion de recursion.
Voici une denition recursive de la fonction
factorielle :
0! = 1
(n +1)! = (n +1) n!
Cette denition est eective car f(n + 1) est
deni en terme de f(n) et doperations que lon
sait calculables par ailleurs, et de plus f(0) est
trivialement calculable.
96
Mod`eles de calcul
Les fonctions recursives
Nous structurons cette partie de la facon suiv-
ante :
etude des fonctions denissables `a partir:
de fonctions de base, de la composition et
de la recursion primitive;
etude de la limite de cette classe de fonc-
tions;
generalisation de la notion de recursion prim-
itive;
equivalence de la nouvelle classe de fonc-
tions avec les machines de Turing.
97
Mod`eles de calcul
Les fonctions primitives recursives
Denition
Les fonctions primitives recursives sont le sous-
ensemble des fonctions
N
k
N [ k 0
qui peuvent etre denies `a laide des fonctions
primitives recursives de base, dune r`egle de
composition et dune r`egle de recursion.
98
Mod`eles de calcul
Les fonctions primitives recursives
Denition
Les fonctions primitives recursives de base sont:
1. la fonction 0(), elle na pas dargument et
renvoit la valeur 0;
2. les fonctions de projection
k
i
(n
1
, . . . , n
k
).
La fonction
k
i
renvoit comme valeur le i
eme
argument parmi k;
3. la fonction successeur (n) est denie par
(n) = n +1.
99
Mod`eles de calcul
Les fonctions primitives recursives
Denition
Nous denissons maintenant de mani`ere formelle
la notion de composition:
Soit g une fonction `a l arguments et h
1
, . . . , h
l
des fonctions `a k arguments. Si nous denotons
n
1
, . . . , n
k
par n, alors la composition de g et de
h
1
, . . . , h
l
est la fonction NN
k
NN denie par:
f( n) = g(h
1
( n), . . . , h
l
( n))
100
Mod`eles de calcul
Les fonctions primitives recursives
Denition
Nous denissons maintenant de mani`ere formelle
la notion de recursion primitive:
Soit g une fonction `a k arguments et h une
fonction `a k +2 arguments. Alors la fonction
f `a k +1 arguments telle que :
f( n, 0) = g( n)
f( n, m+1) = h( n, m, f( n, m))
est la fonction denie `a partir de g et h par
recursion primitive.
101
Mod`eles de calcul
Les fonctions primitives recursives
Denition
Si les fonctions g et h qui sont utilisees pour
denir une fonction f par recursion primitive
sont calculables par une procedure eective,
alors f est aussi calculable.
Les fonctions primitives recursives sont nale-
ment denies comme suit :
les fonctions primitives recursives de base;
toutes les fonctions obtenues `a partir des
fonctions primitives de base par un nombre
quelconque dapplications de la composi-
tion et de la recursion primitive.
102
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
Etudions maintenant quelques exemples de fonc-
tions primitives recursives.
Bien entendu, toutes les constantes naturelles
sont denissables `a laide de fonctions primi-
tives recursives: j() = j est denit grace `a la
composition de la facon suivante :
j() = ((
. .
j
(0()) ))
La fonction daddition plus(n
1
, n
2
) peut etre
denie par recursion primitive :
plus(n
1
, 0) =
1
1
(n
1
)
plus(n
1
, n
2
+1) = (
3
3
(n
1
, n
2
, plus(n
1
, n
2
)))
103
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
Pour alleger les notations, nous laisserons im-
plicites des notations comme
1
1
(n) (la fonc-
tion identite)... La denition de plus devient:
plus(n
1
, 0) = n
1
plus(n
1
, n
2
+1) = (plus(n
1
, n
2
))
104
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
Voici un exemple devaluation dune fonction
primitive recursive:
plus(7, 4) = plus(7, 3 +1)
= (plus(7, 3))
= ((plus(7, 2)))
= (((plus(7, 1))))
= ((((plus(7, 0)))))
= 11
105
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
La fonction produit de deux naturels est pri-
mitive recursive :
prod(n
1
, 0) = 0
prod(n
1
, n
2
+1) = plus(n
1
, prod(n
1
, n
2
))
ainsi que la fonction puissance (n
m
) :
n
0
1
= 1
n
n
2
+1
1
= n
1
n
n
2
1
106
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
La fonction factorielle est egalement primitive
recursive :
0! = 1
(n +1)! = (n +1) n!
107
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
Considerons maintenant la fonction predeces-
seur. Vu que nous travaillons dans les na-
turels, nous denissons 1 de la facon suiv-
ante:
pred(m) =
_
0 si m = 0
m1 si m > 0
Cette fonction est primitive recursive:
pred(0) = 0
pred(n +1) = n
108
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
On peut maintenant generaliser la denition
precedente pour obtenir une denition de la
dierence :
n

m =
_
0 si n < m
n m si n m
Cette fonction est primitive recursive :
n

0 = n
n

(m+1) = pred(n

m)
109
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
On denit la fonction signe de la facon suiv-
ante :
sg(m) =
_
0 si m = 0
1 si m > 0
Cette fonction est primitive recursive :
sg(0) = 0
sg(m+1) = 1
110
Mod`eles de calcul
Les fonctions primitives recursives
Exemples
On denit le produit borne par m dune fonc-
tion g( n, i) comme le produit de g pour les m
premi`eres valeurs de i :

m
i=0
g( n, i)
Si g est primitive recursive, la fonction
f( n, m) =

m
i=0
g( n, i)
est aussi primitive recursive :
f( n, 0) = g( n, 0)
f( n, m+1) = f( n, m) g( n, m+1)
111
Mod`eles de calcul
Les fonctions primitives recursives
Predicats
Un predicat darite k est une fonction de NN
k
dans vrai , faux ou 0, 1.
Mais pour ne pas introduire lensemble de valeurs
vrai , faux, on peut egalement considerer un
predicat darite k comme un sous-ensemble de
NN
k
(le sous-ensemble des elements de NN
k
o`u
le predicat est vrai).
Par exemple, nous pouvons denir le predicat
pair: pair(n) est vrai si et seulement si n est
un nombre pair. Est-ce que ce predicat est
primitif recursif ?
112
Mod`eles de calcul
Les fonctions primitives recursives
Predicats
Pour donner une denition de predicat primi-
tif recursif, nous allons proter du fait quun
predicat peut-etre vu comme une fonction (sa
fonction caracteristique) dans 0, 1 : nous
deduirons de notre notion de fonction primi-
tive recursive celle de predicat primitif recursif.
Denissons formellement la notion de fonction
caracteristique. La fonction caracteristique dun
predicat P NN
k
est la fonction f : NN
k
0, 1
telle que :
f( n) =
_
0 si n , P.
1 si n P.
Un predicat est primitif recursif si et seule-
ment si sa fonction caracteristique est primi-
tive recursive.
113
Mod`eles de calcul
Les fonctions primitives recursives
Predicats - Exemples
Considerons le predicat zerop, qui nest vrai
que pour la valeur 0. Sa denition est la suiv-
ante :
zerop(0) = 1
zerop(n +1) = 0
On denit le predicat plus petit que (n < m)
de la facon suivante :
petit (n, m) = sg(m

n)
Ce predicat est donc bien primitif recursif.
114
Mod`eles de calcul
Les fonctions primitives recursives
Predicats - Exemples
Les predicats obtenus par combinaisons booleen-
nes `a partir de predicats primitifs recursifs (g
1
, g
2
)
sont egalement primitifs recursifs. En eet :
et (g
1
( n), g
2
( n)) = g
1
( n) g
2
( n)
ou(g
1
( n), g
2
( n)) = sg(g
1
( n) +g
2
( n))
non(g
1
( n)) = 1

g
1
( n)
Le predicat egalite est egalement primitif recursif.
En eet, m = n equivaut `a (m < n m >
n), ce qui secrit au niveau des fonctions car-
acteristiques :
egal (n, m) = 1

(sg(m

n) +sg(n

m))
Il est facile maintenant de monter que les autres
predicats usuels , , ,=, . . . sur les naturels sont
egalement primitifs recursifs.
115
Mod`eles de calcul
Les fonctions primitives recursives
Predicats - Exemples
Observons maintenant dautres operations logi-
ques. Interessons-nous `a la quantication bornee.
La quantication universelle bornee permet dex-
primer quun predicat est vrai pour toutes les
valeurs inferieures `a une certaine borne.
i m p( n, i)
est vrai si p( n, i) est vrai pour tout i m.
La quantication existentielle bornee permet
dexprimer quun predicat est vrai pour au moins
une valeur inferieure `a une certaine borne.
i m p( n, i)
est vrai si p( n, i) est vrai pour au moins un
i m.
116
Mod`eles de calcul
Les fonctions primitives recursives
Predicats - Exemples
Montrons que ces deux formes de quantica-
tions sont primitives recursives.
La fonction caracteristique de i m p( n, i)
est donnee par :

m
i=0
p( n, i)
Vu que i m p( n, i) i m p( n, i), la
fonction caracteristique de i m p( n, i) est
donnee par :
1

m
i=0
(1

p( n, i))
117
Mod`eles de calcul
Les fonctions primitives recursives
Predicats - Exemples
Considerons maintenant les fonctions denies
par etude de cas. Soit f la fonction denie
par :
f( n) =
_

_
g
1
( n) si p
1
( n).
.
.
.
g
l
( n) si p
l
( n).
si les fonctions g
1
, . . . , g
l
et les predicats p
1
, . . . , p
l
sont primitifs recursifs, alors f est primitive
recursive.
En eet, si les p
i
sont mutuellement exclusifs
(ils doivent letre pour que la denition ci-
dessus ait un sens), on a :
f( n) = g
1
( n) p
1
( n) +. . . +g
l
( n) p
l
( n)
118
Mod`eles de calcul
Les fonctions primitives recursives
Predicats - Exemples
On denit egalement la minimisation bornee.
Ce mecanisme permet de denir une fonction
`a partir dun predicat.
Soit q( n, i), un predicat. Pour un m donne,
la valeur que denit la fonction obtenue par
minisation bornee de ce predicat est la plus
petit valeur i m telle que q( n, i) est vrai. Si
cette valeur nexiste pas, la fonction renvoit,
par convention, la valeur 0.
La minisation bornee dun predicat q( n, i) est
notee :
i m q( n, i)
119
Mod`eles de calcul
Les fonctions primitives recursives
Predicats - Exemples
La fonction i mq( n, i) est denie par recursion
primitive de la facon suivante :
i 0 q( n, i) = 0
i m+1 q( n, i) =
_

_
0
si i m+1 q( n, i)
i m q( n, i)
si i m q( n, i)
m+1
si q( n, m+1)
et i m q( n, i)
120
Mod`eles de calcul
Les fonctions primitives recursives
Limites
On vient de voir que les fonctions primitives
recursives permettent de denir les fonctions
et les predicats les plus usuels. On pourrait
maintenant se demander si les fonctions prim-
itives recursives couvrent bien la notion intu-
itive que nous avons de fonctions calculables?
On va malheureusement montrer que ce nest
pas le cas ! On va montrer quil existe des
fonctions qui sont intuitivement calculables et
qui ne sont pas primitives recursives.
121
Mod`eles de calcul
Les fonctions primitives recursives
Limites
Il est evident quil existe des fonctions qui ne
sont pas primitives recursives. En eet, les
fonctions primitives recursives sont enumerables
(on peut enumerer les chanes de caract`eres qui
les representent) il y a en a donc un nombre
denombrable alors que, souvenez-vous, il y a
un nombre non denombrable de fonctions.
Mais nous allons voir quil existe egalement des
fonctions qui sont calculables mais pas primi-
tives recursives.
Largument que nous allons developper est `a
nouveau base sur la methode de la diagonale.
122
Mod`eles de calcul
Les fonctions primitives recursives
Limites
Theor`eme : il existe des fonctions calculables
qui ne sont pas primitives recursives.
Preuve : notons tout dabord que lon peut
eectivement enumerer les fonctions primitives
recursives. Soit f
0
, f
1
, . . . , f
n
, . . ., une telle enu-
meration. Construisons `a partir de cette enumeration
une fonction calculable F qui nest pas primi-
tive recursive. Nous denissons F de la facon
suivante :
F(n) = f
n
(n) +1
Par construction la fonction F est dierente
de toutes les fonctions primitives recursives.
Montrons maintenant quelle est calculable. Pour
cela, on doit etablir une methode de calcul qui
123
soit valable pour calculer F(n) pour nimporte
quel n. La methode pour calculer F(n) est la
suivante :
1. enumerer les fonctions primitives recursives
jusque la fonction f
n
;
2. evaluer f
n
(n);
3. ajouter 1 `a la valeur obtenue au pt 2.
Il important de noter que la demonstration est
valide car les fonctions primitives recursives sont
eectivement enumerables et de plus levaluation
dune fonction primitive recursive termine tou-
jours.
Mod`eles de calcul
Les fonctions -recursives
Les fonctions -recursives etendent les fonc-
tions primitives recursives en permettant la min-
imisation non-bornee.
La minimisation non bornee dun predicat q( n, i)
est une fonction que lon note
i q( n, i)
et la denition de cette fonction est :
i q( n, i) =
_
le plus petit i tel que q( n, i) = 1
0 si un tel i nexiste pas
124
Mod`eles de calcul
Les fonctions -recursives
La minisation non bornee ne produit pas des
fonctions primitives recursives. Elle peut meme
produire des fonctions qui ne sont pas calcula-
bles.
En eet, la methode naturelle pour determiner
la valeur renvoyee par i q( n, i) est devaluer
q( n, i) pour des valeurs croissantes de i. Cette
evaluation peut ne jamais terminer si il nexiste
pas de i tel que q( n, i) = 1 !
125
Mod`eles de calcul
Les fonctions -recursives
Nous voulions etendre les fonctions recursives
mais nous voulons garder des fonctions qui
soient calculables. Pour parvenir `a cela, nous
avons desoin dune nouvelle notion.
Un predicat q( n, i) est dit sur si
n i q( n, i) = 1.
Nous pouvons maintenant denir les fonctions
-recursives.
126
Mod`eles de calcul
Les fonctions -recursives
Les fonctions et les predicats -recursifs sont
ceux obtenus `a partir des fonctions primitives
recursives de base par :
composition;
recursion primitive;
minimisation non bornee de predicats surs.
127
Mod`eles de calcul
Les fonctions -recursives
Il est clair que les fonctions -recursives sont
calculables dans le sens intuitif du terme (et ce
seulement car on applique la minimisation non
bornee `a des predicats surs).
On peut maintenant se poser `a nouveau la
question :
Est-ce quil existe des fonctions calculables qui
ne soient pas exprimables sous forme de fonc-
tions -recursives ?
128
Mod`eles de calcul
Les fonctions -recursives
ef fonctions calculables
Dans une partie precedente, nous avons enonce
la th`ese de Church: les fonctions calculables
par une procedure eective sont celles calcula-
bles par une machine de Turing.
Nous allons montrer ici que les fonctions -
recursives couvrent exactement les fonctions
calculables par une machine de Turing.
Cest un argument fort pour la th`ese de Church:
deux formalismes fondamentalement dierents,
proposes pour formaliser la notion de procedure
eective, identient exactement la meme classe
de fonctions.
129
Mod`eles de calcul
Les fonctions -recursives
ef fonctions calculables
Comment etablir cette equivalence ?
Il y a un premier obstacle : les machines de
Turing manipulent des chanes de caract`eres
alors que les fonctions recursives manipulent
des nombres entiers.
On va montrer quon peut coder chaque nom-
bre entier comme un mot sur un alphabet ni
et que lon peut faire correspondre `a chaque
chane de caract`ere un entier qui la represente.
130
Mod`eles de calcul
Les fonctions -recursives
ef fonctions calculables
Lemme. Il existe une representation eective
des nombres naturels par des chanes de car-
act`eres.
Les representations binaires et decimales sont
des exemples de telles representations. Ces
representations sont eectives car il existe des
fonctions -recursives (en fait primitives recursives)
qui etant donne un nombre naturel m, permet-
tent de calculer la longueur de sa representation
binaire (log
2
m) ainsi que pour n log
2
m, le
n
e
caract`ere de sa representation binaire.
131
Mod`eles de calcul
Les fonctions -recursives
ef fonctions calculables
Le contraire est egalement vrai.
Lemme. Il existe une representation eective
des chanes de caract`eres par les naturels.
Ce passage dune chane de caract`ere `a un
nombre naturel porte le nom de Godelisa-
tion.
Montrons comment cela est possible.
Soit lalphabet sur lequel sont denis les
mots. Supposons [[ = k. On choisit dabord
une representation de chaque symbole a
par un entier entre 1 et k, quon note gd(a).
Lencodage dune chane w = w
0
w
1
. . . w
l
est
alors:
132
gd(w) =

l
i=0
k
li
gd(w
i
)
Il est facile de se convaincre que cette represen-
tation est eective.
Mod`eles de calcul
Des fonctions -recursives
aux machines de Turing
Theor`eme. Toute fonction -recursive est
calculable par une machine de Turing.
Preuve. Nous nirons pas dans le detail de
la demonstration. Il sut de se convaincre
quil est possible decrire dans un langage usuel
comme PASCAL un algorithme qui interpr`ete
les fonctions -recursives quand leur arguments
sont donnes en encodage binaire par exemple.
Bien entendu, il est important que la minimi-
sation bornee soit appliquee seulement `a des
predicats surs.
133
Mod`eles de calcul
Des machines de Turing
aux fonctions -recursives
Theor`eme. Toute fonction calculable par ma-
chine de Turing est -recursive.
Preuve. Soit M une machine de Turing dal-
phabet calculant la fonction f
M
:

et soit gd un encodage des element de

par
des naturels. Nous montrons quil existe une
fonction -recursive f telle que
f
M
(w) = gd
1
(f(gd(w)))
Nous denissons les fonctions suivantes :
init(x) qui donne la conguration initiale
de M pour le mot dentree w de nombre
de Godel x cest-`a-dire que x = gd(w);
134
CongSuiv(x) qui renvoit la conguration
suivante de M si la conguration actuelle
est x;
Cong(x, n) qui donne la conguration at-
teinte apr`es n pas `a partir de x. Cette
fonction est denie par recursion :
_
Cong(x, 0) = x
Cong(x, n +1) = CongSuiv(Cong(x, n))
Stop(x) =
_
1 si x nal
0 sinon
Sortie(x) renvoit pour une conguration -
nale la valeur calculee par la machine de
Turing (lencodage du contenu du ruban)
Il sut de se convaincre que ces fonctions sont
-recursives (elles sont en fait primitives recursives).
La fonction -recursive f correspondant `a la
fonction f
M
est alors :
f(x) = Sortie(Cong(init(x), NbDePas(x)))
o`u
NbDePas(x) = i Stop(Cong(Init(x), i))
Mod`eles de calcul
Les fonctions partielles
Les fonctions partielles sont des fonctions qui
sont denies pour certaines valeurs de leurs
arguments et non pour dautres.
Par exemple, la division enti`ere est une fonc-
tion partielle.
On dira quune fonction partielle f =

est calculee par une machine de Turing M si,


pour tout mot dentree w pour lequel f est
denie, M sarrete dans une conguration
o`u f(w) se trouve sur le ruban;
pour tout mot dentree w pour lequel f
nest pas denie, M ne sarrete pas ou
135
sarrete en signalant, par une valeur con-
ventionnelle ecrite sur le ruban, que la fonc-
tion nest pas denie.
Une fonction partielle calculable est alors une
fonction partielle calculee par une Machine de
Turing.
Mod`eles de calcul
Les fonctions partielles
Une fonction partielle f =

est -
recursive si elle peut-etre denie `a partir des
fonctions primitives recursives de base par
composition,
recursion primitive,
minimisation non bornee.
La minimisation non bornee pouvant etre ap-
pliquee `a un predicat non sur. La fonction
i q( n, i) nest denie que si il existe un i tel
que q( n, i) = 1.
136
Mod`eles de calcul
Les fonctions partielles
On peut montrer `a nouveau lequivalence de
ces deux nouvelles notions :
Theor`emes. Une fonction partielle est -recur-
sive si et seulement si elle est calculable par une
machine de Turing.
137
Decidabilite - Indecidabilite
Introduction
Rappelons que nous avons etabli que :
probl`eme = langage;
algorithme (procedure eective) = machine
de Turing;
il y a plus de langages que de machines de
Turing.
Donc il y a des langages qui ne peuvent pas
etre decides par une machine de Turing. En
dautres termes, il existe des probl`emes qui ne
sont pas solubles par une procedure eective.
138
Decidabilite - Indecidabilite
Introduction
Mais peut-on concretiser ce resultat ?
Peut-on enoncer un probl`eme particulier qui ne
soit pas decidable ?
Cest lobjet de ce chapitre !
On va en eet donner des exemples de probl`emes
qui sont indecidables.
139
Decidabilite - Indecidabilite
Introduction
La demarche que nous utiliserons dans ce chapitre
est la suivante :
on demontrera tout dabord lindecidabilite
de deux probl`emes grace `a la methode de
la diagonale;
ensuite, nous utiliserons le principe de la
reduction pour demontrer lindecidabilite dautres
probl`emes.
140
Decidabilite - Indecidabilite
Introduction
Ce chapitre sera organise de la facon suivante:
deux probl`emes indecidables (deux niveaux
dindecidabilite);
technique de la reduction;
reduction : applications;
proprietes des langages recursivement enu-
merables;
dautres probl`emes indecidables et theor`eme
de Rice;
fonctions non-calculables.
141
Decidabilite - Indecidabilite
Probl`emes et classes de decidabilite
Probl`eme = langage de lencodage de ses in-
stances positives.
Rem : dans la suite nous nous permettrons de
ne pas xer explicitement lencodage.
Nous noterons R lensemble des langages qui
sont decides par une machine de Turing. On
notera donc L R le fait que L (le langage, le
probl`eme) soit decidable.
142
Decidabilite - Indecidabilite
Probl`emes et classes de decidabilite
Nous etudirons egalement une autre classe de
langages : la classe RE des langages recursi-
vement enumerables. Cest la classe des lan-
gages qui sont acceptes par une machine de
Turing.
A priori la classe RE ne contient pas que des
langages decidables.
Neanmoins, intuitivement RE est proche de la
decidabilite do`u son interet.
Bien entendu nous avons que R RE.
143
Decidabilite - Indecidabilite
Probl`emes et classes de decidabilite
Synonymes :
les langages de la classe R sont appeles :
recursifs, decidables, calculables, ou encore
solubles algorithmiquement;
les langages de la classe RE sont appeles :
partiellement recursifs, partiellement decidables,
partiellement calculables,partiellement sol-
ubles algorithmiquement, ou encore recursivement
enumerables;
144
Decidabilite - Indecidabilite
Un premier langage indecidable
Avec la methode de la diagonale, nous allons
montrer lexistence dun langage L
0
tel que
L
0
, RE.
Notons quon aura tout de suite que L
0
, R
(mais on aura montrer quelque chose de plus
fort).
Les machines de Turing et les mots nis sont
denombrables. On peut donc construire un
tableau inni A qui contient en ligne une enu-
meration M
0
, M
1
, . . . , M
n
, . . . des machines de
Turing et en colonne w
0
, w
1
, . . . , w
n
, . . . une enu-
meration des mots.
145
Decidabilite - Indecidabilite
Un premier langage indecidable
Les cases du tableau ont les valeurs suivantes:
A[i, j] = O si la machine M
i
accepte le mot
w
j
;
A[i, j] = N si la machine M
i
naccepte pas
le mot w
j
(sarrete et rejette, ou boucle).
Nous denissons le langage
L
0
= w [ w = w
i
A[i, i] = N.
146
Decidabilite - Indecidabilite
Un premier langage indecidable
Theor`eme : Le langage L
0
nappartient pas
`a la classe RE.
Preuve : faisons lhypoth`ese que le langage
L
0
RE. Dans ce cas, il existe une ma-
chine M
L
0
qui accepte L
0
. Montrons que ce
nest pas possible. En eet, cette machine
M
L
0
doit appartenir `a lenumeration. Faisons
lhypoth`ese quelle a le numero j (M
L
0
= M
j
).
Par denition on a w
j
L
0
ssi A[j, j] = N. Si
w
j
L
0
, on obtient une contradiction car on a
que w
j
nest pas accepte par M
j
et donc nest
pas accepte par M
L
0
ce qui nest pas possible.
De meme si w
j
, L
0
, on obtient une contra-
diction car on a que w
j
est accepte par M
j
et
donc accepte par M
L
0
. Dans les deux cas, on
obtient une contradiction.
147
Decidabilite - Indecidabilite
Un deuxi`eme langage indecidable
L
0
nest pas decidable et il nest pas non plus
partiellement decidable.
Nous cherchons maitenant un langage L tel
que L RE mais L , R. Nous cherchons donc
un probl`eme qui se trouve entre la decidabilite
et lindecidabilite : qui est indecidable mais
partiellement decidable.
Notons que cest important davoir un probl`eme
le plus faible possible pour pouvoir appliquer
la methode de la reduction.
148
Decidabilite - Indecidabilite
Un deuxi`eme langage indecidable
Nous avons besoin de quelques resultats in-
termediaires.
Lemme. Le complement dun langage de la
classe R est un langage de la classe R.
Preuve. Si L R alors il est decide par une
machine de Turing M. A partir de M, il suf-
t de construire une machine M

telle que M

repond oui ssi M repond non. (Bien entendu


cette construction ne marche que parce quon
sait que M na pas dexecution innie).
149
Decidabilite - Indecidabilite
Un deuxi`eme langage indecidable
Lemme. Si L RE et

L RE alors L R et

L R.
Preuve. Notons que, vu le lemme precedent,
nous devons seulement montrer que L RE
et

L RE implique L R. Si L,

L RE, il
existe M
L
et M

L
qui acceptent L et

L. Pour
decider L, nous construisons une machine M

qui simule en parall`ele M


L
et M

L
. M

sarrete
lorsque soit M
L
, soit M

L
sarrete. M

accepte
exactement dans les deux cas suivant :
M
L
provoque larret et accepte;
M

L
provoque larret et rejette.
150
Notons que nous sommes assures que M

sar-
retera sur tout mot w car soit w L, et alors
M
L
doit sarreter apr`es un nombre ni de pas,
soit w , L et donc w

L et M

L
sarrete apr`es
un nombre ni de pas.
Decidabilite - Indecidabilite
Un deuxi`eme langage indecidable
Une consequence du lemme precedent est que,
par rapport aux classes R et RE, la position
dune langage L doit correspondre `a un des
trois cas suivants :
L et

L R;
L , RE et

L , RE;
L , RE et

L RE

R.
Le troisi`eme cas nous donne un moyen de trou-
ver un langage recursivement enumerable et
non decidable : il sut de trouver un langage
qui est dans RE et dont le complement nest
pas dans RE.
151
Decidabilite - Indecidabilite
Un deuxi`eme langage indecidable
Montrons que le complement du langage L
0
est un tel langage.
Lemme. Le langage
L
0
= w [ w = w
i
M
i
accepte w
i

est dans la classe RE.


Preuve. La preuve est constructive : on mon-
tre quon peut construire une machine de Tur-
ing qui accepte L
0
. Cette machine proc`ede de
la facon suivante pour un mot dentree w :
elle determine i tel que w
i
= w. Pour cela
il sut denumerer les mots w
i
et verier
legalite;
152
elle determine M
i
(enumeration systematique
jusque la i
e
machine). Pour enumerer les
machines, il sut denumerer les sequences
des symboles et pour chaque reconnaitre
(crit`ere syntaxique) si la sequence encode
une machine. On peut ainsi determiner la
i
e
machine.
simuler lexecution de M
i
sur w
i
et accepte
si M
i
accepte w
i
.
Decidabilite - Indecidabilite
Un deuxi`eme langage indecidable
On a donc etablit le resultat suivant :
Theor`eme. Le langage L
0
deni par L
0
=
w [ w = w
i
M
i
accepte w
i
est indecidable
(nappartient pas `a R) mais appartient `a RE.
153
Decidabilite - Indecidabilite
Technique de la reduction
Nous venons detablir lexistence de deux pro-
bl`emes indecidables. Comment pouvons-nous
exploiter ces deux resultats pour montrer que
dautres probl`emes sont indecidables ?
Une technique permet de monter que dautres
probl`emes sont indecidables, cest la technique
de la reduction.
Cette technique nous permettra de demontrer
lindecidabilite de probl`emes plus naturels que
L
0
et L
0
.
154
Decidabilite - Indecidabilite
Technique de la reduction
La technique de la reduction permet, connais-
sant lindecidabilite dun probl`eme L
1
, de mon-
trer lindecidabilite dun probl`eme L
2
en raison-
nant de la facon suivante :
on demontre que si il existe un algorithme
qui decide le probl`eme L
2
alors il existe un
algorithme qui decide L
1
. Cela se fait en
donnant un algorithme pour L
1
qui utilise
un algorithme pour L
2
comme sous-pro-
gramme. Ce type dalgorithme est appele
une reduction car il reduit la decidabilite de
L
1
`a celle de L
2
.
on deduit que L
2
est non decidable car sa
decidabilite nous obligerait `a conclure `a la
decidablite de L
1
quon sait indecidable.
155
Decidabilite - Indecidabilite
Reduction : applications
Theor`eme : le langage universel
LU = M, w) [ M accepte w
est indecidable.
Preuve. Nous utilisons la methode de la reduction.
Faisons lhypoth`ese que LU est decidable et
montrons que sous cette hypoth`ese, nous pou-
vons construire une machine de Turing qui decide
L
0
.
Pour rappel
L
0
= w [ w = w
i
M
i
accepte w
i

156
Decidabilite - Indecidabilite
Reduction : applications
Lalgorithme (hypothetique) pour decider si w
L
0
est le suivant :
determiner lindice i tel que w = w
i
;
determiner la machine M
i
;
utiliser la procedure pour decider si M
i
, w
i
)
LU, si le resultat est positif, w est accepte,
sinon il est rejette.
Nous devons donc rejeter la decidabilite de LU.
Remarquons que LU est egalement indecidable
mais aussi non recursivement enumerable (vu
que LU est recursivement enumerable).
157
Decidabilite - Indecidabilite
Probl`emes indecidables
Montrons maintenant quelques autres probl`emes
indecidables. Un des plus connus est le probl`eme
de larret.
Theor`eme. Le langage
H = M, w) [ M sarrete sur w
nest pas recursif.
Preuve. Montrons que lexistence dune proce-
dure de decision pour H impliquerait lexistence
dune procedure de decision de LU (ce qui est
impossible, nous venons de le montrer).
158
Lalgorithme de decision pour LU serait :
decider (avec lalgorithme hypothetique) si
M, w) H;
si la reponse obtenue au point precedent
est negative, repondre non; par contre si
la reponse obtenue est positive, on simule
lexecution de M sur w et on repond ce que
M repond.
Dans les deux cas on est assure de la terminai-
son (Pq ?).
159
Decidabilite - Indecidabilite
Probl`emes indecidables
Le probl`eme de larret est egalement indecidable
pour les langages usuels (comme PASCAL).
Pour etablir ce resultat on proc`ede par reduction
au probl`eme de larret des machines de Turing:
construire un programme PASCAL P qui,
etant donne une machine de Turing M et
un mot w, simule le comportement de M
sur w;
utiliser la procedure de decision pour savoir
si P sarrete pour les donnees M, w).
160
Decidabilite - Indecidabilite
Probl`emes indecidables
Un grand nombre de variantes du probl`eme de
larret sont indecidables.
Exercices. Montrez que :
determiner si une machine de Turing sarrete
lorsque quelle est lance sur le mot vide est
indecidable;
determiner si une machine de Turing M
sarrete au moins sur un mot w (probl`eme
de larret existentiel) est indecidable;
determiner si une machine de Turing M
sarrete sur tous les mots w (probl`eme de
larret universel) est indecidable.
161
Decidabilite - Indecidabilite
Langages enumeres
par une procedure eective
Nous avons vu que les langages acceptes par
une machine de Turing sont dits recursivement
enumerables. Donc intuitivement, si un lan-
gage L est un langage accepte par une machine
de Turing M alors il doit exister une procedure
eective qui enum`ere ce langage.
Comment enumerer un tel langage ?
En premi`ere approximation, il surait de :
enumerer par ordre lexicographique (par ex-
emple) les mots de

;
simuler lexecution de la machine M sur
chacun de ces mots et conserver le mot si
M accepte celui-ci.
162
Decidabilite - Indecidabilite
Langages enumeres
par une procedure eective
Ce schema simpliste ne marche malheureuse-
ment pas. En eet, d`es quun mot est re-
jette par M pour cause dexecution innie,
la procedure bloque.
Il faut une solution plus astucieuse : considerons
les pairs (w, n) o`u w

et n NN. Ces
pairs sont enumerables. On consid`ere les pairs
(w, n) dans lordre de leur enumeration et on
eectue le traitement suivant : simuler lexecution
des n premiers pas dexecution de M sur w. Si
M accepte w en n pas alors on produit w.
163
Decidabilite - Indecidabilite
Langages enumeres
par une procedure eective
Notons que dune mani`ere generale :
Thm : une enumeration dans lordre lexicographique
est impossible.
Preuve : faisons lhypoth`ese du contraire. Soit
L un langage recursivement enumerable (et pas
recursif) enumere dans lordre lexicographique
(par exemple) par M. Pour decider si w L (ce
qui nest pas possible en general vu que L est
non recursif), il sut dexecuter M jusquau
moment o`u soit w sort, et donc on sait que w
L ou on depasse w dans lordre lexicographique
et on sait que w , L.
164
Decidabilite - Indecidabilite
Quelques autres probl`emes indecidables
Les probl`emes de validite et satisabilite dans
la logique du premier ordre sont indecidables.
Cest-`a-dire que determiner si une formule est
satisfaite par toutes les structures du premier-
ordre ou determiner si il existe au moins une
structure du premier ordre qui satisfait une for-
mule sont des probl`emes indecidables.
Notons que lensemble des formules du pre-
mier ordre qui sont valides sont recursivement
enumerables (theor`eme de completude de Goedel)
et donc par consequent, lensemble des for-
mules non valides du premier ordre ne sont pas
recursivement enumerables. (pourquoi ?)
165
Decidabilite - Indecidabilite
Quelques autres probl`emes indecidables
Le dixi`eme probl`eme de Hilbert est indecidable.
Ce probl`eme consiste `a determiner si lequation
:
p(x
1
, . . . , x
n
) = 0
o`u p(x
1
, . . . , x
n
) est un polynome `a coecients
entiers a une solution dans le domaine des en-
tiers.
166
Decidabilite - Indecidabilite
Theor`eme de Rice
Ce theor`eme dit que toute propriete non triv-
iale des langages recursivement enumerables
est indecidable.
Theor`eme : Suppons que C soit un sous-
ensemble propre et non vide de RE. Alors la
question de savoir si, etant donnee une ma-
chine de Turing M, L(M) C est indecidable.
Preuve : Faisons lhypoth`ese que , C (sinon
considerer le complement de C). De plus,
vu que C est non vide (C est une propriete
non triviale), nous pouvons faire lhypoth`ese
quil existe un langage L C, accepte par une
machine M
L
(C est un ensemble de langages
recursivement enumerables et donc L est ac-
cepte par une machine de Turing).
167
Considerons une machine M et un mot w. Faisons
lhypoth`ese, sans perte de generalite, que M
diverge sur w si w , L(M).
Supposons que nous voulons decider si M sarrete
sur w (ce qui est impossible).
Pour cela, nous construisons une machine M
w
dont le langage est soit L, soit .
Dans un premier temps, sur lentree y, M
w
simule M sur w. Si M(w) =oui, alors M
w
,
`a la place darreter, continue et simule M
L
sur
linput y : soit y L et la simulation de M
L
sarrete et donc M
w
accepte y, soit y , L et
la simulation de M
L
sur y diverge et donc M
w
diverge sur y.
On a donc :
M
w
(y): si M(w) =oui alors M
L
(y) sinon
diverge.
On a donc bien que
M
w
accepte le langage L
si et seulement si M accepte w
En dautres termes, la construction de M
w
`a
partir de w est une reduction du probl`eme darret
de M sur w au test L(M
w
) = L et donc L(M
w
)
C.
Donc si on pouvait decider L(M
w
)
?
C alors
on pourrait decider le probl`eme de larret de M
sur w !
Toute question non triviale sur un langage recur-
sivement enumerable est donc indecidable.
Complexite
Introduction
Nous venons de voir quil existe des probl`emes
qui nont pas de solutions algorithmiques. Nous
avons classie les probl`emes en decidables, semi-
decidables et indecidables.
Quand un probl`eme est decidable, on peut tout
de meme se demander si pour le resoudre, il
ne faut pas mettre en oeuvre des ressources
trop importantes (de temps ou de memoire,
par exemple).
Y a-t-il des probl`emes qui sont decidables mais
pour lesquels il nexiste pas dalgorithme e-
cace ?
168
Complexite
Introduction
La dicultee liee `a la resolution dun probl`eme
semble dicile `a quantier.
Notons tout de meme quil existe des mesures
qui permettent darmer quun probl`eme est
dicile `a resoudre. Par exemple, admettons
que nous arrivions `a monter que pour resoudre
certaines instances dun probl`eme, il faut une
memoire en nombre de bits egale au nombre
datomes dans lunivers (de lordre de 10
50
)
alors on peut certainement annoncer sans crainte
que le probl`eme ne pourra etre resolu par un
ordinateur dans toute sa generalite.
169
Complexite
Introduction
La complexite dun probl`eme sera mesuree `a
partir dune fonction qui relie la taille dun
probl`eme (de son encodage) et les ressources
(temps ou memoire) utilisees pour resoudre le
probl`eme. Ces fonctions denissent des classes
de complexite.
Toute fonction de NN dans NN est a priori un
candidat pour denir une classe de complexite.
Neanmoins, nous nous limitterons `a des fonc-
tions qui denissent des classes contenant des
probl`emes interessants.
Pour separer les notions de complexite accept-
able et non-acceptable, nous utiliserons la fronti`ere
denie par la limite entre les fonctions polyno-
miales et les fonctions exponentielles.
170
Complexite
Introduction
Nous dirons donc quun probl`eme requiert des
ressources raisonables si la quantite de ces res-
sources est bornee par une fonction polynomi-
ale dependant de la taille du probl`eme.
Inversement, nous dirons quun probl`eme re-
quiert des ressources non-raisonables si la quan-
tite de ces ressources est bornee par une fonc-
tion exponentielle dependant de la taille du
probl`eme.
Par exemple la fonction n
2
est consideree comme
acceptable, par contre la fonction 2
n
ne lest
pas. (est-il raisonable de considerer n
100
comme
acceptable ?)
171
Complexite
Introduction
Arguments en faveur de cette fronti`ere :
nous utiliserons cette fronti`ere pour mon-
trer que certains probl`emes ne sont pas
solvables par un algorithme de complexite
raisonable;
souvent lorsquun probl`eme a une complexite
polynomiale, il poss`ede un algorithme dont
la complexite est bornee par un polynome
de faible degre (rarement superieur `a 3 ou
4).
172
Complexite
Introduction
De plus, on peut montrer que cette fronti`ere
est :
insensible au materiel utilise (le gap deca-
cite entre, par exemple, une machine de
Turing et un algorithme execute par une
machine moderne est polynomiale);
insensible `a lencodage utilise pour representer
des instances du probl`eme (en tout cas en-
codage raisonable);
signicative en pratique.
173
Complexite
Introduction
De quelles techniques disposons-nous pour mon-
trer quun probl`eme nest pas soluble ecace-
ment ?
Techniques disponibles :
la technique de diagonalisation;
la technique de reduction.
Neanmoins, la diagonalisation ne permet de
prouver le resultat escompte. En eet, meme
si elle permet de monter que certains probl`emes
nont pas de solution polynomiale, elle ne per-
met de le faire que pour une classe restreinte
de probl`emes.
174
Complexite
Introduction
Il existe en eet un grand nombre de probl`emes
pour lesquels on suspecte quil nexiste pas
dalgorithmes polynomiaux mais pour lesquels
la methode de la diagonale ne nous permet
pas den faire la preuve. Nous devrons nous
contenter dun resultat plus faible.
Grace `a la methode de la reduction nous mon-
trerons pour une classe de probl`emes (interessants
en pratique), pour lesquels on na jamais trouve
dalgorithme polynomial et pour lesquels on
pense quil nen existe pas, que si il existait un
algorithme polynomial pour resoudre un seul
des probl`emes de cette classe alors tous les
probl`emes de cette classe possederaient un al-
gorithme polynomial. Cette classe est appelee
la classe des probl`emes NP-complets.
175
Complexite
Mesurer la complexite
Notions generales
Dans un premier temps, nous nous interesserons
principalement au temps necessaire `a lexecution
des algorithmes. Ce temps dexecution depend
principalement de :
la machine utilisee;
les donnees sur lesquelles lalgorithme est
applique.
176
Complexite
Mesurer la complexite
Notions generales
Mais doit-on considerer des mesures de com-
plexite du type suivant ?
Pour le nombre 64165461351654, sur
la machine AlphaX22, lalgorithme A
a un temps dexecution de 1.210
3
s
et lalgorithme B a un temps dexecution
de 9.8 10
4
s.
Cette information manque de generalite.
177
Complexite
Mesurer la complexite
Notions generales
Il convient donc dabstraire cette mesure. Nous
le ferrons dans trois directions :
taille versus valeur, la taille est certaine-
ment plus importante que les valeurs parti-
culi`eres sur lesquelles lalgorithme travaille;
neanmoins, pour des tailles egales dinstances,
les valeurs peuvent avoir une certaine im-
portance. Nous tiendrons compte du plus
mauvais cas (worst-case analysis);
178
Complexite
Mesurer la complexite
Notions generales
pour ne pas tenir compte du temps par-
ticulier necessaire pour la resolution dun
probl`eme sur une machine particuli`ere (PC
vs Super Computer Q), nous mesurerons la
complexite en nombre de pas (operations
elementaires). Notons que la vitesse pour
eectuer un pas peut simplement etre con-
sideree comme une constante multiplica-
tive.
179
Complexite
Mesurer la complexite
Notions generales
Par exemple, la methode de tri bubble sort
a une fonction de complexite de la forme cn
2
.
Cest-`a-dire quelle permet de trier n entiers de
taille bornee (par exemple encodes sur 32bits)
en un temps proportionnel `a n
2
. Dans cette
mesure la constante c nest pas tr`es signica-
tive. Dans la suite, nous utiliserons dailleurs
la notation O.
180
Complexite
La notation O
Une fonction g(n) est dite O(f(n)) sil existe
des constantes c et n
0
telle que pour tout n >
n
0
g(n) cf(n)
Avantages `a lutilisation de O :
cette notation simplie les notations;
elle introduit implicitement le facteur con-
stant necessaire;
181
Complexite
La notation O
elle nexprime quune borne superieure;
elle ignore les comportements pour les pe-
tites valeurs (evite les probl`emes lies aux
instructions dinitialisation par exemple).
Exemple : O(cn
2
) = O(n
2
), de meme
O(c
1
n
2
+c
2
n) = O(n
2
)
car pour n 1
c
1
n
2
+c
2
n (c
1
+c
2
)n
2
.
182
Complexite
Mesurer la complexite
Notions generales
En resume, de quoi depend une classe de com-
plexite ?
De trois param`etres :
le mod`ele de calcul (ici on consid`ere les
machines de Turing avec 1 ou plusieurs
rubans);
le mode dexecution : deterministe - non
deterministe;
la ressource que lon veut borner : le nom-
bre de pas dexecution (temps calcul) ou
la memoire. On bornera cette ressource
grace `a une fonction qui depend de la taille
de linput (probl`eme `a resoudre). Cette
fonction sera exprime en O.
183
Complexite
Algorithmes ecaces
Quand un algorithme est-il ecace ?
O(n), O(n
2
), O(n
3
), . . . ?
Dicile `a dire...
Par contre une complexite exponentielle O(c
n
)
est presque toujours excessive.
Par exemple si c = 2 et n = 100 (taille mod-
este), on a 2
100
= 10
30
. Si chaque operation
prend un nano-seconde, lexecution prendra de
lordre de 3 10
11
si`ecles ! Et si n = 1000
... Et donc quelque soit les facteurs constants
(vitesse de lordinateur) qui aectent lexponen-
tielle, le temps de calcul est clairement excessif
meme pour des tailles modeste de probl`emes.
184
Complexite
Algorithmes ecaces
Ceci etant dit, peut-on dire quune complexite
polynomiale est acceptable ? En general, non
! Mais en pratique la dierence entre com-
plexite polynomiale et exponentielle est telle-
ment forte quil est tentant de xer l`a une lim-
ite. De plus en pratique, il est rare dobtenir
des complexites polynomiales avec un exposant
eleve.
De plus, notre but principal est de montrer que
des probl`emes nont pas de solution algorith-
mique ecace.
185
Complexite
Probl`eme et langage
Ici, `a nouveau, nous nous interesserons `a des
probl`emes binaires.
Neanmoins, quelques precautions doivent etre
prises. Notre but est de tirer des conclusions
sur la complexite de probl`emes `a partir de la
complexite (de decision) du langage de lencodage
des instances positives du probl`eme.
Heureusement, vu que nous considerons la fron-
ti`ere polynomiale-exponentielle comme notre
mesure discriminante, la situation est assez sim-
ple.
En eet, il est facile de se convaincre que les
encodages naturels des instances dun probl`eme
sont equivalents `a un polynome pr`es.
186
Complexite
Probl`eme et langage
Considerons lencodage dun probl`eme relatif
`a un graphe ni (V, E). On peut par exemple
considerer les deux encodages traditionnels :
1. chaque sommet est represente par un nom-
bre binaire de longueur log
2
([V [) bits; chaque
arc par une pair (v
1
, v
2
); la representation
de ce graphe etant alors la liste de ces m
sommets et n arcs, lencodage est alors de
complexite O((m+n) log
2
(n))
2. un autre encodage consiste `a representer
les sommets comme ci-dessus mais les arcs
`a laide dune matrice dincidence. La com-
plexite de cette encodage est alors O(n
2
).
187
Complexite
Probl`eme et langage
Propriete dun encodage raisonable (qui per-
met de tirer une conclusion sur un probl`eme `a
partir de son encodage) :
lencodage ne peut contenir de bourrage.
Par exemple, il y a bourrage si il existe un
encodage de longueur n et quon ajoute `a
la suite de cet encodage 2
n
n caract`eres
sans signication. Si il existe un algorithme
polynomiale sur cet encodage, on ne peut
bien entendu pas en conclure que le probl`eme
soit en eet polynomial;
il doit etre possible de decoder la represen-
tation dun probl`eme en temps polynomial
(on ne veut pas dencodage o`u un chire
serait code via le probl`eme de larret dune
188
machine de Turing par exemple, dans ces
circonstances on pourrait passer `a c ote dune
solution polynomiale pour le probl`eme).
les nombres ne peuvent pas etre representes
en numeration unaire.
Complexite
et machines de Turing
Comme pour la decidabilite, nous adopterons
les machines de Turing pour formaliser la no-
tion dalgorithme polynomial.
Denition : soit M une machine de Turing
deterministe qui sarrete toujours. La com-
plexite en temps de M est la fonction T
M
(n)
denie par
T
M
(n) = maxm[x

, [x[ =
n et lexecution de M sur x comporte m etapes
Cest bien une complexite au cas le plus mau-
vais.
Denition : Une machine de Turing M est
polynomiale si il existe un polynome p(n) tel
que la fonction de complexite T
M
(n) satisfait :
T
M
(n) p(n)
pour tout n 0.
189
Complexite
et machines de Turing
Th`ese : si il existe un algorithme polynomiale
pour resoudre un probl`eme alors il existe une
machine de Turing polynomiale pour resoudre
ce probl`eme.
Theor`emes qui appuient cette th`ese :
Thm : Etant donnee un machine de Turing
multi-rubans M qui op`ere en temps O(f(n))
alors il existe un machine de turing M

qui
decide exactement le meme langage en temps
O(f(n)
2
).
Thm : Si une machine RAM calcule une
fonction en temps O(f(n)), alors il existe une
machine de Turing M `a 7 rubans qui calcule
en temps O(f(n)
3
).
Nous ne demontrerons pas ces thms. Le lecteur
interesse par plus de details est renvoye `a [CP93].
190
Complexite
La classe P
On denit maintenant la classe des probl`emes
polynomiaux.
Denition : La classe P est la classe des lan-
gages decides par une machine de Turing poly-
nomiale.
Nous armons que :
la classe P caracterise bien la notion dalgo-
rithme ecace. Les algorithmes polyno-
miaux sont souvent ecaces et les algo-
rithmes exponentiels le sont rarement;
la classe P a une denition robuste : elle
est insensible au choix particulier de ma-
chine et dencodage.
191
Complexite
Transformations polynomiales
Deux exemples de probl`emes qui nont pas de
solution polynomiale connue :
probl`eme du voyageur de commerce : soit
V un ensemble de n villes; d : V V NN
une fonction qui renvoit la distance en-
tre deux pairs de villes, et b une borne.
Le probl`eme consiste `a determiner si il ex-
iste un circuit passant une et une seule
fois par chaque ville et ayant une longueur
inferieure `a b.
Algo evident : essayer toutes les permuta-
tions possibles des n villes (on teste chaque
circuit possible). Mais sa complexite est
O(n!).
192
Complexite
Transformations polynomiales
probl`eme du circuit hamiltonien : soit un
graphe G = (V, E), le probl`eme consiste `a
decider si G contient un circuit ferme qui
passe une et une seule fois par chaque ville.
Algo evident : lalgorithme qui verie len-
semble des permutations de villes possibles
est egalement une solution, non polynomi-
ale malheureusement.
193
Complexite
Transformations polynomiales
A propos des deux probl`emes precedents, on
peut demontrer le fait suivant :
Thm : le probl`eme du voyageur (TS) de com-
merce est dans P si et seulement si le probl`eme
du circuit hamiltonien (HC) est dans P.
Une telle propriete est interessante car elle rem-
place deux questions HC
?
P et TS
?
P par
une seule question HC, TS
?
P
Pour etablir le thm ci-dessus, on utilise la no-
tion de transformation polynomiale.
194
Complexite
Transformations polynomiales
Denition : soient un langage L
1

1
et un
langage L
2

2
. Une transformation polyno-
miale de L
1
vers L
2
(notation L
1
L
2
) est
une fonction f :

2
qui satisfait les con-
ditions suivantes :
elle est calculable en temps polynomial,
f(x) L
2
si et seulement si x L
1
.
On utilisera egalement le terme reductions poly-
nomiales pour designer une transformation poly-
nomiale.
195
Complexite
Transformations polynomiales
On peut rephraser la denition precedente en
terme de probl`eme :
Une transformation polynomiale est une
fonction f calculable en temps poly-
nomiale qui `a partir dune instance
x dun probl`eme P
1
, calcule une in-
stante f(x) dune probl`eme P
2
telle
que x est positive ssi f(x) lest.
196
Complexite
Transformations polynomiales
Thm : il existe une transformation polynomi-
ale du probl`eme du circuit hamiltonien vers le
probl`eme du voyageur de commerce.
Preuve : Soit une instance de HC denie par
un graphe G = (V, E). On obtient linstance
de TS suivante :
lensemble des villes est egal `a lensemble
des sommets du graphe : C = V ;
la fonction d est denie comme suit :
d(v
i
, v
j
) =
_
1 si (v
i
, v
j
) E.
2 si (v
i
, v
j
) , E.
b = [V [
197
Il faut maintenant etablir deux choses :
la transformation est polynomiale. En ef-
fet, la liste des villes creee est la liste des
sommets, la denition de d est obtenue en
inspectant les arcs du graphe. Ces deux
operations sont clairement polynomiales.
la transformation preserve le caract`ere posi-
tif et negatif des instances.
En eet, pour le caract`ere positif : sup-
posons que linstance de TS construite soit
positive. Sil existe un parcours des villes
de longueur b = [V [, ce parcours ne peut
contenir que des arcs de longueur 1. Et
donc HC est positif.
Pour le caract`ere negatif : (contraposee)
si HC est positif, le circuit denit un par-
cours des villes nutilisant que des arcs de
longueur 1 et donc bien un circuit de longueur
totale [V [.
On a donc bien HC TS. Bien que ce soit
moins evident on peut egalement montrer TS
HC.
Complexite
Transformations polynomiales
Proprietes
Lemme : si L
1
L
2
alors
si L
2
P alors L
1
P;
si L
1
, P alors L
2
, P.
Preuve : la deuxi`eme armation est la contra-
posee de la premi`ere, nous ne justions donc
que la premi`ere.
Pour resoudre w L
1
, on transforme w en f(w)
avec la transformation polynomiale f. Nous
notons p(n) le polynome qui denit la com-
plexite de la transformation f. Ensuite on
teste f(w) L
2
. Vu que L
2
est polynomial
on note p

(m) le polynome denissant la com-


plexite de ce test. La complexite totale pour
tester w L
1
est donc, p(n) +p

(p(n)) qui est


bien un polynome.
198
Complexite
Transformations polynomiales
Proprietes
Notons que le lemme precedent nous permet
detablir que HC P ssi TS P.
Lemme : Les transformations polynomiales
sont transitives : si L
1
L
2
et L
2
L
3
alors
L
1
L
3
.
Preuve : Pour obtenir une transformation de
L
1
`a L
3
, il sut de composer les transforma-
tions de L
1
`a L
2
et de L
2
`a L
3
.
199
Complexite
Transformations polynomiales
Denition : Deux langages L
1
et L
2
sont
polynomialement equivalents si et seulement
si L
1
L
2
et L
2
L
1
.
La relation polynomialement equivanlent est
une relation dequivalence (transitive, reexive
et symetrique). Cette relation denit des classes
dequivalence.
Dans une meme classe dequivalence soit au-
cun probl`eme na de solution polynomiales soit
tous ont une solution polynomiale.
Si on veut montrer quun langage L appartient
`a une classe dequivalence polynomiale C, il
sut de trouver L
1
C et L
2
C tels que
L L
1
et L
2
L.
200
Complexite
Transformations polynomiales
Ceci est tr`es utile : on peut replacer les ques-
tions individuelles sur les langages dune classe
concernant leur polynomialite par la classe
admet-elle oui ou non une solution polynomi-
ale.
En pratique, on remarque la classe dequivalence
qui contient HC et TS, contient beaucoup de
probl`emes dont aucun na de solution polyno-
miale connue.
201
Complexite
La classe NP
La resolution du probl`eme du circuit hamil-
tonien est dicile,
non pas parce quil est dicile de decider
si une proposition de solution est eective-
ment une solution. Determiner si une se-
quence de sommets est ou non un circuit
hamiltonien est facile;
par contre il est dicile car il y a un nombre
exponentiel de solutions potentielles.
Cette caracteristique est vraie pour un grand
nombre de probl`emes.
202
Complexite
La classe NP
Si lenumeration ne coutait rien alors ces pro-
bl`emes auraient une solution algorithmique ef-
cace.
Si on adopte le mod`ele (non realiste) des ma-
chines de Turing non-deterministe pour enu-
merer les dierentes solutions potentielles alors
ces probl`emes sont faciles `a resoudre.
203
Complexite
La classe NP
Pour resoudre le probl`eme du circuit hamil-
tonien avec une machine de Turing non deterministe,
on proc`ede comme suit :
chaque execution possible de la machine
gen`ere une permuttation des sommets du
graphe (utilisation du non-determinisme);
la machine naccepte que les executions qui
correspondent `a des circuits hamiltoniens.
204
Complexite
La classe NP
Complexite des machines
non-deterministes
Denition : Le temps de calcul dune machine
de Turing sur un mot w est donne par
la longueur de la plus courte execution
acceptant le mot si celui-ci est accepte;
la valeur 1 si le mot nest pas accepte.
Donc, on ne tient pas compte du temps calcul
des mots non accepte
Denition : Soit M une machine de Turing
non deterministe. La complexite en temps de
M est la fonction T
M
(n) denie par
T
M
(n) = maxm[x

, [x[ =
n et le temps de calcul de M sur x est m
205
Complexite
Denition de la classe NP
Denition : la classe NP (Non deterministe
Polynomial) est la classe des langages acceptes
par une machine de Turing non deterministe
polynomiale.
Theor`eme : Soit L un langage appartenant
`a NP. Alors il existe une machine de Turing
deterministe et un polynome p(n) tel que M
decide L et est de complexite en temps bornee
par 2
p(n)
.
Preuve : Soit M
nd
la machine non-deterministe
de complexite q(n) qui accepte L. On sait donc
que si M
nd
accepte un mot w de longueur m,
alors elle laccepte avec une execution dune
longueur bornee par q(m).
206
Nous construisons une machine de Turing deterministe
M qui va :
simuler toutes les executions de M
nd
sur w,
executions de longueur l q(m);
accepter w si une de ces executions termine
dans un etat accepteur.
Quelle est la complexite de M ? Soit r le nom-
bre maximum de choix possibles pour une con-
guration successeur dans M
nd
(degre de non-
determinisme). Il y a donc r
q(n)
executions
possibles `a simuler. Chaque execution `a une
longueur bornee par q(n) et donc doit pou-
voir etre simulee en un temps borne par un
polynome en q(n), donc par un polynome q

(n).
Le temps calcul global est donc r
q(n)
q

(n),
qui est borne par 2
log
2
(r)(q(n)+q

(n))
qui est bien
de la forme 2
p(n)
pour un polynome p.
207
Ce theor`eme etablit que lon peut resoudre
les probl`emes de la classe NP avec un algo-
rithme exponentiel. Il y a beaucoup de raisons
de penser que lon ne peut pas resoudre ces
probl`emes avec un algorithme polynomial. Au-
cune preuve na toutefois pu etre construire `a
lheure actuelle. Cest le fameux probl`eme :
P =
?
NP
Complexite
Structure de la classe NP
La notion de polynomialement equivalent per-
met de structure NP.
Nous denition lordre partiel suivant :
Denition : Une classe dequivalence polyno-
miale C
1
est inferieure `a une classe dequivalence
C
2
(notation C
1
C
2
) sil existe une transfor-
mation polynomiale de tout langage C
1
vers
tout langage C
2
.
Intuitivement C
1
C
2
si les probl`emes de C
1
sont plus faciles `a resoudre que les probl`emes
de C
2
.
208
Complexite
Structure de la classe NP
Theor`eme : La classe NP contient la classe
P (P NP).
La preuve est immediate.
Lemme : La classe P est une classe dequivalence
polynomiale.
Preuve : Montrons que pour tout L
1
, L
2
P
on a L
1
L
2
. Soit w un mot :
on determine si w L
1
: temps polynomial
requit;
si w L
1
, generer w

tel que w

L
2
(ce w

peut-etre le meme pour tous les w). si w ,


L
1
, generer (un autre) w

tel que w

, L
2
.
209
Complexite
Structure de la classe NP
De mani`ere similaire, on peut montrer :
Lemme : Pour tout L
1
P et pout tout L
2

NP, on a L
1
L
2
.
210
Complexite
Les probl`emes NP-complet
NP-Complet = classe des probl`emes les plus
diciles dans NP.
Denition : Un langage L est NP-complet si
1. L NP,
2. pour tout langage L

NP, L

L.
Thero`eme : Si il existe un langage NP-complet
L est decide par un algorithme polynomial, alors
tous les langages NP sont decidables en temps
polynomial, cest-`a-dire P = NP.
211
Complexite
Etablir la NP-completude
Pour demontrer L NPC, on montre que : (i)
L NP (ii) pour tout langage L

NP, L

L.
A la place du point deux, on peut montrer quil
existe L

NPC tel que L

L (ceci grace `a
la propriete de transitivite des transformations
polynomiales).
Remarque : un probl`eme est NP-dur si il est
au moins NP. Il existe des probl`emes qui sont
plus diciles que les probl`emes NP-complet.
212
Complexite
Un premier probl`eme NP-complet
Tables de verite du calcul booleen :
p p
0 1
1 0
p q p q
0 0 0
0 1 1
1 0 1
1 1 1
p q p q
0 0 0
0 1 0
1 0 0
1 1 1
p q p q
0 0 1
0 1 1
1 0 0
1 1 1
213
Complexite
Un premier probl`eme NP-complet
Expression booleenne :
(1 (0 (1))) 0
La valeur de verite dune expression booleenne
est evaluable en temps polynomial (tables
de verite).
Calcul propositionnel : introduction de vari-
ables
(p (q (r))) s
Fonction dinterpretation : f : P 0, 1,
f attribue une valeur de verite aux variables
booleennes.
214
Formule satisfaisable : une formule propo-
sitionnelle est satisfaisable si et seule-
ment si il existe une fonction dinterpretation
f qui rend vraie (on note f [= le fait
que f rend vrai ).
Formule valide : une formule proposition-
nelle est valide si et seulement si toute
fonction dinterpretation f rend vraie la for-
mule .
Probl`eme : le probl`eme de satisfaisabilite
(validite) propositionnel est de determiner
si une formule est satisfaisable (validite).
Une formule est en forme normale con-
jonctive si cest une conjonction de disjonc-
tions de litteraux.
ex : (p q) (r s p)
Une formule est en forme normale dis-
jonctive si cest une disjonction de conjonc-
tions de litteraux.
ex : (p q) (r s p)
Complexite
Un premier probl`eme NP-complet
Theor`eme de Cook
Probl`eme SAT : probl`eme de decider la sat-
isfaisabilite dune formule propositionnelle en
forme normale conjonctive.
Theor`eme : le probl`eme SAT est NP-complet.
Preuve :
(i) SAT est bien dans NP. En eet, etant
donne une fonction dinterpretation f, il existe
bien un algorithme polynomial pour decider si
f [=
?
.
(ii) SAT est NP-dur. On va montrer quil
existe une transformation polynomiale de tout
langage de NP vers L
SAT
.
215
transformation `a 2 arguments : un mot w
et un langage L.
on sappuie sur le fait que chaque langage L
est caracterise par une machine de Turing
non deterministe polynomiale (bornee par
un polynome p(n)).
Soit un mot w ([w[ = n) et une machine de
Turing non deterministe M = (Q, , , , s, B, F)
(borne par p(n)).
Le schema de preuve pour montrer le fait que
SAT est NP-dur est le suivant : on va mon-
trer que pour chaque machine M et mot w,
on peut construire une formule
M,w
telle que
cette formule est satisfaisable si et seulement
si w L(M). De plus, on va montrer que la
formule construite est en forme normale con-
jonctive et sa longueur est bornee polynomi-
alement par rapport `a p(n).
Idee : une interpretation f satisfait
w,M
si f
decrit une execution acceptee de M sur w.
Le tableau suivant, quand il est complete, con-
tient la description dune execution acceptee
de M sur w. Ce tableau contient un nombre
de lignes et de colonnes borne par p(n).
Q P C R
. . . . . . . . .
. . .
. . .
. . .
. . .
. . .
Representation dune execution par des vari-
ables propositionnelles :
une proposition r
ij
pour 0 i, j p(n) et
.
r
ij
est vraie ssi lors du pas i de lexecution,
la case j du ruban contient le sym-
bole .
une proposition q
i
pour 0 i, j p(n) et
Q.
q
i
est vraie ssi lors du pas i de lexecution
la machine est dans letat .
une proposition p
ij
pour 0 i, j p(n).
p
ij
est vraie ssi lors du pas i de lexecution,
la tete de lecture se trouve en po-
sition j.
une proposition c
ik
pour 0 i, j p(n) et
1 k r.
c
ik
est vraie ssi le choix eectue lors
du pas i de lexecution est le choix
numero k.
On construit alors la formule
w,M
comme la
conjonction des formules propositionnnelles suiv-
antes :
chaque case du ruban contient exactement
un symbole :

0i,jp(n)
_
_
(

r
ij
)

,=

(r
ij
r
ij

)
_
_
Notons que cette formule a une longueur
de O(p(n)
2
).
`a chaque moment de lexecution, la tete
de lecture se trouve exactement sur une
position du ruban :

0ip(n)
_
_

0jp(n)
(p
ij
(

0j,=j

p(n)
(p
ij
p
ij

)))
_
_
Notons que cette formule a une longueur
bornee par O(p(n)
3
).
description de letat initial de la machine :
_
_

0jn1
r
0jw
j+1

njp(n)
r
0jB
_
_
q
0s
p
00
Notons que cette formule a une longueur
bornee par O(p(n)).
Les transitions de la machine sont exprimees
`a laide de formules de la forme suivante :

0 i < p(n)
0 j p(n)

_
(r
ij
p
ij
) r
(i+1)j

Cette formule peut facilement etre mise


en forme normale conjonctive (transformer
limplication en une disjonction). Sa longueur
est de O(p(n)
2
).
Autre formule pour formaliser la relation de
transition :

0 i < p(n)
0 j p(n)

1 k r
_
_
(q
i
p
ij
r
ij
c
ik
) q
(i+1)
)
(q
i
p
ij
r
ij
c
ik
) r
(i+1)j

(q
i
p
ij
r
ij
c
ik
) p
(i+1)(j+d)
_
_
O`u d 1, 1 (1 si deplacement de la
tete de lecture vers la gauche, +1 vers la
droite). Cette formule peut facilement etre
mise en forme normale conjonctive (trans-
former limplication en une disjonction). Sa
longueur est de O(p(n)
2
).
La formule suivante exprime que letat nal
est atteint :

0 i p(n)
F
[q
i
]
Cette formule est de longeur O(p(n)).
Donc la longueur de la formule enti`ere est de
O(p(n)
3
). Elle peut etre construite en temps
polynomiale par rapport `a p(n). On a bien
que
w,M
est satisfaisable ssi w L(M). On a
donc bien une transformation polynomiale de
tout langage NP vers SAT.
Complexite
Dautres probl`emes NP-complets
3SAT
Nous allons maintenant montrer quun cas par-
ticulier de SAT, appele 3SAT, est egalement
NP-complet.
3SAT : satisfaisabilite des formules proposi-
tionnelles en forme normale conjonctives qui
ont exactement 3 litteraux par clause.
Theor`eme : SAT 3SAT.
Une fonction dinterpretation f

: P

0, 1
est une extension de f : P 0, 1 ssi P P

et p P : f

(p) = f(p).
216
Complexite
Dautres probl`emes NP-complets
3SAT
Il faut montrer que pour toute formule en
forme normale conjonctive, on peut construire
une formule

en forme normale conjonctive


avec exactement 3 litteraux par clause et telle
que

est satisfaisable ssi est satisfaisable.


De plus la formule

doit etre constructible en


temps polynomial par rapport `a la taille de .
217
Complexite
Dautres probl`emes NP-complets
3SAT
Pour construire

, on proc`ede de la facon suiv-


ante :
une clause (x
1
x
2
) contenant deux
litteraux est remplacee par

(x
1
x
2
y) (x
1
x
2
y)
o`u y P

\ P (y est une nouvelle variable).


Notons quon a bien que que pour tout f
et f

une extension de f:
f [= ssi f

[=

Et donc, notre transformation preserve bien


la satisfaisabilite.
218
Complexite
Dautres probl`emes NP-complets
3SAT
une clause (x
1
) comportant un seul
litteral est remplacee par :

(x
1
y
1
y
2
)
(x
1
y
1
y
2
)
(x
1
y
1
y
2
)
(x
1
y
1
y
2
)
219
Complexite
Dautres probl`emes NP-complets
3SAT
une clause (x
1
x
2
. . . x
i
. . . x
l
)
comportant l 4 litteraux est remplacee
par :
(x
1
x
2
y
1
) (y
1
x
3
y
2
)
(y
2
x
4
y
3
) . . .
(y
i2
x
i
y
i1
) . . .
(y
l4
x
l2
y
l3
)
(y
l3
x
l1
x
l
)
A nouveau on peut se convaincre que la
formule obtenue est de taille polynomiale
par rapport `a la clause de depart et cette
clause est satisfaisable par et seulement par
les extensions des fonctions dinterpretation
qui satisfont la clause de depart.
220
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
VC : Etant donnes un graphe G = (V, E) et
un entier j [E[, il faut determiner sil existe
un sous-ensemble V

V tel que [V

[ j et tel
que pour tout arc (u, v) E, soit u, soit v V

.
Theor`eme : 3SAT VC.
Reduction : Pour chaque instance positive
(negative) de 3SAT, on construit une instance
positive (negative) de VC.
221
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
Instance de 3SAT :
E
1
. . . E
i
. . . E
k
o`u chaque E
i
est de la forme :
x
i1
x
i2
x
i3
o`u x
ij
est un litteral. Ces formules du calcul
propositionnel sont construites sur lensemble
de propositions :
1 = p
1
, . . . , p
l

222
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
Etant donnee la formule , on construit linstance
suivante de VC.
Le graphe G = (V, E) contient lensemble de
sommets V suivant :
(i) pour chaque proposition p
i
1, V contient
deux sommets: p
i
et p
i
;
(ii) pour chaque clause x
i1
x
i2
x
i3
, V contient
trois sommets x
i1
, x
i2
et x
i3
.
[ V [ est donc egale `a 2 l +3 k.
223
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
Lensemble E contient les paires suivantes :
(i) larc (p
i
, p
i
) pour chaque paire de som-
mets p
i
, p
i
, 1 i l;
(ii) les arcs (x
i1
, x
i2
), (x
i2
, x
i3
) et (x
i3
, x
i1
) pour
chaque clause x
i1
x
i2
x
i3
;
(iii) un arc entre chaque sommet x
ij
et le som-
met p ou p representant le litteral corre-
spondant.
Le nombre darcs du graphe G est donc de
l +6 k.
Finalement, on xe la constante j `a l +2 k.
224
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
Voici une illustration de cette reduction :
(p
2
p
1
p
4
) (p
3
p
2
p
4
)
p
1
p
1
p
2
p
3
p
4
p
4
x
21
x
23
x
13
x
11
x
12
p
2
p
3
x
22
225
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
Preuve de correction : on a donc construit
`a partir de la formule , une instance de VC
dont le graphe est G = (V, E) et j = l +2 k.
Il faut maintenant montrer que
est satisfaisable
i
G a une couverture C de taille j
226
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
()
On sait que est satisfaisable et donc il ex-
iste une valuation f telle que f [= . On va
construire C V `a partir de f de la facon suiv-
ante:
pour tout litteral u de la forme p
i
ou p
i
, on a u C
i f [= u.
pour chaque triangle, on inclut deux sommets dans
C de telle sorte que le sommet non choisi du triangle
est connecte `a un litteral u avec la propriete que
f [= u. Notons quun tel sommet existe toujours vu
que chaque clause evalue `a vrai pour linterpretation
f, et donc il existe au moins un litteral x
ij
par clause
i qui evalue `a vrai pour f.
Nous avons donc construit C et [C[ = l +2k.
227
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
Montrons que C est bien une couverture de G:
les arcs (p
i
, p
i
) sont couverts car soit p
i
C ou
p
i
C (toute valuation f rend soit p
i
vrai, soit p
i
vrai);
les arcs formant les triangles sont couverts. En ef-
fet, en selectionant deux sommets parmis les trois
dun triangle, on couvre toujours les arcs qui for-
ment le triangle;
les arcs qui relient un sommet du triangle selectionne
dans le point precedent au litteral correspondant
sont couverts; larc qui relie le sommet non selectionne
du triangle `a lensemble des litteraux est couvert par
le litteral car ce litteral evalue `a vrai et fait donc
partie de lensemble de couverture.
228
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
() Soit C une couverture de G de taille j.
Montrons qu`a partir de C, on peut construire
une fonction dinterpretation f telle que f [=
.
On denit f de la facon suivante :
pour tout p 1, f(p) = 1 i p C
Montrons maintenant que f [= .
Soit E
i
, une clause et x
i1
, x
i2
, x
i3
, les trois som-
mets qui correspondent `a cette clause. On sait
que [C[ = l +2k. Montrons que parmi les trois
sommets de la clause i, il y a en a exactement
deux qui appartiennent `a C.
229
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
En eet, on sait quil y en a au moins deux qui
appartiennent `a C sinon un des arcs (x
i1
, x
i2
),
(x
i2
, x
i3
), (x
i3
, x
i1
) est non couvert. Montrons
maintenant quau plus deux sommets du trian-
gle peuvent etre couverts. Faisons lhypoth`ese
que trois sommets dun triangle sont couverts.
Dans ce cas, C ne peut contenir que
2 k +l (3 +2 (k 1)) = l 1 sommets
parmi lensemble des sommets p
i
, p
i
[ p
i

1. Comme la cardinalite de 1 est l, il existe
un arc (p
i
, p
i
) qui nest pas couvert, ce qui est
impossible.
230
Complexite
Dautres probl`emes NP-complets
La couverture de sommets (VC)
Donc, exactement deux sommets de chaque
triangle sont couverts. Le troisi`eme sommet,
soit x
ij
est lorigine dun arc de la forme (x
ij
, p)
(si x
ij
= p), ou de la forme (x
ij
, p) (si x
ij
=
p). Supposons arbitrairement que ce soit larc
(x
ij
, p) qui existe. Vu que x
ij
, C, on a que
p C. Par denition on a donc f [= p et donc
la clause E
i
est satisfaite par f. On peut faire
le meme raisonnement pour chaque clause de
. On a donc etablit que f [= .
231
Complexite
Le matching `a trois dimensions (3DM)
Denition de 3DM.
Le machting `a trois dimensions est une gene-
ralisation du probl`eme du mariage : etant donne
n hommes non maries et n femmes non mariees,
une liste de toutes les paires homme-femme
acceptables, decider si il est possible darranger
n mariages de telle sorte que la polygamie est
evitee et que chacun recoive un epoux ou une
epouse quil/elle trouve acceptable. De mani`ere
analogue, dans le matching `a trois dimensions,
trois ensembles W, X et Y correspondent `a
trois sexes et chaque triplet de M correspond
`a un mariage `a trois acceptable.
Note : 2DM peut etre resolu en temps poly-
nomial alors que 3DM est NP-Complet.
232
Complexite
Le matching `a trois dimensions (3DM)
Theor`eme : 3DM est NP-Complet.
Preuve :
(i) 3DMest NP-Facile : Cette partie du resultat
est aisee `a etablir. En eet, un algorithme non-
deterministe doit seulement deviner q = [W[ =
[X[ = [Y [ triplets de M et verier, en temps
polynomial, quaucun des triplets devines nont
de coordonnees communes.
(ii) 3DM est NP-Dicile : on va etablir cette
partie du resultat en montrant 3SAT 3DM.
233
Complexite
Le matching `a trois dimensions (3DM)
Considerons :
U = u
1
, u
2
, . . . , u
n
, n variables proposi-
tionnelles;
C = c
1
, c
2
, . . . , c
m
, m clauses sur U con-
stituant une instance arbitraire de 3SAT.
On va construire les ensembles disjoints W, X
et Y tels que [W[ = [X[ = [Y [ et lensemble
M W X Y de telle sorte que M contient
un matching si et seulement si C est satis-
faisable.
234
Complexite
Le matching `a trois dimensions (3DM)
M sera partionne en trois sous-ensembles :
1. les lignes qui assignent une valeur de verite
aux variables propositionnelles;
2. les lignes qui testent la satisfaction des clauses;
3. les lignes garbage collection.
235
Complexite
Le matching `a trois dimensions (3DM)
Lignes valeur de verite
Pour chaque variable propositionnelle u U,
on construit un composant dont la structure
depend du nombre m de clauses dans C. Con-
siderons la variable propositionnelle u
i
(1 i
n), le composant associe `a cette variable im-
plique les elements :
internes a
i
[j] X et b
i
[j] Y qui napparatront
dans aucun autre triplet externe `a ce com-
posant;
externes u
i
[j], u
i
[j] W, 1 j m qui
apparatront dans dautres tuples.
Note : W contient 2 m n elements. Un
matching devra contenir exactement ce nom-
bre delements.
236
Complexite
Le matching `a trois dimensions (3DM)
Les triplets de ce composant peuvent etre par-
tionnes en deux sous-ensembles:
1. T
t
i
= ( u
i
[j], a
i
[j], b
i
[j]) [ 1 j m
2. T
f
i
= (u
i
[j], a
i
[j + 1], b
i
[j]) [ 1 j m
(u
i
[m], a
i
[1], b
i
[m])
237
Vu quaucun des elements internes
a
i
[j], b
i
[j] [ 1 j m
ne vont apparatre en dehors des triplets de
T
i
= T
t
i
T
f
i
, il est facile de voir que tout match-
ing M

doit comporter exactement m triplets


de T
i
, soit tous les triplets de T
t
i
ou tous les
triplets de T
f
i
. Donc, on peut voir les lignes
de T
i
comme nous forcant `a choisir la valeur
de verite vrai ou fausse pour u
i
. Donc M

M
denit un assignement de verite pour chaque
variable u
i
U : u
i
est vraie ssi M

T
i
= T
t
i
.
Rem : pour simuler lattribution dune valeur
de verite `a chaque variable propositionnelle, on
choisit donc mn lignes de M.
Complexite
Le matching `a trois dimensions (3DM)
Lignes test de satisfaction
Pour chaque clause c
j
C, on construit un
composant de test de satisfaction. Celui-ci
contient :
deux elements internes :
s
1
[j] X et s
2
[j] Y , et
les elements externes de lensemble
u
i
[j], u
i
[j] [ 1 i n
suivant quels litteraux apparaissent dans c
j
.
238
Complexite
Le matching `a trois dimensions (3DM)
Les triples de ce composant sont :
C
j
= (u
i
[j], s
1
[j], s
2
[j]) [ u
i
c
j

( u
i
[j], s
1
[j], s
2
[j]) [ u
i
c
j

Donc tout matching M

contiendra exactement
un triplet de C
j
. Mais cela nest possible que
si un element u
i
[j] (ou u
i
[j]) dun litteral u
i

c
j
( u
i
c
j
) napparat pas dans T
i
M

, ce
qui sera le cas si et seulement si la fonction
dinterpretation determine par M

satisfait la
clause c
j
.
Rem : on choisit donc ici m lignes (une pour
chaque clause).
239
Complexite
Le matching `a trois dimensions (3DM)
Lignes garbage collection
Pour rappel, W = U
i
[j], u
i
[j] [ 1 i n, 1
j m et contient donc 2 m n elements.
Jusqu`a present, n m + m elements ont ete
choisis et cela a ete possible ssi linstance de
3SAT est satisfaisable. Il faut maintenant per-
mettre de choisir des lignes contenant les m
(n 1) elements non encore choisis. On con-
struit nalement un composant G, qui implique:
les elements internes g
1
[k] X, g
2
[k] Y
avec 1 k m(n 1);
et les elements externes u
i
[j] et u
i
[j] de W.
G contient lensemble des triplets
G = (u
i
[j], g
1
[k], g
2
[k]), ( u
i
[j], g
1
[k], g
2
[k]) [
1 k m(n 1), 1 i n, 1 j m
240
Complexite
Le matching `a trois dimensions (3DM)
Donc chaque paire g
1
[k], g
2
[k] doit etre matchee
avec un unique u
i
[j] ou u
i
[j] qui napparait dans
aucun triplet de M

\ G. Il y a exactlement
m (n 1) elements ayant cette propriete et
la structure de G garantit quils peuvent tou-
jours etre couverts en choisissant dans M

G
de mani`ere appropriee.
En dautres termes, G garantit, que si un sous-
ensemble de M \ G satisfait toutes les con-
traintes imposees par les lignes du composant
valeur de verite et du composant test de
satisfaction, alors ce sous-ensemble peut-etre
etendu en un matching pour M.
241
Complexite
Le matching `a trois dimensions (3DM)
En resume, on a denit :
W = u
i
[j], u
i
[j] [ 1 i n, 1 j m
X = A S
1
G
1
avec :
A = a
i
[j] [ 1 i n, 1 j m
S
1
= s
1
[j] [ 1 j m
G
1
= g
1
[j] [ 1 j m(n 1)
Y = B S
2
G
2
avec :
B = b
i
[j] [ 1 i n, 1 j m
S
2
= s
2
[j] [ 1 j m
G
2
= g
2
[j] [ 1 j m(n 1)
242
Complexite
Le matching `a trois dimensions (3DM)
et on a donc :
M = (

n
i=1
T
i
) (

m
j=1
C
j
) G
On a bien M W X Y et vu que [M[ =
2mn + 3m + 2m
2
n(n 1), on peut construire
M en temps polynomial.
Des commentaires ci-dessus, il est clair que M
ne peut pas contenir de matching si C nest
pas satisfaisable.
Montrons maintenant que si C est satisfaisable
alors M contient un matching.
243
Complexite
Le matching `a trois dimensions (3DM)
Soit f : U 0, 1 une valuation des variables
propositionelles telle que pour toute clause c
j
,
on a f [= c
j
. Et soit z
j
u
i
, u
i
c
j
, un litteral
de la clause c
j
tel que f [= z
j
. Un tel litteral
doit exister vu que f est une valuation propo-
sitionelle qui satisfait chaque clause.
On construit alors M

M de la facon suiv-
ante:
M

f(u
i
)=1
T
t
i

f(u
i
)=0
T
f
i

(
m
j=1
(z
j
[j], s
1
[j], s
2
[j]))

o`u G

est choisi de facon appropriee dans les


lignes de G de telle sorte que chaque element
g
1
[k], g
2
[k] apparaissent une et une seule fois et
chaque u
i
[j], u
i
[j] nayant pas encore ete choisi
apparaisse une et une seule fois.
244
Complexite
Le matching `a trois dimensions (3DM)
245
Complexite
Le matching `a trois dimensions (3DM)
246
Complexite
Le matching `a trois dimensions (3DM)
247
Techniques pour prouver
la NP completude
La restriction
248
Techniques pour prouver
la NP completude
Le remplacement local
249
Techniques pour prouver
la NP completude
Le design de composants
250
Techniques pour prouver
la NP completude
Quelques exercices supplementaires
251
La NP completude
au sens fort
252
Autres classes de complexite
La classe coNP
253
Autres classes de complexite
La classe Pspace
254
Autres classes de complexite
Au del`a de Pspace
255