Está en la página 1de 362

mthodes

Informatique

Complexit
et algorithmique avance
une introduction

Ivan Lavalle

dition revue et augmente

Ingniorat - Doctorat
Hermann

Complexit
et algorithmique avance
une introduction
Ivan Lavalle

Si lessence et lapparence des choses se confondaient,


la science serait sans objet

Karl Marx (Le capital)

Hermann

diteurs

Ouvrage publi avec le concours de lcole Pratique des Hautes udes. EPHE.
Isbn 978 27056 6726 9

2008,

Hermann diteurs, 6 rue de la Sorbonne 75005 Paris

Toute reproduction ou reprsentation de cet ouvrage, intgrale ou partielle, serait illicite


sans lautorisation de lditeur et constituerait une contrefaon. Les cas strictement
limit usage priv ou de citation sont rgis par la loi du 11 mars 1957.

Table des matires


Introduction
xiii
Pourquoi tant de thorie ? . . . . . . . . . . . . . . . . . . . . . xiv

Historique

1 Histoires dalgorithmes
1.1 La notion nave dalgorithme . . . . . . . . .
1.1.1 Lalgorithme dEuclide . . . . . . . . .
1.1.2 Algorithme de lquation quadratique
1.1.3 Un algorithme qui vient de loin . . . .
1.1.4 Lalgorithme du Labyrinthe . . . . . .

II

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

Survol

2 Un
2.1
2.2
2.3
2.4

rapide tour dhorizon


Une stratgie de rsolution . . .
Deux exemples . . . . . . . . . .
Les classes P et N P . . . . . . .
La classe N P . . . . . . . . . . .
2.4.1 Rductibilit polynomiale
2.4.2 La classe N PC . . . . . .
2.5 Conclusion . . . . . . . . . . . .

3
5
7
7
9
11

17
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

19
20
20
22
22
23
24
25

3 La Machine de Turing
27
3.1 La Machine de Turing, modle dalgorithme . . . . . . . . 27
3.1.1 Description dune machine de Turing . . . . . . . . 29

ii

Complexit et Algorithmique avance

3.2
3.3

3.1.2 Prcision du concept dalgorithme . . . . . . . .


Un peu de formalisme . . . . . . . . . . . . . . . . . . .
Machines de Turing lmentaires . . . . . . . . . . . . .
3.3.1 Machine qui sarrte . . . . . . . . . . . . . . . .
3.3.2 Machine "tout gauche", machine "tout droite"
3.3.3 Machine effacement et criture . . . . . . . . .
3.3.4 Machines chercheuses de 1 ou de 0 . . . . . . . .
3.3.5 Composition de machines . . . . . . . . . . . . .

4 La Machine de Turing Universelle


4.1 Le problme gnral . . . . . . . . . . . . . .
4.1.1 Le problme du codage . . . . . . . .
4.1.2 Numrotation des Machines de Turing
4.2 Machine de Turing plusieurs rubans . . . .
4.3 Calculateur, calculateur universel . . . . . . .
4.3.1 Calculateur universel . . . . . . . . . .
4.3.2 Le nombre de Chatin . . . . . . . . .
5 Complexit de Kolmogorov (rudiments)
5.1 Introduction . . . . . . . . . . . . . . . .
5.1.1 Interprtation intuitive . . . . . .
5.1.2 Paradoxe . . . . . . . . . . . . .
5.2 Description dun objet . . . . . . . . . .
5.2.1 Fonction partiellement rcursive
5.3 Descriptions et tailles . . . . . . . . . .

III

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.

32
34
35
35
35
36
36
37

.
.
.
.
.
.
.

39
39
41
46
47
49
51
52

.
.
.
.
.
.

53
53
54
54
55
56
57

Thorie

6 Considrations thoriques
6.1 Quelques dfinitions fondamentales . .
6.1.1 Le problme, informellement .
6.1.2 Essais de dfinitions . . . . . .
6.1.3 Des ensembles bien particuliers
6.2 Indcidabilit . . . . . . . . . . . . . .
6.2.1 Plus ou moins indcidable . . .
6.3 Mathmatiques ou informatique ? . . .

61

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

63
63
63
64
68
75
76
76

Table des matires

iii

7 Ordres, Treillis et Algbre de Boole


7.1 Relations dquivalence . . . . . . . . . . . . . . . . . .
7.1.1 Ensemble quotient . . . . . . . . . . . . . . . .
7.2 Ordre, ordre partiel et prordre . . . . . . . . . . . . .
7.2.1 Isomorphisme et dualit densembles ordonns
7.3 Treillis . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.1 Treillis distributifs . . . . . . . . . . . . . . . .
7.4 Lalgbre de Boole . . . . . . . . . . . . . . . . . . . .
7.5 Lalgbre de Boole des expressions logiques . . . . . .
7.6 Expressions boolennes et problme SAT . . . . . . . .
7.6.1 Satisfaction dune expression . . . . . . . . . .
7.6.2 Algbre de Boole . . . . . . . . . . . . . . . . .
7.6.3 Le problme SAT . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

79
79
79
80
81
82
83
84
84
87
88
90
91

8 Circuits boolens
8.1 Portes et circuits digitaux . . .
8.1.1 Base standard . . . . .
8.2 Fonctions boolennes et circuits
8.3 Circuits boolens . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

93
93
95
98
99

9 Quelques problmes de rfrence


9.1 Introduction la thorie des graphes . . . . . . . .
9.1.1 Petit vocabulaire de thorie des graphes . .
9.1.2 Exemple de reprsentation de graphes . . .
9.1.3 Sous-ensembles remarquables de sommets .
9.1.4 Ensembles absorbants, nombre dabsorption
9.2 Existence de chemin . . . . . . . . . . . . . . . . .
9.2.1 Complexit . . . . . . . . . . . . . . . . . .
9.3 Flot maximal . . . . . . . . . . . . . . . . . . . . .
9.4 Couplage dans un graphe biparti . . . . . . . . . .
9.5 La satisfiabilit . . . . . . . . . . . . . . . . . . . .
9.5.1 Une technique algorithmique : la rduction
9.6 Le voyageur de commerce . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

103
103
104
104
106
108
109
113
113
116
118
118
120

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

10 Algorithme, rsolution
10.1 Faire son choix . . . . . . . . . . . . . . . . . . . . . . .
10.2 Pourquoi la complexit ? . . . . . . . . . . . . . . . . . .
10.3 Interprter la complexit . . . . . . . . . . . . . . . . . .

125
. 126
. 127
. 130

iv

Complexit et Algorithmique avance


10.4 Des mots . . . . . . . . . . . . . . . . .
10.4.1 Problme, instance, solution . . .
10.4.2 Algorithme . . . . . . . . . . . .
10.4.3 Taille dune instance . . . . . . .
10.5 Fonction de complexit en temps . . . .
10.6 Problmes de dcision, langages, codage
10.6.1 Problme de dcision . . . . . . .
10.6.2 Langage . . . . . . . . . . . . .
10.6.3 Codage . . . . . . . . . . . . . .

IV

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

Complexit

131
131
131
132
132
133
133
134
135

137

11 Modles de calcul, classes de complexit


11.1 La Machine de Turing comme modle de calcul
11.2 Langages et fonctions . . . . . . . . . . . . . .
11.3 Autres modles de calcul . . . . . . . . . . . . .
11.3.1 Automates de Markov . . . . . . . . . .
11.3.2 Machines RAM . . . . . . . . . . . . . .
11.3.3 Circuits boolens ou digitaux . . . . . .
11.3.4 Machine plusieurs rubans . . . . . . .
11.4 Complexit en temps . . . . . . . . . . . . . . .
11.5 Complexit en espace . . . . . . . . . . . . . .
11.6 Relation entre les complexits . . . . . . . . . .
11.7 La classe P . . . . . . . . . . . . . . . . . . . .
11.8 La classe N P . . . . . . . . . . . . . . . . . .
11.8.1 Approche informelle de la classe N P . .
11.8.2 Classe Co-N P . . . . . . . . . . . . . .
11.9 La classe N P Co N P . . . . . . . . . . . .
11.9.1 Dualit . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

139
139
142
147
147
148
149
151
153
155
155
156
157
158
160
162
163

12 Compltude N P
12.1 Le monde de N P . . . . . . . . . . .
12.1.1 La transformation polynomiale
12.2 La classe des problmes N PC . . . . .
12.2.1 Un problme N P complet . .
12.2.2 Le problme SAT . . . . . . .
12.3 SAT, problme N P complet . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

167
167
167
169
171
171
173

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

Table des matires


12.3.1
12.3.2
12.3.3
12.3.4
12.3.5
12.3.6

v
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

174
183
184
187
191
191

13 Le pire nest pas toujours certain


13.1 Autour de SAT . . . . . . . . . . . . . . . . . . .
13.1.1 Le cas 2-SAT . . . . . . . . . . . . . . . .
13.2 Cas particuliers de SAT . . . . . . . . . . . . . .
13.2.1 SET et SAT . . . . . . . . . . . . . . . . .
13.2.2 Validation, tautologie et non-satisfiabilit
13.2.3 Clauses de Horn . . . . . . . . . . . . . .
13.3 Le sac dos . . . . . . . . . . . . . . . . . . . . .
13.3.1 Pseudo-polynomialit . . . . . . . . . . .
13.4 Conclusion . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

197
197
197
200
200
201
202
205
208
209

14 Complexit et efficacit
14.1 Le produit matriciel . . . . . . . . . . . . . .
14.2 La multiplication de Straen . . . . . . . . .
14.3 Complexit de la mthode de Straen . . . .
14.3.1 De la complexit lefficacit . . . . .
14.3.2 La programmation rcursive . . . . . .
14.4 Reformulation de la mthode de Straen . . .
14.4.1 Hypothses et notations prliminaires
14.4.2 Proposition de Straen . . . . . . . . .
14.4.3 Gnralisation . . . . . . . . . . . . .
14.5 Lalgorithme . . . . . . . . . . . . . . . . . .
14.5.1 Ide de base . . . . . . . . . . . . . . .
14.5.2 Obtention des produits de Straen . .
14.6 Rgles dobtention des termes . . . . . . . . .
Conclusion . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

211
211
213
213
215
216
217
217
218
218
220
220
221
221
221

Le thorme de Lvine-Cook . . . . . .
quilibre . . . . . . . . . . . . . . . . .
Lappartenance N PC . . . . . . . . .
Couverture dun graphe . . . . . . . . .
La classe Co-N PC . . . . . . . . . . . .
Sur lquivalence de certains problmes

Que faire ?

15 Des algorithmes pour problmes N PC

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

223
225

vi

Complexit et Algorithmique avance


15.1 Lexhaustivit des procdures .
15.1.1 La mthode PSEP . . .
15.2 Le cas des jeux . . . . . . . . .
15.2.1 La mthode alpha/bta
15.3 En guise de conclusion . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

16 Introduction lalgorithmique probabiliste


16.1 Des algorithmes aux parfums de casinos . . . . .
16.1.1 Algorithmes numriques probabilistes . .
16.1.2 Algorithmes de Las Vegas . . . . . . . . .
16.1.3 Algorithmes de Monte-Carlo . . . . . . .
16.2 Probabilits versus dterminisme . . . . . . . . .
16.2.1 Le problme . . . . . . . . . . . . . . . . .
16.3 Les probabilits pour rduire la complexit . . .
16.3.1 Gnralits . . . . . . . . . . . . . . . . .
16.3.2 Le Problme . . . . . . . . . . . . . . . .
16.3.3 Lalgorithme de Borkva . . . . . . . . .
16.3.4 Artes "lourdes" et arbre couvrant . . . .
16.3.5 chantillonnage alatoire, arbre couvrant
16.3.6 Algorithme linaire . . . . . . . . . . . . .
16.3.7 Algorithme probabiliste darbre couvrant
16.4 Rsoudre SAT de manire probabiliste . . . . . .
16.4.1 Rappel . . . . . . . . . . . . . . . . . . . .
16.4.2 2-SAT, solution probabiliste, analyse . . .
16.4.3 Chane de Markov et complexit en temps
16.4.4 Gnralisation 3-SAT . . . . . . . . . .
16.4.5 Proposition dalgorithme modifi . . . . .
16.5 Un problme daccord . . . . . . . . . . . . . . .
16.5.1 Un exemple issu de la Biologie . . . . . .
16.6 Une solution synchrone . . . . . . . . . . . . . .
16.6.1 Le protocole . . . . . . . . . . . . . . . . .
16.6.2 Preuve de bon fonctionnement in absurdo
16.6.3 valuation de la complexit . . . . . . . .
16.7 Le cas asynchrone . . . . . . . . . . . . . . . . .
16.7.1 valuation de la complexit . . . . . . . .
16.7.2 Preuve . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

225
226
230
232
236

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

237
. 237
. 239
. 239
. 239
. 240
. 240
. 242
. 242
. 242
. 243
. 245
. 246
. 248
. 248
. 250
. 250
. 251
. 254
. 256
. 259
. 262
. 262
. 263
. 264
. 264
. 265
. 265
. 266
. 267

Table des matires

vii

17 De Shannon Kolmogorov
17.1 Lentropie . . . . . . . . . . . . . . . . . . .
17.1.1 Linformation de Shannon . . . . . .
17.1.2 Gnralisation . . . . . . . . . . . .
17.2 Notations . . . . . . . . . . . . . . . . . . .
17.2.1 Le thorme dinvariance . . . . . .
17.2.2 Ne pas dpasser les bornes . . . . . .
17.2.3 Compressibilit et incompressibilit .
18 Le modle quantique
18.1 Introduction . . . . . . . . . . . . . .
18.2 Retour sur les bits classiques - Cbits
18.3 Oprations sur les Cbits . . . . . . .
18.3.1 Transformation de Hadamard
18.4 Les bits quantiques ou Qbits . . . .
18.5 Oprations sur les Q-bits . . . . . .
18.6 Extraire linformation des Qbits ? . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

269
. 270
. 270
. 273
. 275
. 277
. 281
. 282

.
.
.
.
.
.
.

285
. 285
. 286
. 288
. 292
. 292
. 294
. 296

A Notations de Bachman-Landau
299
A.1 Les symboles grand O, , . . . . . . . . . . . . . . . . . 299
A.1.1 Le symbole petit o . . . . . . . . . . . . . . . . . . 300
Index des noms cits
301
Index des noms cits . . . . . . . . . . . . . . . . . . . . . . . . 301
Index des concepts et notions
303
Index des concepts et notions . . . . . . . . . . . . . . . . . . . 303
Index des algorithmes
310
Index des Algorithmes . . . . . . . . . . . . . . . . . . . . . . . 310
Bibliographie

313

Table des figures


1.1
1.2
1.3
3.1
6.1
8.1
8.2
8.3
8.4
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
12.1
13.1
15.1
15.2
15.3
15.4
15.5

Une page du trait des 9 procdures . . . . . . . . .


Algorithme dAl Khawarizmi . . . . . . . . . . . . .
Labyrinthe . . . . . . . . . . . . . . . . . . . . . . .
Machine de Turing . . . . . . . . . . . . . . . . . . .
Hirarchie des ensembles . . . . . . . . . . . . . . . .
Graphes de schmas logiques de circuits digitaux . .
Schma logique de circuit boolen . . . . . . . . . .
Oprateurs boolens vs graphes . . . . . . . . . . . .
Schmatisation gnrale dune expression boolenne
Exemple de graphe . . . . . . . . . . . . . . . . . . .
Ensemble stable intrieurement . . . . . . . . . . . .
Ensemble absorbant . . . . . . . . . . . . . . . . . .
Existence de chemin entre deux sommets . . . . . .
Exemple de graphe avec capacits . . . . . . . . . . .
Graphes bipartis avec et sans possibilit de couplage
Couplage et flot . . . . . . . . . . . . . . . . . . . . .
checs et recouvrement . . . . . . . . . . . . . . . .
Une instance du problme VRP . . . . . . . . . . . .
Classes de complexit . . . . . . . . . . . . . . . . .
Interprtation graphique de 2-SAT . . . . . . . . . .
Arborescence PSEP . . . . . . . . . . . . . . . . . .
Arbre partiel du jeu de nim . . . . . . . . . . . . . .
Arbre partiel du jeu de nim r-valu . . . . . . . . .
Arbre de jeu valu pour alpha/bta . . . . . . . . .
Arbre de jeu et coupes alpha/bta . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

5
8
13
30
68
95
97
100
101
105
106
109
110
116
118
120
122
124
172
200
232
233
234
235
238

Avertissement la
deuxime dition
ette deuxime dition de Complexit et algorithmique avance a
t complte et tendue la demande de lecteurs de la premire
dition. On y trouvera du nouveau sur les classes de complexit (classe
Co-N P entre autres) et sur les modle de calcul, le chapitre 11 a t
entirement remani en introduisant plus formellement certains concepts
sans, esprons le, avoir cd sur laspect pdagogique et la comprhension
du propos. Le chapitre 17 a galement t profondment remani, le
lecteur peut y aborder de faon plus approfondie le concept dentropie
en relation avec la thorie de Shannon.

I.L.

Introduction
"Si chaque instrument pouvait, par ordre ou par pressentiment, accomplir son uvre propre, si, pareilles aux statues lgendaires de Ddale ou
aux trpieds dHphaistos, qui, au dire du pote, "pouvaient deux-mmes
entrer dans lassemble des dieux" les navettes tissaient delles-mmes et
les plectres jouaient de la cithare, alors les matres duvre nauraient
nul besoin de manuvres, ni les matres desclaves."
Aristote (La Politique)
me si la livraison dun numro spcial de Dcembre 2003 de ldition
franaise dune prestigieuse revue scientifique amricaine crot
pouvoir titrer La complexit, science du XXIe`me sicle, la problmatique
de la complexit est ancienne. Toute lactivit de comprhension du
monde qui nous entoure tend matriser cette complexit.
Un premier essai implicite de systmatisation de cette dmarche de
matrise est sans doute le Discours de la mthode de Ren Descartes qui
date de 1637. Toutefois, ce texte fondateur dune dmarche la fois scientifique et philosophique, les deux nallant malheureusement pas souvent
de pair, nidentifie pas la complexit en tant que telle. Il faudra attendre
297 ans pour quen 1934 Gaston Bachelard identifie la complexit comme
tant en elle mme sujet dtude 1 . Bien entendu cela ne sest pas fait
tout seul, entre temps les sciences se sont dveloppes, certaines limites
sont apparues la dmarche cartsienne. Il est des phnomnes quon
ne peut aborder quen tant que systmes et pour lesquels le tout est
"plus" que la runion des parties. Les concepts de probabilit et de non
dterminisme ont merg, en particulier aprs les travaux sur la thermodynamique. Cest aprs 1936, avec les travaux de Burk (USA), Church

1. Il est peu de textes rcents informs traitant de la complexit de faon philosophique, signalons toutefois lexcellent article du philosophe Lucien Sve dans
[Sv05].

xiv

Complexit et Algorithmique avance

(argentin), Couffignal (franais), Goldstine (USA), Kolmogorov, Lebedev,


Markov, Thratenbrot (URSS), Neumann (hongrois), Turing (anglais) 1 ,
la naissance de linformatique, quapparaissent les outils conceptuels
permettant de prciser le concept de complexit.

Pourquoi tant de thorie ?


Lobjectif poursuivi ici est de montrer quelles sont les voies qui
permettent de prvoir tant que faire se peut, les moyens mettre en
uvre, voire les cots sociaux, pour rsoudre tel ou tel problme pos par
le monde rel. Pour ce faire, lexpos commence par lalgorithmique dont le
propos est bien circonscrit, puis nous essaierons chaque fois quapparatra
une possibilit dchappe, dtendre le propos au del du strict champ
informatique. Ainsi, il sagit dindiquer au lecteur intress un champ
de recherche possible, les voies dans lesquelles il semble souhaitable de
sengager.
Cet ouvrage est compos en cinq parties qui correspondent, grosso
modo aux trois cycles universitaires, les parties 1 et 2 correspondent au
premier cycle, les parties 3 et 4 au deuxime cycle avec, pour la troisime
partie des ouvertures vers la recherche.
La premire partie de cet ouvrage, commence par montrer comment les
mathmatiques, par leur pouvoir de modlisation, ont permis didentifier
les bornes de ce qui est possible, et raisonnable, avec les ordinateurs
actuels, cest--dire dont le paradigme est la machine de Turing, ou
lautomate fini de Markov. Cest un exercice de rigueur peu accessible
quiconque na abord linformatique que comme une technique, un savoir
faire. Il sagit ici de la science informatique.
La large diffusion des ordinateurs dans le monde, leur omniprsence
dans quasiment toutes les sphres de lactivit humaine, de la conqute
spatiale la cuisine en passant par la mdecine ou la chorgraphie fait que
tout ce qui concerne linformatique en ses fondements concerne aussi de
nombreux domaines. Ainsi, sont concerns les disciplines et champs social,
1. tout seigneur tout honneur, cest Alan Mathison Turing qui est considr
comme le pre fondateur de la science informatique lors de sa clbre confrence du
28 mai 1936. En fait mme si dautres taient sur la voie, cest lui qui, demble a
vu lampleur du champ quil venait douvrir qui dpassait trs largement la simple
construction de machines logiques, mais crait une nouvelle discipline scientifique.

Prface

xv

individuel, biologique et psychologique, technique et organisationnel,


conomique, politique, artistique... Il sagit l dactivits et champs
dinvestigations qui, il y a peu encore taient considrs comme trangers
lun lautre. En effet, que peut-il bien y avoir de commun entre la
biologie et le thtre ou entre la mtorologie et la circulation automobile
aux feux tricolores ? He bien linformatique justement est commune ces
diffrents domaines et ils sont rgis par des lois communes. Prcisment,
pour apprhender cette diversit dans son unit, les hommes ont invent
les concepts, des thories, la science. Pour agir dessus ils ont invent des
outils, les techniques affrentes et la technologie. Ainsi, pour voir arriver
de plus loin les bateaux des marchands qui le parrainaient, Galille a-t-il
considrablement amlior la lunette dite "longue vue" et par consquent
fourni dans un mme mouvement la lunette astronomique qui a permis
aux hommes de "voir plus loin que le bout de leur nez" et pu mieux
connatre lespace qui entoure notre plante. Au del de ces objets
matriels la thorie fournit des outils pour "penser plus loin que le bout
de son nez" et aborder des horizons qui seraient inaccessibles sans elle,
y compris de faon trs concrte. Dans le domaine qui nous concerne
ici, la thorie est base sur les mathmatiques. La thorie centrale est
l algorithmique qui comprend la thorie de la complexit laquelle cet
ouvrage est consacr et de la calculabilit que mous effleurerons. Ces
thories expliquent de faon logique comment fonctionnent les ordinateurs
hors des aspects purements techniques, et quelles sont les limites de ce
qui est faisable avec ceux-ci, et plus gnralement pour ce qui est de la
calculabilit, ce qui est calculable et ce qui ne lest pas et pourquoi. Au
passage, il nous aura fallu dfinir ce que recouvrent les notions de calcul
et de problme.

Cest aprs une escapade de trente ans que je reviens sur ces terres.
Au cours dun travail [Lav74] qui ma sembl lpoque fort complexe,
jai t amen mintresser aux fondements thoriques de linformatique.
Concevant des algorithmes, je me suis pos la question : "mais questce donc, fondamentalement quun algorithme ?". Aprs avoir frquent
Euclide, Thse et la reine Didon, je me suis tourn vers les travaux
de Turing. Mon chemin tait ds lors balis pensais-je. Je concevais
des algorithmes qui, cods devenaient programmes dont la destine
tait dtre excuts sur des ordinateurs. Ma formation de Recherche

xvi

Complexit et Algorithmique avance

Oprationnelle 1 mincitait "optimiser" mes algorithmes. Bien, optimiser


daccord, mais par rapport quoi ? Je rencontrais alors les travaux de
Cook et Lvine [Coo71, Lv73a] puis de Edmonds et Karp [EK72]. Je
savais maintenant ce quoptimiser un algorithme voulait dire. Puis je
rencontrais les travaux pionniers de Lupanov [Lup63], injustement oubli
aujourdhui me semble-t-il, le concept de complexit y prenait une autre
dimension. Le terme complexit y tant utilis dans un sens a priori
diffrent.
Le terme de complexit est utilis dans diffrents domaines. Il a
t bien dfini en mathmatique et en informatique, sciences 2 dans
lesquelles, on est mme capable de donner une mesure de cette complexit.
Nous allons donc, dans ce qui va suivre essayer de mieux cerner ce
concept, ce qui ne manquera pas de nous entraner sur des rivages
inattendus. Visitant un t, dans le sud-ouest ( Plieu) de la France, une
exposition de sculptures de Miro avec un ami sculpteur, je lui posais
une question concernant une uvre qui me laissait perplexe. Sa rponse
mentrant dans un abme de perplexit encore plus profond. - Cest une
sculpture complexe me rpondit-il. Saisissant la balle au bond, je lui posais
videmment la question : - Quentends-tu-toi sculpteur par "complexe" ?
Et je le surpris utiliser des mots semblables ceux qui vont suivre au
long de ces pages. Lisant rcemment un ouvrage du palontologue Stephen
Jay Gould (voir [Gou93]), jy trouvais plusieurs reprises les expressions
organisme complexe ou complexit de lvolution dans un sens que, je
pense, ne dmentiront pas les pages qui suivent. Le concept de complexit
prend donc une dimension transversale, toutefois, nous nous limiterons
dans un premier temps ce qui concerne linformatique. Du reste, on
peut considrer, et nous verrons pourquoi, que lordinateur est, lheure
actuelle, linstrument adquat pour tudier la complexit et laffronter
quand cest possible. Comme lcrit Hebenstreit 3 , et contrairement
1. La mode voudrait que jutilise aujourdhui les termes de Logistique ou dAide
la Dcision.
2. Soyons clair demble, pour moi linformatique nest pas la computer science,
la science dun instrument na aucun sens en Franais. Une science manipule - et
cre - (quoi quen disent Deleuze et Gattari [DG91]) des concepts et des modles,
activit pour laquelle elle peut tre amene utiliser des instruments. Lastronomie
nest pas, que je sache, la science du tlescope, pas plus que la biologie nest la science
du microscope, aussi indispensable aient put tre ces instruments au dveloppement
des dites sciences.
3. Article "Informatique" dans lencyclopdie universelle, Vol. 12, P. 304.

Prface

xvii

Heinz Pagel [Pag90] qui affirme que "lordinateur est linstrument de la


complexit", on peut considrer que :
"Lordinateur nest donc aucun degr un "cerveau lectronique"
ou une "machine intelligente", mais bien au contraire un outil sur lequel lhomme se dcharge de tches qui, justement, se sont avres non
intelligentes".
Cest dire ici, des tches dont on est capable de rduire la complexit
celle du programme qui les rsoud, et surtout qui rsoud tous les
problmes de la classe, la classe tant rpute infinie et le programme
cod en un nombre fini de caractres. Certes lordinateur a voir avec la
complexit, mais seulement en ce quil est la ralisation matrielle dune
machine abstraite, la Machine de Turing .
Cette machine abstraite nous donne laune laquelle mesurer la
complexit de tel ou tel algorithme (concept quelle permet au passage
de refonder), et par voie de consquence de tel ou tel problme. La
thorie des machines abstraites, automates finis (voir [Mar54, Tra63]) ou
machines de Turing nous permettra galement de cerner les frontires de
ce qui est actuellement faisable avec les ordinateurs actuels, quelles sont
les barrires fondamentales faire sauter, et quelles voies semblent prometteuses pour ce faire. Faute de savoir aborder ces problmes complexes
autrement quavec nos ordinateurs, certains ont invent lexpression "Intelligence Artificielle" qui, si on y regarde bien est au mieux un oxymore
(voir [Lav91b]). Conscients de la profondeur du problme par rapport
au dterminisme du modle de base, les spcialistes ont introduit des
concepts "flous". Le problme encore une fois, est que, ensembles ou
logiques flous, rseaux dits neuronaux 1 ( ? !), sont en termes de puissance
de calcul strictement quivalents au modle de base. Il est par consquent
improbable quon en tire plus. Il savre par contre que pour certaines applications, ces formulations et codes opratoires savrent plus pratiques.
Il nest pas non plus dit quon ait tir tout le possible du modle de base.
Le problme fondamental est prcisment de dpasser ce modle de base,
des tentatives existent. Le raisonnement probabiliste semble central en la
matire, or, "Lalatoire a se calcule" comme laborde lentretien dans
un grand quotidien entre les Professeurs Didier Dacunha-Castel et JeanPierre Kahane (voir [DK96]), entretien qui jette un pont entre activit
mathmatique et problmes de socit, problmes sociaux. Du reste, les
1. Anthropomorphisme quand tu nous tiens !

xviii

Complexit et Algorithmique avance

milieux financiers, vampires des temps modernes, ne sy trompent pas


qui embauchent aujourdhui des mathmaticiens, pour btir des modles
susceptibles dempcher lclatement de la "bulle financire" (voir ce
sujet [Bou98]) et surtout de leur permettre den tirer un maximum de
profit. Matrise de la complexit dun march o la soit disant rationalit
conomique est celle explique par Darwin dans son oeuvre principale,
cest la logique de lhcatombe (voir [Dar59]).
Si la complexit dune suite de nombres se mesure, la faon de
Kolmogorov, la longueur du plus petit nonc permettant de dcrire (i.e.
de gnrer) cette suite, alors lactivit scientifique qui tend exprimer
par des lois gnrales la gnricit de classes de plus en plus grandes de
phnomnes, nest-elle pas une tentative de lutter contre une apparente
complexit intrinsque des phnomnes naturels ? Toute formulation,
toute formalisation, nest-elle pas en ce sens une tentative de matrise
de la complexit ? Lcriture dun programme dordinateur, sa taille,
qui gnre des solutions un problme est la manifestation du degr
de complexit dudit problme. Le programme scrit en un nombre fini
de symboles, et mme au niveau excutable, en un nombre fini de 0
et de 1, et il peut potentiellement gnrer une suite infinie. Pourtant
aucun ordinateur na une vie infinie, aucun ni tous ne peuvent par
consquent gnrer une suite infinie. Si on laisse calculer un ordinateur
jusqu ce quil sarrte "naturellement", la probabilit quapparaisse un
chiffre aberrant par rapport lalgorithme cod par le programme, crot
avec le temps, et si on fait tendre le temps vers linfini, la probabilit
derreur tend vers 1. Or la suite ainsi gnre nest pas celle dcrite par
le programme, un paramtre est intervenu, le temps, deus ex machina.
On retrouve l la problmatique de lvolution. Quest-ce qui fait quon
passe (sur un laps de temps respectable) des bactries lhomo sapiens
sapiens ? Quest-ce qui provoque le passage du simple 1 au complexe ?
Cest le temps. Et quelle est la caractristique de cette transformation
sinon la transformation alatoire et la survie des possibles, mais aussi
la mort massive et systmatique de tous les autres, ce que Darwin a
si bien dcrit (voir [Dar59]). Nest-ce pas l le cur du dbat sur la
complexit ? Le temps et lalatoire ! Cest en partie pour cela que la
machine de Turing, ou lautomate fini ne sont pas "les instruments de
la complexit" car ils ne rendent pas compte de la mme notion de
1. Pour autant quon soit capable de prciser ce terme, ce qui est complexe.

Prface

xix

temps. Dans une machine de Turing (cf. infra), le temps est une variable
endogne au systme, de plus il ny a pas place pour lalatoire. Cest
pourtant bien l que le bt blesse, il y a srement un saut cognitif oprer,
utiliser lalatoire et la redondance. Si lalatoire a se calcule comme
nous le rappelle larticle prcdemment cit, la question est comment
lutiliser concrtement et de manire reproductible ? Le chapitre sur les
algorithmes probabilistes, du au Professeur M. Bui montre comment on
peut aborder le problme. La matrise de la complexit passe-t-elle par
un dterminisme probabiliste ? A quand des machines (on ne peut plus
parler alors dordi- nateurs) probabilistes ? On commence tout juste
utiliser des algorithmes probabilistes, sur des machines qui elles ne le
sont pas.
"il ny a rien de moins familier ou de moins facile que de penser
correctement en matire de probabilits..."[Gou93].
Lapparition du paralllisme en informatique, et plus particulirement des rseaux dentits calculatoires indpendantes communiquantes
conduit par un chemin analogue la complexit. Lexplosion combinatoire
des excutions possibles dun programme parallle sur un rseau distribu
asynchrone rend quasiment impossible (et en tous cas, pas souhaitable)
lobservation instantane des tats du systme, ni mme leur prvision.
Si chaque entit calculatoire est vue comme une machine de Turing, alors
chacune admet une notion de temps qui lui est propre, cest, pour chaque
machine, le nombre ditrations lmentaires quelle effectue durant le
calcul. Mais ce temps na plus de sens au niveau du rseau, sauf peut-tre
considrer la plus grande partie aliquote des temps de transmission des
messages. Dautant plus si on veut prendre en compte les communications
entre machines, communications "asynchrones" qui ne ressortissent en
rien au modle de machine de Turing. Il faut alors revenir au temps des
physiciens 1 , exogne tout systme physique particulier, mais pourtant
inexistant sans eux. L aussi, il faut saffranchir dun dterminisme qui
confine au mcanisme.
Les machines quantiques, si elles apparaissent un jour, permettraient
de poser ces problmes dune faon compltement nouvelle, cest pourquoi
nous avons consacr un chapitre une esquisse de ce que pourrat tre le
1. On arrive quand mme, pour les besoins de la technique faire rentrer la
complexit distribue dans un modle thorique, peu sy sont risqus (voir [Lav95])
mais, conceptuellement cest peu satisfaisant.

xx

Complexit et Algorithmique avance

calcul quantique sur une telle machine.


Dans ce qui suit nous limiterons notre propos labord de la complexit algorithmique (on dit aussi calculatoire 1 ). La mthode de lexpos
est circulaire, volontairement, comme, il nous semble, lest lactivit
cognitive. Les mmes notions sont traites diffrents moments, pas
linairement. Nous allons du simple au complexe (nous lappellerons
provisoirement ainsi), approfondissant les concepts et les formalisant ds
lors que le besoin sen fait sentir, mais pas avant si possible. Nous ferons
plus souvent appel lintuition qu la dmonstration. La dmonstration
ne sera utilise que lorsquelle apporte quelque chose la comprhension.
Cest la comprhension profonde des concepts et notions employs qui
nous intresse. Nous faisons des mathmatiques tout au long de ces pages,
mais sans ostentation. Le bagage ncessaire labord est relativement
faible. Un minimum de connaissances en calcul des probabilits, la matrise de la fonction logarithmique, la matrise des notations logiques,
doivent suffire.
Trs cher et honor beau frre.
Depuis que jai reu le vin que vous mavez envoy, je ne vous ai plus
crit faute de matire 2 .

I.L. Lanton 30 septembre 2007

1. Computational complexity en anglais


2. Galileo Galilei, Venise 29 Aot 1609.

Premire partie

Prolgomnes, histoires
dalgorithmes

Chapitre 1

Histoires dalgorithmes
a notion dalgorithme est connue depuis lantiquit. De lalgorithme dEuclide pour le PGCD, lalgorithme qui permet Thse
de sortir du Labyrinthe, en passant par le rle de la ceinture de la reine
Didon 1 dans la fondation de Carthage, les traces dans la littrature
comme dans limaginaire collectif sont nombreuses. Cette notion a t reformule plusieurs reprises dans lhistoire, par Euclide certes, mais aussi
par le mathmaticien Perse (ou plutt originaire du pays de Khawarizm,
cest dire de la mer dAral) Al-Djafar Mohamed ibn Mussa Khawarizmi
(780-850 ?) qui crivit un trait mthodologique intitul Kitab fi hisab Al
Jabr wal muqbala (mettre bout bout). Les noms Al Khawarizmi et
Al jabr sont devenus au cours du temps Algorithme et Algbre qui sont
maintenant passs dans le vocabulaire mathmatique courant. Toutefois,
le plus ancien trait dalgorithmique, rcemment dcouvert, nous vient
de Chine. En 186 avant notre re un document intitul Trait des neuf
procdures recense les connaissances mathmatiques de son poque en
Chine. Lexistence dun tel trait vient du fait que la gestion de lempire

1. Didon, ou Elissa qui vivait Tyr senfuit en Tunisie, avec sa soeur Anna et
un groupe damis. Le roi du pays, Larbas, lui vendit un territoire aussi grand quelle
pouvait enclore dans une lanire tire de la peau dun seul taureau. Elle obtint ainsi
un territoire suffisant pour y btir une citadelle. Carthage porta ainsi, dans un premier
temps, le nom de Byrsa (peau). Cest la raison pour laquelle la ville de Carthage fut
construite en arc de cercle, le centre en tant , dit la lgende, lendroit prcis o Didon
posa le pied la descente du bateau. La reine Didon, dcouvrit ainsi, laide de sa
ceinture que la figure gomtrique qui donne une surface maximale pour un primtre
donn est le cercle.

Complexit et Algorithmique avance

ncessitait des mthodes identiques de gestion et donc de comptage pour


les diffrents madarins (i.e. prfets) qui taient en charge des rgions
dudit empire. Il ne semble pas que les mathmaticiens chinois aient
dvelopp alors la gomtrie au sens o les grecs lont fait, ceci bien que
les dits chinois aient dvelopp une dmonstration originale du thorme
de Pythagore, visiblement par eux connu, bien avant les grecs. Par contre
les lettrs chinois ont dvelopp lart du calcul un niveau ingal
lpoque (pour plus amples informations, lire [Yab00]). Plus encore, ils
ont dvelopp des mthodes de rsolution, des "procdures" qui sont en
fait des algorithmes, souvent certes prsents de manire qui ne nous
est pas familire mais efficace. Ainsi leur faon de calculer des volumes
particuliers en les dcomposant en volumes lmentaires connus prfigure
le calcul intgral. La page dont on peut voir ici dans la figure 1.1 un fac
simil est celle dun trait du troisime sicle de notre re qui est une
recopie du trait des neuf procdures. Cette page dcrit la mthode de
rsolution des systmes de deux quations linaires deux inconnues,
solution tout fait inconnue dans le reste du monde cette poque, du
moins pour ce quon en sait. Il faut noter que les chinois utilisent de fait,
depuis la plus haute antiquit, une notation positionnelle des nombres
qui est due leur faon de prsenter les calculs.
Comme on peut le voir sur la figure, les textes sont prsents en
colonnes, lcriture est verticale. Lorsque il y a un seul symbole par ligne
dans la colonne, il sagit du texte original, lorsquil y a deux symboles,
il sagit dun commentaire, le plus souvent dun lecteur autoris qui a
laiss sa marque par lintermdiaire de son tampon rouge sur la page.
Cette disposition en colonne autorise la notation positionnelle. Ainsi,
par exemple, en supposant (ce qui est faux) que les chinois aient utilis
les nombres indiens (dits aussi - tort- arabes), un nombre comme 10506
scrit-il :
1

Le zro positionnel nexiste pas dans cette notation, mais il est


remplac par une colonne vide. La disposition en colonnes permettant
ce quon nomme la notation positionnelle des nombres qui donne le
mode opratoire que nous connaissons, alors quavec une notation non
positionnelle comme celle des romains, il nexiste pas de mode opratoire
pour les calculs.

Chapitre 1. Histoires dalgorithmes

1.1

La notion nave dalgorithme

Aussi loin quon puisse remonter, il y a deux coles en mathmatiques,


les intuitionnistes et les algoristes. Les premiers cherchaient des dmonstrations directes donnant des solutions des problmes poss stricto
sensu, les seconds prfraient aux astuces des mthodes systmatiques de
construction, ce qui leur a valu aussi le nom moderne de constructivistes,
lun des plus brillants membres contemporain en est sans doute le logicien
Frege, violemment critiqu lui aussi (comme Turing, mais pour dautres
raisons) par Witgenstein dans son Tractatus logico-philosophicus.

Figure 1.1 Une page du trait des 9 procdures

Complexit et Algorithmique avance

La notion dalgorithme ressortit aux fondements mme des mathmatiques


constructivistes. Un algorithme y est vu comme une suite finie de rgles
appliquer dans un ordre dtermin un nombre fini de donnes pour
arriver, en un nombre fini dtapes, un certain rsultat, et cela indpendamment des donnes. Par exemple, un algorithme daddition permet de
faire laddition de deux nombres quelconques reprsents par un nombre
fini de chiffres 1 en partant des chiffres les plus droite et en oprant
de droite gauche, du moins dans notre systme de numration. Un
algorithme tant une description de la suite des oprations faire, la
manire de le rdiger (on dit spcifier) dpendra du dispositif (homme ou
machine) charg de lexcuter. La proprit de finitude des rgles et des
tapes est ici primordiale, car, en caricaturant quelque peu, linformatique
est la science du calcul effectif par opposition la mathmatique qui est
elle la science du calcul.
On entend donc (en attendant une dfinition formelle) par algorithme
une prescription prcise qui dit dexcuter dans un ordre dtermin
certaines suites doprations, permettant ainsi de rsoudre tous les problmes dun type donn, on dit aussi une classe ou une famille de
problmes.
On voit bien la faiblesse du propos, la phrase que nous venons dnoncer na rien dune dfinition prcise de la notion dalgorithme, cest
au mieux un commentaire rapide tendant expliciter le sens du mot.
Cest sous cette forme que cette notion a merg spontanment en mathmatiques dans lantiquit.
Les algorithmes les plus simples sont des rgles selon lesquelles doivent
tre effectues les quatre oprations arithmtiques lmentaires. Ainsi,
laddition de deux grands nombres cods en numration dcimale se
dcompose en une squence doprations lmentaires. Pour lexcution
de chacune de ces oprations lmentaires, le calculateur ne sintresse
qu deux chiffres additionner. Ces oprations lmentaires sont de
trois types :
criture des chiffres correspondants de la somme ;
marque de la retenue sur le chiffre voisin gauche ;
les oprations sont effectues de droite gauche.
1. En effet, si on veut additionner deux nombres transcendants, on ne peut le faire,
au mieux, que formellement.

Chapitre 1. Histoires dalgorithmes

On pourrait aussi formuler des rgles analogues pour les trois autres
oprations arithmtiques, des modes opratoires. Cest du reste ainsi que
les enfants apprennent effectuer les grandes oprations.

1.1.1

Lalgorithme dEuclide

Par exemple, le calcul du PGCD de deux nombres entiers peut se


ramener une suite de soustractions de la faon suivante :
comparer les deux nombres puis continuer en squence ;
si les deux nombres sont gaux, le calcul est termin, chacun des
nombres donne le rsultat. Sinon, continuer en squence ;
si le premier nombre est plus petit que le second, permuter les deux
nombres puis continuer en squence ;
soustraire le second nombre du premier puis continuer en squence ;
considrer comme nombres, le rsultat de la soustraction et le
nombre soustrait puis revenir en 1.
Pour un jeune adolescent par exemple, ces rgles sont facilement
comprhensibles. Toutefois elles comprennent un certain nombre de
"non dits" importants. Le processus de dcomposition en oprations
lmentaires est loin davoir t pouss jusquau bout. Ainsi dans la
rgle 4, le verbe soustraire semble aller de soi, mais en fait, il sagit
dune opration complexe qui peut encore tre dcompose en oprations
lmentaires plus simples.

1.1.2

Algorithme de lquation quadratique

Louvrage de Al Khavarizmi donne la mthode suivante pour rsoudre


les quations du second degr. La mthode est gnrale, mais, comme il
est habituel lpoque, elle est donne sur un cas particulier mais sens
reprsenter la gnralit, la rsolution de lquation :
x2 + 10.x = 39.

Complexit et Algorithmique avance

Figure 1.2 Lalgorithme dAl Khawarizmi pour rsoudre lquation


du second degr .
Un carr et dix de ses racines gale trente neuf. Autrement dit, trouver
le nombre entier x tel que :
x2 + 10.x = 39
La traduction du texte en arabe est la suivante [C+ 94] :
Quant aux carrs et aux racines qui galent le nombre, cest comme
lorsque tu dis : un carr et dix de ses racines valent trente-neuf dirhams.
Sa signification est que tout carr, si tu lui ajoutes lquivalent de dix
de ses racines [est tel que] cela atteindra trente-neuf. Son procd de
rsolution consiste diviser les racines par deux, et cest cinq dans ce
problme. Tu le multiplies par lui-mme et ce sera vingt-cinq. Tu lajoutes
trente-neuf. Cela donnera soixante-quatre. Tu prends alors sa racine
carr qui est huit et tu en retranches la moiti[du nombre] des racines
qui est cinq. Il reste trois et cest la racine que tu cherche et le carr est
neuf.
Dcryptons la mthode en la comparant la formule classique :

b b2 4.a.c
x=
.
2.a
Dans ce texte, lquation est mise sous une forme normalise : a.x2 +b.x =
c avec a = 1 et on retrouve la formule. En effet, revenons au texte :

Chapitre 1. Histoires dalgorithmes

(...) diviser les racines par deux soit ici b/2 ;


tu le multiplies par lui mme soit ici b2 /4
2
tu lajoutes trente neuf (i.e. c soit
p ici b /4 c) ;
tu prends alors sa racine carre soit b2 /4 c ; p
tu retranches la moiti du nombre des racines soit b2 /4 c b/2,
soit en fait

b b2 4.c
2
et si on se souvient que dans la standardisation de lcriture des
quations quadratiques telle que donne par le texte on a toujours
a = 1, alors on retrouve la formule classique.

Il sagit l du premier algorithme connu de rsolution des quations du


second degr. On remarquera au passage que la notion de racine ngative
ntait alors pas connue.

1.1.3

Un algorithme qui vient de loin

On remarquera par ailleurs que les modes opratoires, les algorithmes


numriques, sont troitement dpendants des systmes de numration
dans lesquels ils sont effectus. Ainsi, il nexiste pas de mode opratoire
gnral pour multiplier deux nombres crits en chiffres romains.
A contrario, lorsquil sest agi dautomatiser les calculs sur des machines, on a choisi le systme de numration qui prsentait le plus dintrt
eu gard aux performances attendues, le systme binaire propos par
Leibniz jusqu nouvel ordre.
Le systme peut tre additif comme chez les Romains, positionnel
comme le ntre, ou celui des chinois, il peut comporter ou non le zro
(pas de zro chez les Romains ni les Chinois) il peut tre une combinaison
dadditif et de positionnel comme chez les Sumriens, 3 millnaires avant
notre re.
Ce sont ces mmes Sumriens qui inventeront le zro positionnel 1 ,
au temps des Sleucides, 4 sicles avant notre re. Ce sont eux aussi qui,
avec les chinois, nous livrent les plus anciens algorithmes numriques
1. Attention, il ya au moins trois zros. Le zro, symbole numrique, pour dire quil
ny a rien ; le zro dit de position, dont il et question ici, et le zro des informaticiens
qui nest pas rien, et qui au strict niveau du binaire dit "absolu" se dcline en + 0 et
0 ce niveau systme, tous les nombres ayant un signe.

10

Complexit et Algorithmique avance

connus, en particulier pour le calcul de linverse de nombres laide de


tables.
Le systme de numration des Sumriens est une composition de
sexagsimal et de dcimal, ils nous ont du reste transmis notre criture
des mesures des heures, minutes et secondes ainsi que nos mesures dangles
et darcs de cercle . Ainsi un nombre qui scrit chez les sumriens abc
est en fait a 602 + b 60 + c ; mais c est ici en dcimal, ce qui ne facilite
gure les calculs.
Pour effectuer des divisions, on opre en deux tapes :
Calcul de linverse du diviseur.
Multiplication du dividende par linverse du diviseur.
Les nombres dont linverse possde une criture sexagsimale finie
prennent alors une importance particulire. Ceci dautant plus qu
lpoque on ne savait pas traiter des nombres dont lcriture ntait
pas finie en termes de symboles. Les nombres dont linverse possde
une criture sexagsimale finie sont dits rguliers par les historiens des
mathmatiques. Ces nombres sont de la forme 2p 3q 5r o p, q, r sont des
entiers videmment. Linverse dun nombre rgulier est rgulier.
Lide de base est dutiliser la formule :
1
=
x+y

1
y

1
1

z+1 y

Ainsi peut on calculer linverse dun nombre rgulier x lorsquon sait


lcrire comme somme de deux nombres y et z ; y tant lui mme rgulier
et dinverse connu.
Le texte Sumrien peut se comprendre ainsi :
Quel est linverse du nombre x ?
La mthode est la suivante.
Former linverse de y (le lire dans une table), on le note y 0 .
Multiplier y 0 par z, soit t le rsultat.
Ajouter 1 t, soit u.
Former linverse de u, soit u0 .
Multiplier u0 par y 0 ; soit v le rsultat.
v est le nombre cherch !
Exemple 1.1.1 Soit le nombre [2; 13; 20] (cest dire 2602 +1360+20).
En conservant cette criture, on a :

Chapitre 1. Histoires dalgorithmes

11

[2; 13; 20] = [3; 20] + [2; 10] soit x = y + z par identification terme
terme.
y est un nombre rgulier dont linverse est 18 (donn par une table
standard).
Linverse de x est gal au produit des inverses de y et de u avec la
relation :
u = t + 1 = 1/y 1.u
Pour notre exemple, u = t + 1 = 18 [2; 10] + 1 = 39 + 1 = 40.
Le nombre u est rgulier parce quil est gal x/y et que x et y sont
rguliers. Linverse de u, donn par une table standard est [1; 30]. Par
consquent linverse de x est gal 18x[1; 30] = 27 1 .
Les tablettes des scribes nous ont transmis ces procds de calcul 2 .
Autre exemple, certainement le plus ancien algorithme non numrique
connu ce jour et relat dans lnide, lalgorithme dit algorithme du
Labyrinthe 3 .

1.1.4

Lalgorithme du Labyrinthe

Dans le roman Le nom de la rose, dUmberto Ecco, les hros sont


un moment perdus dans une bibliothque labyrinthique et ne peuvent
retrouver leur chemin que grce lapplication de lalgorithme dj utilis
par Thse. Heureusement pour lui, Thse applique correctement lalgorithme, ce qui nest pas le cas de nos moines, mais la fiction romanesque
aidant, ils sen sortent quand mme.
Thse voulant dlivrer Athnes du tribut de chair humaine que la
Cit doit chaque anne au Roi Minos, se porte volontaire pour aller en
1. Attention, il y a une prcaution prendre dans la lecture de ces nombres avec
notre systme de numration. En fait il ny a pas - pas encore pour les tablettes
voques ici - de zro, et il faut faire dautant plus attention aux puissances de 60
concernes qui peuvent aussi tre ngatives.
2. Tablette VAT 6505 du muse de Berlin pour les calculs, tablette A06456 du
muse du Louvre pour les tables dinverses, environ 2000 ans avant notre re.
3. On trouvera une description simple et complte de cet algorithme dans louvrage
Lhomme et les Techniques aux ditions Messidor/La Farandole, 1991.

12

Complexit et Algorithmique avance

Crte et entrer dans lobscur Labyrinthe construit par Ddale et y tuer


le Minotaure qui se repat du sang des jeunes gens envoys dAthnes 1 .
Pour cela, il faut que Thse, entre dans le Labyrinthe, y trouve le
Minotaure sil y est, quil le tue et ressorte pour retrouver Ariane, fille de
Minos dont il est amoureux. La lgende veut quAriane ait aid Thse
sortir du Labyrinthe en lui donnant une pelote de fil dont elle tenait une
extrmit (do lexpression toujours usite de "fil dAriane"), et "une
couronne de lumire". En fait ce nest pas suffisant, comme nous lallons
voir, il faut une craie Thse pour pouvoir reprer des couloirs.
Si lutilisation du fil permet Thse de revenir prs dAriane, elle
nassure en rien elle seule le parcours exhaustif du Labyrinthe pour y
trouver le Minotaure.
Pour pouvoir parcourir le Labyrinthe sans sy perdre, et en tant sr
den examiner tous les couloirs et toutes les places, il faut tablir des
rgles de parcours qui sont les suivantes :
Droulement du fil
Passage de la place considre une place contige par un couloir
libre (i.e. non encore parcouru par Thse). Aprs ce passage, au
cours duquel le fil est droul le long du couloir, le couloir est
considr comme travers.
Enroulement du fil
Retour de la place considre une place contige par le dernier
couloir travers. Le fil dAriane qui tait droul le long de ce
couloir est alors enroul et le couloir est dit examin.
Cest alors que la craie (ou tout autre moyen de marquage) est
ncessaire. Thse marque les couloirs examins, ce qui lui permet
de les distinguer des libres. Les couloirs traverss sont distingus
par le fait que le fil y est droul.
Le comportement de Thse en une place dpend de la situation quil
y trouve. Les diffrentes situations possibles sont les suivantes :
Minotaure. Le Minotaure se trouve dans la place considre ;
Boucle. Le fil dAriane passe travers la place considre ;
1. Il sagit l dune des toutes premires opration de propagande dintoxication,
la civilisation Minoenne qui vivait sur lle de Crte il y a quatre mille ans semble
navoir pas connu la guerre pendant de nombreux sicles.

Chapitre 1. Histoires dalgorithmes

13

E
I

F
D

A
H

Figure 1.3 Labyrinthe

Couloir libre. De la place considre, on peut sortir par un couloir


libre au moins ;

Ariane. Ariane se trouve dans la place considre ;

Autre. Absence de tous les cas prcdents.

Le comportement de Thse peut tre rsum dans le tableau suivant :

14

Complexit et Algorithmique avance

Situation en la place considre

Comportement de Thse

1. Minotaure

Arrt

2. Boucle

Enroulement du fil

3. Couloir libre

Droulement du fil

4. Ariane

Arrt

5. Autre

Enroulement du fil.

Dans un Labyrinthe dont la forme serait celle de la figure 1.3, A


figurant lentre du Labyrinthe (A comme Ariane) et F figurant la place
o se tapit le Minotaure, la squence des actions serait alors la suivante :

Comportement en fonction de la place et de ltat


Itration no

Place

tat

Comportement

Parcours

Couloir libre

droulement

couloir AB

Couloir libre

droulement

couloir BC

Couloir libre

droulement

couloir CH

Couloir libre

droulement

couloir HI

Autre

enroulement

couloir IH

couloir libre

droulement

couloir HD

couloir libre

droulement

couloir DE

couloir libre

droulement

couloir EF

couloir libre

droulement

couloir FA

10

boucle

enroulement

couloir AF

11

Couloir libre

droulement

couloir FD

12

Couloir libre

droulement

couloir DB

13

boucle

enroulement

couloir BD

Chapitre 1. Histoires dalgorithmes

15

Itration no

Place

tat

Comportement

Parcours

14

couloir libre

droulement

couloir DC

15

boucle

enroulement

couloir CD

16

autre

enroulement

couloir DF

17

autre

enroulement

couloir FE

18

autre

enroulement

couloir ED

19

autre

enroulement

couloir DH

20

autre

enroulement

couloir HC

21

autre

enroulement

couloir CB

22

autre

enroulement

couloir BA

23

Ariane

FIN

Si on considre que le minotaure se trouve en F et nen bouge pas,


alors lexploration sarrte ltape 8, et bien entendu Thse tant
invincible, il vient bout du monstre.
Pour revenir Ariane, il ne reste plus alors Thse qu r-enrouler
le fil.
On remarquera quavec cet algorithme, lorsque le Labyrinthe est
connexe (i.e. il est en un seul "morceau"), on sait si le Minotaure y rside
ou non. En effet, dans le pire des cas pour la recherche, le Minotaure nest
pas dans le Labyrinthe. La mthode de parcours donne ici nous permet de
le savoir. Il se produit au bout dun temps fini - car le Labyrinthe comporte
un nombre fini de couloirs et de places, que la longueur des couloirs est
finie et quon suppose que le Minotaure reste toujours en la mme place le cas pour lequel la situation en la place considre est Ariane, cest le cas
trait ici. Le Labyrinthe a t entirement explor, on peut conclure que
le minotaure ny est pas. La craie ou tout instrument de marquage des
couloirs est absolument ncessaire. En effet, si Thse navait pas de craie,
il pourrait ressayer plusieurs fois le mme parcours sans quil puisse sen
rendre compte. Du point de vue strictement probabiliste, Thse sortirait
aussi du Labyrinthe avec une probabilit non nulle, mais lesprance

16

Complexit et Algorithmique avance

mathmatique de temps associe serait prohibitive si le Labyrinthe est


assez grand.
Dans cet algorithme encore, on a essay chaque fois de codifier les
actions accomplir sans laisser de place au hasard 1 et on a dcompos
chaque action en moments lmentaires. L encore, on aurait pu aller
plus loin dans la dcomposition.
Remarque : Lalgorithme permet de rsoudre le problme, mais le
retour Ariane ne seffectue pas par le plus court chemin possible.

1. Bien quon puisse faire des algorithmes probabilistes, mais cest un autre propos.

Deuxime partie

Tour dhorizon rapide

Chapitre 2

Un rapide tour dhorizon


lac devant un problme rsoudre, plusieurs attitudes peuvent
tre adoptes :
vous cherchez directement le rsoudre ;
vous vous demandez si cest bien un problme ;
considrant que cest bien un problme, il y a l aussi deux attitudes
possibles :
vous vous contentez de savoir si le problme est rsoluble -ou
non ;
vous voulez une solution. Vous vous posez alors la question des
moyens mettre en uvre pour pouvoir le rsoudre, cest--dire
combien a va coter, en temps, en espace, en argent.
Dans cette dernire hypothse, vous pouvez tre amen montrer quil
nest pas raisonnable de vouloir crire un programme de rsolution dudit
problme. Pour ce faire, il vous faut prciser ce que raisonnable signifie.
Cest ce dont nous traitons ici. Dire que votre problme est intraitable 1
en temps raisonnable signifie en les termes que nous prciserons dans les
chapitres qui suivent, quon ne peut pas crire un programme dordinateur
permettant de rsoudre ce problme dans des dlais acceptables, ds
lors que le-dit problme atteint une taille relativement modeste. Dit en
dautres termes, on ne connat pas dalgorithme dont le temps de calcul
varie en fonction polynomiale de la taille des donnes pour rsoudre ce
problme.

1. Intractable en anglais

20

Complexit et Algorithmique avance

2.1

Une stratgie de rsolution

Pour aborder notre problme, il nous faut alors :


Renoncer crire un programme dont le temps de calcul varie au
plus en fonction polynomiale de la taille des donnes du problme
dans le cas gnral ;
essayer dautres mthodes de rsolution :
rechercher un algorithme efficace (i.e. polynomial en temps 1 )
pour un problme proche par relaxation de certaines contraintes ;
rsolution de cas particuliers ;
approximation en lieu et place de la solution optimale ;
solution -approche ;
solution "acceptable" ;
utilisation darguments probabilistes pour atteindre loptimum
avec une certaine probabilit (mthodes de Monte-Carlo, ou
de Las Vegas) ;
utiliser quand mme lalgorithme de rsolution du cas gnral,
mais sur des tailles de donnes suffisamment petites pour que le
temps de calcul ne devienne pas prohibitif

2.2

Deux exemples

Pour illustrer le propos, on peut prendre deux exemples dalgorithmes,


lun "polynomial" et lautre pour lequel on ne connat quun algorithme
"factoriel" et dont on conjecture quil ny en a pas dautre.
Exemple 2.2.1 (Un algorithme polynomial en temps)
Soit rsoudre le problme suivant :
tant donne une liste de nombres entiers, rechercher si 1838987 fait
partie de la liste. On imagine facilement un algorithme dont le temps de
calcul est linaire 2 en temps par rapport la taille de la liste. Il sagit de
comparer un un tous les lments de la liste 1838987 et de rpondre
oui si on le trouve, non sinon.
1. Nous prciserons plus loin, formellement, ce que cela signifie
2. Sil sagissait dune liste dj trie, le temps serait en log n

Chapitre 2. Un rapide tour dhorizon

21

+++++++++++++++++++++++++++++++++++++++++++++++
BEGIN RECHLIST
POUR i DE 1 A n
SI Liste(i) = 1838987 ECRIRE oui;STOP
FINSI
FINPOUR
ECRIRE non
END RECHLIST
+++++++++++++++++++++++++++++++++++++++++++++++
Il est ici vident que cet algorithme ne gnre au plus que a n ;
n N , a R (o n est le nombre dlments de la liste et a une
constante lie au temps de calcul lmentaire) itrations lmentaires,
cest--dire, les oprations lmentaires en question sexcutant en temps
constant, que lalgorithme calcule en temps polynomial.
On aurait pu prendre aussi comme exemple dalgorithme polynomial,
lalgorithme du labyrinthe expos dans le paragraphe prcdent (voir
1.1.4). On aurait alors lalgorithme dit de Trmeaux de parcours dun
graphe.
Exemple 2.2.2 (Un algorithme non polynomial en temps)
Soit rsoudre le problme suivant :
tant donne une expression boolenne, du type suivant (toute
expression boolenne peut sy ramener), dite sous forme canonique :
SAT = (xi1 xi2 ...xim ) .. (xj1 xj2 ...xjn ) .. (xk1 xk2 ...xkp )
dire sil existe une affectation de valeurs {0, 1} aux variables de cette
fonction telle que lexpression prenne la valeur 1. Il ny a, dans le cas
gnral, pas dautre solution connue que dessayer toutes les affectations
possibles des valeurs {0, 1} aux variables dans le pire des cas.
Lalgorithme ncessite ici 2n oprations lmentaires. Pour que
lexpression soit satisfaite (i.e. que sa valeur soit gale 1), il faut
et il suffit que chaque clause soit satisfaite, mais les affectations de valeurs sur une clause retentissent sur les autres. dans le pire des cas,
toutes les possibilits doivent tre examines.

22

Complexit et Algorithmique avance

Cet algorithme ncessite 2n oprations lmentaires. On ne connat pas


de meilleur algorithme pour rsoudre ce problme connu sous le nom
SAT, abrviation de SATisfiabilit dans le cas gnral 1

2.3

Les classes P et N P

Supposons que quelquun vienne proclamer quil peut donner une


suite binaire de longueur n qui satisfasse SAT. Il nous faut alors vrifier
ce dire. La question maintenant sest donc dplace. Elle devient :
sommes-nous en mesure de fournir un algorithme qui vrifie cette
assertion en temps polynomial ?
La rponse est oui et elle dfinit ainsi une classe de problmes, que
nous appelons N P dont on peut vrifier le rsultat en temps polynomial.
Bien videmment, si un algorithme fournit une solution en temps polynomial, la vrification peut aussi en tre faite en temps polynomial. Les
problmes rsolubles par des algorithmes en temps polynomial forment
la classe P , et on a donc :
Thorme 2.3.1

P NP
Preuve 2.3.1 vident. 

2.4

La classe N P

La classe P est la classe des problmes qui peuvent tre rsolus en


temps polynomial, alors que la classe N P est la classe des problmes
pour lesquels la solution peut tre vrifie en temps polynomial.
Lun des grands problmes de lalgorithmique est de savoir sil y a
galit entre ces classes :

P = N P ? OU P 6= N P ?
Pour rpondre cette question, deux cas sont examiner :
1. Nous verrons par la suite que dans quelques cas particuliers, il existe des
algorithmes en temps polynomial.

Chapitre 2. Un rapide tour dhorizon

23

Dmontrer que P = N P Il faut alors montrer que tout problme


de N P peut tre rsolu par un algorithme polynomial, cest--dire
que N P P ;
dmontrer que P =
6 N P. Pour ce faire il faut trouver au moins un
problme P de N P qui ne soit pas dans P, et il faut dmontrer
quil nexiste pas dalgorithme permettant de rsoudre ce problme
P en temps polynomial.
On ne sait faire ni lun ni lautre !
Toutefois, pour continuer cette tude on fait la conjecture suivante :
Conjecture 2.4.1
P 6= N P,
et plus prcisment :
P NP
Si on fait cette conjecture, cest quon a de bonnes raisons de penser que
le cas 2.4 peut tre vrifi. On ne sait pas le dmontrer mais [Yab59a,
Lup59] ont identifi le problme SAT comme rpondant la question et
[Coo71, Lv73a] ont tabli la thorie de la classe des problmes N P.
Conjecture 2.4.2 (Conjecture de Lupanov-Yablonski) . Le problme de la satisfiabilit dune expression boolenne donne sous forme
normale conjonctive, appel SAT, nadmet pas dalgorithme polynomial
de rsolution dans sa forme gnrale 1 [Lup59, Yab59a, Yab59b].
A partir de cette conjecture, il faut identifier les autres problmes, sils
existent, qui possdent les mmes proprits que SAT. Pour ce faire il
convient de se doter doutils didentification adquats. Ainsi en est-il de
la rductibilit polynomiale.

2.4.1

Rductibilit polynomiale

Le principe de rductibilit polynomiale est bas sur un thorme


dalgbre qui nous dit :
1. Bien quattribue le plus souvent Cook [Coo71] dans la littrature occidentale,
cette conjecture date de 1959, revisite en 1963 par O. Lupanov [Lup63] qui lutilise
pour dfinir dja des classes de complexit. Le mrite de Lvine et Cook, et il nest pas
mince, est den avoir dduit la thorie de la N Pcompltude et davoir ainsi identifi
la classe des problmes dits N PC qui est centrale en thorie de la complexit.

24

Complexit et Algorithmique avance

Thorme 2.4.1 (Composition des polynmes) Un polynme de


polynmes est un polynme.
Preuve 2.4.1 Se dmontre par rcurrence sur le corps des polynmes.

Ce thorme permet de mettre en vidence le caractre particulier de
SAT.
Intuitivement, on dira quun problme P1 est rductible polynomialement un problme P2 , quon notera alors P1 P2 si, et seulement si
toute instance de P1 peut tre rcrite en une instance de P2 de faon
ce que la taille de cette instance de P2 ne dpende de celle de P1 que de
faon polynomiale. En notant p1 la taille dune instance de P1 et p2 celle
dune instance de P2 ; on doit avoir aprs rcriture :
p1 Pol{p2 }
o Pol{} dsigne un polynme, quel quil soit.

2.4.2

La classe N PC

Ainsi, si il existe un algorithme qui rsout P2 en temps polynomial,


alors il en existe aussi un qui rsout P1 en temps polynomial (lexposant
du terme de plus haut degr du polynme pouvant tre trs diffrent).
On peut maintenant introduire la classe N PC.
Dfinition 2.4.1 (Classe N PC) Un problme P sera dit appartenant
la classe N PC si, et seulement si :
P est dans N P et ;
P N P ; P P, savoir que tout problme de N P est
polynomialement rductible P.
On a alors le thorme suivant qui structure toute ltude :
Thorme 2.4.2 Sil existe un problme de N PC rsoluble en temps
polynomial, alors :
P = NP ;
sinon, sil existe un problme de N P qui nest pas rsoluble en temps
polynomial alors :
P 6= N P
et aucun problme dans N PC nest rsoluble en temps polynomial.

Chapitre 2. Un rapide tour dhorizon

25

Cook et Lvine [Coo71, Lv73a], comme nous lavons vu en 2.4.2 conjecturent que SAT rpond la deuxime partie du thorme 2.4.2. Et que,
par consquent P 6= N P.

2.5

Conclusion

Cette prsentation succinte des concepts ne saurait en constituer


un expos tant soit peu acceptable au plan scientifique. Pour mener
bien ltude de cet ouvrage, il va nous falloir prciser les concepts
introduits dans ce chapitre. Pour ce faire, des pr-requis mathmatiques
sont ncessaires que nous introduirons, mais il nous faut aussi donner
une base rfrentielle aux notions et concepts que nous allons manipuler.
crire sur la complexit en informatique ncessite de prciser et
dtablir clairement quelques concepts paradigmatiques comme :
les concepts de calcul et de machine ;
les concepts de problme et de solution ;
le concept dalgorithme ;
le concept de "temps de calcul" ;
les concepts de mot et de langage.
Pour cela, il faut dfinir des objets mathmatiques auxquels se rfrer
et que nous allons introduire ci-aprs tout en exposant aussi les notions
mathmatiques de base qui permettent de matriser le sujet.

Chapitre 3

La Machine de Turing
3.1

La Machine de Turing, modle dalgorithme

omme nous lavons vu dans les noncs prcdents, pour la soustraction dans lalgorithme dEuclide par exemple, on peut pousser plus
loin encore la description de la procdure. Cest ce fait, remarqu depuis
longtemps qui a guid les chercheurs, Turing en particulier. Lide directrice tant qu dcomposer le plus possible, on devait pouvoir atteindre
une forme lmentaire, commune toutes les procdures, un langage
lmentaire universel en quelque sorte permettant de dcrire toute procdure opratoire. Lide en fait tait "en lair" depuis longtemps, depuis
que Leibniz (1646-1716) avait montr que tout pouvait tre dcrit avec
seulement deux symboles, 0 et 1.
A la fin du XIXeme sicle (en 1900), le mathmaticien Hilbert au
congrs des mathmaticiens runis Paris pour la fin du sicle et surtout
pour lannonce du sicle venir nonce une double conjecture (10e et 23e
problmes 1 de Hilbert) 2 que lon peut formuler ainsi :
Il existe une faon unique de reprsenter tout nonc de problme
de mathmatiques ;
si la premire partie de la conjecture est vraie, alors il existe une

1. Existe-t-il une procdure automatique qui rsolve tous les problmes de mathmatiques les uns aprs les autres ?
2. En mathmatique, on appelle conjecture un nonc quon a toutes les raisons
de croire vrai mais quon ne sait pas dmontrer, et sur lequel, bien sr, on ne peut
exhiber aucun contre exemple.

28

Complexit et Algorithmique avance


faon unique de rsoudre tout problme de mathmatique.

On imagine lmoi que provoqua cette conjecture et donc les travaux


quelle suscita, en particulier, une part significative des dveloppements
modernes de la logique viennent de travaux lis cette conjecture, en
particulier les thormes de Gdel sur la compltude des thories formelles
qui furent lun des premiers lments de rponse Hilbert. Nous donnerons, dans le cadre de la thorie de la calculabilit, une dmonstration
du thorme dincompltude de Gdel.
Cest le 28 mai 1936 que Alan Mathison Turing apporta la rponse
dfinitive (pour linstant) aux conjectures de Hilbert. En fait, Turing ne
sintressait pas directement ces conjectures, mais plutt la reprsentation des nombres rels. En effet, un nombre transcendant (non entier,
non rationnel, non gomtrique, non complexe) nest reprsentable par
un nombre fini de symboles que si on donne la faon dobtenir la suite
infinie des chiffres qui le composent, si on lui donne un nom, ou si on
construit un symbole spcial le dsignant, comme par exemple ou e.
Pour pouvoir utiliser les nombres transcendants, on doit en fait donner
une mthode permettant de calculer tout ou partie de leurs dcimales,
cest--dire en fait, on doit donner lalgorithme permettant de les gnrer.
Cest en travaillant sur une redfinition du concept dalgorithme que
Turing en est venu rsoudre la double conjecture de Hilbert. Pour ce
faire il avait conu une machine thorique, modle de tout calcul qui
porte dsormais le nom de Machine de Turing et sur les principes de
laquelle sont fonds tous les ordinateurs modernes. L aussi, il semble que
lide dune machine thorique ait t avanc bien avant par Hermann
Weyl [Wey49] 1 mais dans un contexte quelque peu diffrent .
Lide de base est de ramener tout calcul, toute action une srie dactions lmentaires, toutes et toujours les mmes, seul changeant lordre
dans lequel elles seraient excutes. Ceci permettait la refondation moderne du concept dalgorithme, celui-ci devenant alors simplement lordre
dans lequel les dites oprations lmentaires devaient tre excutes.
On peut maintenant prciser les caractristiques auxquelles doit rpondre une Machine de Turing :
La dcomposition du processus de calcul (au sens large) en op1. Il semble que Weyl ait discut ds 1927 sur une machine thorique base sur le
paradoxe dit de Znon, prcisment par rapport la gnration des rels mais publi
officiellement seulement en 1949, ldition allemande tant trs peu connue.

Chapitre 3. La Machine de Turing

29

rations lmentaires est mene aux limites du possible. Ainsi en


est-il par exemple de laddition dcimale qui peut tre encore
dcompose en une suite doprations plus simples. Cette dcomposition allonge les processus, mais en mme temps, la structure
logique du processus est renforce et mise en valeur et elle prend
un aspect standard et systmatique qui lui donne sa puissance
thorique.
La mmoire dune Machine de Turing est forme par un ruban
illimit dans les deux sens et divis en cases. Cest l lun des
aspects abstraits de la Machine de Turing. Aucune machine relle
ne peut avoir une mmoire illimite, mme si les machines actuelles
ont des mmoires de trs grande capacit. La Machine de Turing est
en fait un schma idal refltant la possibilit thorique dextension
non borne de la mmoire.

3.1.1

Description dtaille dune Machine de Turing


lmentaire

Nous pouvons maintenant passer une description dtaille dune


Machine de Turing lmentaire et de son fonctionnement.
Une Machine de Turing comprend trois types dalphabets :
1. Un alphabet extrieur qui lui permet de communiquer avec le
monde extrieur, souvent appel environnement et compos dun
nombre fini de symboles.
S1 , S2 , . . . , Sk
Avec ces symboles, lenvironnement code linformation fournie la
machine et la machine code linformation quelle labore. On doit
introduire un symbole de lalphabet extrieur reprsentant le vide.
Par convention, on prendra ici . Lintroduction ("lcriture") de ce
symbole dans une case du ruban correspond en fait leffacement
du symbole sy trouvant prcdemment. La prsence de ce symbole
dans une case signifiant quelle est vide. De mme nous dirons
dune case vide quelle contient le signe vide. Dans une case du
ruban, on ne peut, un instant donn trouver plus dun symbole de
lalphabet extrieur. Lintroduction du signe vide permet mme de

30

Complexit et Algorithmique avance


dire que dans toute case du ruban est inscrit un et un seul symbole
de lalphabet extrieur.
2. Lalphabet de mouvement compos des symboles N, D, G signifiant respectivement, neutre, droite, gauche, spcifiant ainsi les
mouvements de la tte de lecture par rapport au ruban. Ces mouvements (G, D) ont toujours lieu dune case et dune seule la
fois.
3. Lalphabet dit intrieur qui dcrit des "tats" logiques du bloc de
calcul de la machine. On lappelle aussi espace dtats ou encore
alphabet dtats, suivant les auteurs. Nous les noterons :
q0 , q1 , . . . , qm

La Machine de Turing fait correspondre un couple compos dans


lordre dun symbole de lalphabet extrieur et dun symbole de
lalphabet intrieur, un triplet, constitu dans lordre dun symbole de
lalphabet extrieur, dun symbole de lalphabet de mouvement, dun
symbole de lalphabet dtat. On peut donner une reprsentation graphique dune Machine de Turing, comme dans la figure 3.1

I I
q0

L
L

LDq1

Q I

q1

I L L

IGq2

q2
LDq0

QDq1

QGq2

IDq1

IGq2

Figure 3.1 Machine de Turing

Chapitre 3. La Machine de Turing

31

La machine comprend alors une tte de lecture/criture, et un bloc


logique qui applique la correspondance dcrite ci-dessus. Ainsi, si sous
la tte de lecture apparat le symbole I alors que le bloc logique est en
ltat q0 la machine crit sur la bande (c.a.d. quventuellement, elle
efface ce quil y avait dans la case lue) puis elle dcale la tte de lecture
sur la droite, et le bloc logique passe en ltat q1 . litration suivante,
la tte de lecture lit I sur le ruban et le bloc logique est dans ltat q1 , la
machine inscrit I dans la case lue (i.e. en vrai, elle ncrit rien puisquil
y a dj I), provoque un dcalage droite et reste dans ltat q1 et ainsi
de suite comme illustr sur la figure 3.1 il sagit dune srie de dcalages
droite jusqu ce que la machine lise un symbole sur le ruban. Elle
inscrit alors un I, dcale sa tte de lecture vers la gauche et passe en ltat
q2 et elle entame une srie de dcalages gauche jusqu de nouveau
rencontrer un vide (i.e ) sur le ruban, elle se recale alors droite et
passe dans ltat q0 et elle ritre tant quen ltat q0 elle lit un I. Si elle
lit alors elle efface ce symbole et sarrte (le symbole ! signifiant larrt).
La machine de la figure 3.1 effectue une addition 1 , le lecteur pourra
le vrifier aisment en considrant que sur la figure, la machine est en
position de dpart et que son tat -initial ici- est q0 , on trouvera quel est
ltat final.
Dans cet exemple, lalphabet extrieur comprend trois symboles,
lalphabet intrieur trois aussi et lalphabet des dplacements trois galement.
Si on mesure la difficult dexcution dun algorithme au nombre
ditrations ncessaires la Machine de Turing associe pour passer des
donnes du problme rsoudre et de la position de dpart la solution
du dit problme, alors dans lexemple de laddition ci-dessus la difficult
se mesure en : 2 fois (nombre gauche de lastrisque + nombre droite
+ 1), soit sur lexemple 12 itrations. Soit encore 2 (m + n + 1) itrations
pour additionner deux nombres m et n, ce qui est particulirement lourd.
On peut obtenir le mme rsultat en Max(m, n) itrations en modifiant
la position de dpart, ce qui est nettement plus intressant.
Le tableau double entre du bloc logique de la Machine de Turing
1. Cette faon de faire est loin dtre optimale, il y a beaucoup plus simple pour
faire effectuer une addition une machine de Turing, mais ce nest pas le propos ici.

32

Complexit et Algorithmique avance

sappelle un schme fonctionnel. Nous pouvons maintenant revenir sur


la notion dalgorithme et essayer de la prciser.

3.1.2

Prcision du concept dalgorithme

Le caractre systmatique du fonctionnement dune Machine de


Turing conduit se poser la question de la systmatisation de son
utilisation pour excuter des algorithmes. quel point les notions de
Machine de Turing et de schme de Turing sont elles gnrales ? cela,
la thorie des algorithmes rpond :
Tout algorithme peut tre donn par un schme fonctionnel de Turing
et excut par la Machine de Turing correspondante.
Si cela nest pas encore une dfinition formelle, on voit comment on
sen rapproche. Dun ct, il est question ici de tout algorithme cest dire
de la notion gnrale dalgorithme, qui nest pas une notion mathmatique
prcise, et de lautre ct, il est question de schme dune Machine de
Turing qui est un concept mathmatique prcis.
On cherche prciser la notion gnrale, mais vague de tout
algorithme laide dun concept plus particulier mais bien dfini,
celui de schme fonctionnel de Turing (et son excution par une Machine
de Turing). De cette faon, la thorie des algorithmes, lalgorithmique,
a pour objet de ses recherches tous les schmes fonctionnels de Turing
(toutes les machines de Turing) possibles, et leurs proprits.
Sur la figure 3.1, la machine de Turing est en position de dpart, ltat
de la machine est q0 ; la table double entre qui constitue le schme de
fonctionnement de la machine donne la marche suivre :
Exemple 3.1.1 (Fonctionnement) Voir la figure 3.1. Au dmarrage,
lindex est sous la case la plus gauche contenant un btonnet et la
machine est dans ltat q0 .
Iq0 , D, q1

I I
q0

Iq1 I, D, q1
I

q1

Chapitre 3. La Machine de Turing

33

q1 , D, q1

I I
q1

q1
Iq1 I, D, q1

...

Aprs une srie de dcalages droite...


q1 I, G q2

q1

I I
q1

Iq1 I, G q2

...
q2 , G q2

q
... 1
q2 , D q0

I
q1

L, on retrouve la position initiale mais avec un btonnet de moins


quinitialement du ct gauche de lastrisque et un btonnet de plus du
ct droit. Cette addition consiste donc "transporter" un btonnet de la
gauche vers la droite. Voyons maintenant comment sopre larrt de la
machine. Aprs avoir effac le btonnet (Iq0 Dq1 ) et effectu donc
une nouvelle srie de dplacements de gauche droite jusqu trouver une

34

Complexit et Algorithmique avance

case vide (i.e. contenant le symbole ), la machine inscrit dans la case


en question un nouveau btonnet q1 I, G q2 et entame une nouvelle
srie de dcalages gauche en tat q2 jusqu trouver la premire case
vide gauche (i.e. contenant le symbole ). La machine est alors dans
la configuration suivante :

q0
Ainsi la machine est revenue en position de dpart en ltat q0 . Le
processus continuerait ainsi indfiniment si larrt ntait pas prvu. Ici
aprs encore une boucle dexcution, la machine sera dans la configuration
q0 et elle effacera alors lastrisque :
q0
Il faut alors lui donner lordre de sarrter. On utilise pour ce faire,
conventionnellement, le symbole " !". Soit ici :
q0 !

3.2

Un peu de formalisme

Le concept de machine de Turing tant dsormais introduit, on peut


le formaliser un peu plus.
Formellement, une machine de Turing M sera considre comme tant
un quadruplet
M = (Q, , , q0 )
o Q est lalphabet dtats, q0 Q tant ltat initial. est lalphabet
extrieur de M ; avec : Q = . On considre pour simplifier que
contient un symbole spcial 1 qui marque labsence de symbole, ou le
symbole blanc.
est alors la fonction de transition (i.e. le Schme) :
! est le symbole de larrt, oui est ltat dacceptation, et non est ltat
de rejet. Il nest pas absolument ncessaire dintroduire les symboles oui
1. Certains auteurs en introduisent un deuxime, qui est alors le premier symbole
lire, mais cela est superftatoire. Il suffit que la position de dpart soit donne.

Chapitre 3. La Machine de Turing

35

et non pour construire des machines de Turing lmentaires comme nous


allons le faire. Lintroduction de ces deux symboles est par contre utile
pour dvelopper la thorie de la complexit car elle permet dintroduire le
concept de problme de dcision qui donne un faon standard de prsenter
les choses. Les symboles , , l reprsentant respectivement, le dcalage
droite de la tte de lecture/criture de la machine, le dcalage gauche,
la stagnation.
Q {Q { !, oui, non}} {, , l}

3.3

Machines de Turing lmentaires

Une faon de construire des machines complexes est de commencer


par se doter dun certain nombre de machines lmentaires et du moyen
de les combiner entre elles (voir [Vol85]).

3.3.1

Machine qui sarrte

La premire et la plus simple est celle qui sarrte !


Lalphabet extrieur peut tre quelconque (mais fini bien sr)
S0 , S1 , . . . , Si , . . . , Sn , les tats sont q0 et q1 .
Laction de la machine se rsume alors :
(Si , q0 ) (Si , q0 , STOP)(i = 0, . . . , n).
Cette machine lit la case sous sa tte de lecture criture et sarrte.

3.3.2

Machine "tout gauche", machine "tout droite"

Symboles S0 , S1 , . . . , Si , . . . , Sn
Etats : q0 , q1 , q2
Actions :
(Si , q0 ) (Sj , q1 , G); (i, j = 1, . . . , n)
(Sk , q1 ) (S1 , q2 , STOP)
Cette machine dcale la tte de lecture dune case vers la gauche et
sarrte.

36

Complexit et Algorithmique avance


Par symtrie on construit la machine qui dcale la tte vers la droite.
(Si , q0 ) (Sj , q1 , D); (i, j = 1, . . . , n)
(Sk , q1 ) (S1 , q2 , STOP)

3.3.3

Machine effacement et criture


(Si , q0 ) (, q1 , N); (i, j = 1, . . . , n)
(, q1 ) (, q1 , STOP) ou !

Cette machine efface le symbole de la case lue et sarrte.


(Si , q0 ) (1, q1 , N); (i, j = 1, . . . , n)
(1, q1 ) (1, q1 , STOP) ou !
Cette machine remplace le symbole dans la case lue par 1 et sarrte.

3.3.4

Machines chercheuses de 1 ou de 0
(Si , q0 ) (Si , q1 , D); (i, j = 1, . . . , n)
(1, q1 ) (1, q1 , STOP) ou !

Cette machine cherche le premier 1 droite sur le ruban, partir de


la position de dpart et sarrte une fois quelle la trouv. Si le ruban ne
contient que des 1, la machine ne sarrtera jamais.
On peut faire la mme chose gauche, en remplaant D par G et on
peut faire la mme chose pour 0 au lieu de 1.
Exercice 1 crire le schme dune machine de Turing qui cherche
un 1 sur le ruban sachant quelle dmarre de nimporte ou, quil y a
ncessairement au moins un 1 et quil ny a que des 1 et des 0 sur le
ruban.

Chapitre 3. La Machine de Turing

3.3.5

37

Composition de machines de Turing lmentaires

On peut constituer des machines complexes par mise en squence ou


branchement de machines de Turing lmentaires.
3.3.5.1

Mise en squence de machines

Supposons deux machines de Turing T1 et T2 donnes dalphabets


intrieurs (espaces dtats) respectifs : q0 , . . . , qn et r0 , . . . , rm o q0 et r0
sont les tats initiaux de T1 et T2 et qn et rm sont les tats terminaux.
Les alphabets extrieurs sont identiques pour T1 et T2 .
La machine obtenue par mise en squence, ou enchanement, sera
note
T1 T2
.
Lalphabet extrieur de cette machine est celui de T1 et T2 et
lalphabet intrieur sera obtenu par concatnation, de la faon suivante :
q0 , . . . , qn1 , r0 , . . . , rm
.
Et on transforme :
(Si , qk ) (qn , STOP)
en :
(Si , qk ) (Si , r0 ).
En fait lorsque la premire machine a termin son travail, la deuxime
prend la main et agit sur les rsultats de la premire. La deuxime machine
admet comme tat du ruban dentre ltat du ruban rsultant du calcul
de la premire machine.
On remarquera que cette opration sur les machines de Turing est
associative.
(T1 T2 ) T3 T1 (T2 T3 );
Par contre elle nest videmment pas symtrique.

38
3.3.5.2

Complexit et Algorithmique avance


Branchement de machines

Cest lopration qui permet de faire des tests et de modifier le cours


dun calcul en fonction de rsultats intermdiaires.
trois machines T1 , T2 et T3 despaces dtats respectifs q0 , . . . , qn ;
r0 , . . . , rm ; t0 , . . . . , tp on associe par exemple une machine construite de
la faon suivante : Alphabet interne q0 , . . . , qn1 ; r0 , . . . , rm1 ; t0 , . . . , tp
et ;
(0, qi ) (r0 , 0) Signifie que, si la machine T1 se trouve dans ltat qi
et lit 0 sur le ruban, alors la machine T2 enchane ;
(1, qi ) (t0 , 1) Signifie que, si la machine T1 se trouve dans ltat qi
et lit 1 sur le ruban, alors la machine T3 enchane.

Chapitre 4

La Machine de Turing
Universelle
ans ce qui prcde, nous avons dfini ce quest une Machine de
Turing, ainsi que son schme, spcifique pour chaque classe de problme. Dans cette problmatique, des algorithmes diffrents sexcutent
sur des machines diffrentes. On na donc pas encore atteint le degr
duniversalit cherch. Si on y regarde dun peu plus prs, on saperoit
que ce qui distingue deux telles machines de Turing, ce sont leurs schmes
fonctionnels, et eux seuls. La question vient donc naturellement de savoir
si on ne pourrait pas pousser la standardisation un peu plus loin et avoir
une Machine de Turing capable de simuler toute autre Machine de Turing.
la rponse est positive, mais il faut rsoudre quelques difficults pour
construire cette machine universelle.

4.1

Le problme gnral

On peut par exemple commencer par dcrire, pour un oprateur


extrieur (un humain), la faon doprer de toute Machine de Turing
particulire par les rgles opratoires lmentaires suivantes (voir aussi
[Tra63]) :
1. lire le symbole contenu dans la case pointe par lindex de la
machine ;
2. dans la table double entre du schme fonctionnel, identifier la

40

Complexit et Algorithmique avance


colonne correspondant ltat courant de la machine ;
3. dans la table double entre du schme fonctionnel, identifier la
ligne correspondant au symbole lu ;
4. dans la table double entre du schme fonctionnel, lire le triplet
situ dans la case lintersection des lignes et colonnes ci-dessus
identifies ;
5. crire dans la case du ruban pointe par lindex de la machine, le
premier symbole gauche du triplet ;
6. si la deuxime lettre du triplet est !, arrter la machine, lexcution
est termine ;
7. si la deuxime lettre du triplet est G, dcaler dune case et dune
seule du ruban sur la gauche lindex de la machine ;
8. si la deuxime lettre du triplet est D, dcaler dune case et dune
seule du ruban sur la droite lindex de la machine ;
9. changer ltat courant not par un caractre de lalphabet intrieur de la machine en celui indiqu par le troisime symbole, de
lalphabet intrieur, du triplet ;

10. ritrer la rgle 1.


Cette procdure, bien dcrite et excutable par un humain peut aussi
tre codifie dans un schme fonctionnel et excute par une Machine de
Turing.
Remarque 4.1.1 Cest aussi ce qui est appel la thse de Church,
savoir que toute fonction calculable par un humain est calculable par une
machine 1 .
Pour Church, le modle de la calculabilit cest la notion de fonction
rcursive.
Cest la Machine de Turing Universelle qui va nous permettre de
gnraliser le concept de machine de Turing. Pour une telle machine, le
schme quelle doit simuler doit tre cod sur son ruban, exprim dans
les symboles de lalphabet extrieur. Si on arrive raliser un tel codage
1. Cette thse se comprend de la faon suivante : lhomme peut inventer des
axiomes, ce quune machine ne saurait faire car ils ne pourraient qutre dduits des
axiomes qui ont prsid sa conception. De ce point de vue, le calcul humain ne
sentend donc que comme lexcution par un humain dune procdure bien dfinie.

Chapitre 4. La Machine de Turing Universelle

41

et donner un schme gnral capable de lire ce codage, ou montrer


quil en existe un, alors on aura ralis la Machine de Turing universelle.
Cest maintenant ce que nous allons faire.

4.1.1

Le problme du codage

Il apparat ds lors deux difficults :


Le schme fonctionnel dune Machine de Turing particulire est
une table double entre, or toute criture ou lecture sur le ruban
dune Machine de Turing est squentielle, et de plus, laccs
linformation non contige la case face lindex est impossible
directement.
lautre problme est celui de la finitude des alphabets utiliss.
En effet, dans une Machine de Turing particulire, nous avons
considr jusquici que lalphabet extrieur et lalphabet intrieur
de la machine taient constitus dun nombre fini de symboles,
mais ce nombre, en particulier pour lalphabet intrieur, dpend de
lalgorithme utilis et de la faon de le raliser sur la machine de
Turing. Ainsi, ce nombre de symboles pourrait sembler dpendre
du problme particulier rsoudre. Pour une machine universelle,
il nous est a priori impossible de prvoir quel sera le nombre de
symboles ncessaires la ralisation de telle ou telle autre Machine
de Turing spcifique dun problme donn.
Il nous faut donc rsoudre maintenant ces deux problmes de finitude
de lalphabet et dunidimensionnalit de linformation du ruban.
4.1.1.1

Lunidimensionnalit

Nous allons reprsenter une table double entre k lignes et m


colonnes dans laquelle chaque case contient un triplet par une suite
de m.k quintuplets. Chacun des quintuplets tant form de la faon
suivante :
le premier symbole dsigne une ligne de la table ;
le deuxime symbole dsigne une colonne de la mme table ;
les trois symboles suivants tant dans lordre les symboles du triplet
se trouvant lintersection de la ligne et de la colonne de la table du
schme fonctionnel de la machine de Turing particulire tudie..
Ainsi, le schme de la Machine de Turing de la figure 3.1 page 30 scrit-il :

42

Complexit et Algorithmique avance

q1 Igq2 q2 Dq0 q0 N! q1 Dq1 q2 Gq2 Iq0 Dq1 Iq1 Idq1 Iq2 IGq2
Il est vident quil est possible de rtablir le schme bi-dimensionnel
initial partir de cette squence. Toutefois, cest une squence et non un
tableau, ce qui signifie que laccs deux groupes non contigus ne peut
se faire de manire directe. Il y faudra des intermdiaires, mais cela reste
possible. De mme, on peut adopter une convention gnrale dcriture
dune configuration donne. On notera le symbole caractrisant ltat de
la machine immdiatement gauche du symbole point par lindex de la
machine. Ainsi, la premire configuration de la figure 3.1 se reprsente
par :
Iq0 I III
Avec cette rgle, il ny a pas dambigut, on peut rtablir dune faon
unique la configuration correspondante.
4.1.1.2

La finitude du codage

Il est vident que les symboles de lalphabet extrieur nont aucune


signification particulire en eux-mmes. On peut remplacer un symbole
par un autre, un carr par un cercle sans que cela influence le rsultat.
Par exemple, dans le schme de Turing de la figure 3.1, si on remplace le
symbole I par &, rien ne sera pour autant chang dans le travail de la
machine. La seule chose importante est que des objets diffrents soient
reprsents par des codes diffrents, et que lon puisse distinguer sans
ambigut, les symboles de lalphabet extrieur de ceux de lalphabet
de positions et chacun des donnes du problme . De mme, on peut
prendre des symboles diffrents de G, D, N pour dsigner les dplacements
condition de spcifier quel symbole induit quel dplacement.
Quel que soit le systme de codage utilis, il doit permettre :
1. de diviser le ruban dune faon unique en groupes cods distincts ;
2. que lon puisse distinguer clairement quels sont les groupes cods
relatifs chaque type dalphabet, et chaque symbole de ceux-ci.
Ces deux conditions sont remplies par le procd de codage suivant.

Chapitre 4. La Machine de Turing Universelle

43

On construit 3 + k + m groupes cods de forme . . . , ce qui


implique que deux successifs marquent le passage dun groupe un
autre. On peut utiliser alors le procd de codage suivant (emprunt
[Tra63]) :
Lettres Groupes cods
G

Alphabet extrieur
S1

4 alphas
Nombre de
S2

6 alphas
alphas pair,
suprieur 2.
..........................................................
Sk
. . . . . .
2.(k + 1) alphas
Alphabet de position
q0

5 alphas
Nombre de
q1

7 alphas
alphas impair,
suprieur 5.
..........................................................
qm1
. . . . . .
2.(m + 1) + 1 alphas

reprenons maintenant le ruban suivant :


Nq1 IGq2 Nq2 Dq0
Le codage en sera le suivant :

Les symboles utiliss important peu, on peut remplacer les par des 0
et les par des 1 (ou linverse), et on retombe alors sur un codage binaire
classique comme on en rencontre dans les ordinateurs. Les ingnieurs
systmes qui ont t amens dbogger des systmes au niveau le plus
bas du logiciel connaissent cette forme de codage 1 . Le codage prcdent
devient alors :
1. Par utilisation dimages mmoires, dump en anglais.

44

Complexit et Algorithmique avance


1000011001100000001100000011011000000000
1100001100110000000001100001100011000001

Toute telle suite de 0 et de 1 est appele chiffre dune configuration.


La raison de lutilisation dun codage binaire est toujours celle qui nous
a guide et continuera tout au long de llaboration des concepts de la
thorie des machines de Turing, cest lconomie de ressources
mettre en uvre. Ici, nous nutilisons que deux symboles. Lalphabet
extrieur de notre machine universelle ne contient que deux symboles ! 1
On pourrait se demander sil est possible de descendre un seul symbole.
Malheureusement non, ce nest pas possible car de toute faon sil ny
avait quun seul symbole ce serait le symbole vide et il ne permet pas
de coder quoi que ce soit dautre que lui mme. Avec deux symboles on
peut tout coder y compris le vide. On pourrait penser se contenter dun
symbole et du vide, mais ce serait encore un alphabet deux symboles.
On remarquera par ailleurs que dans le codage ci-dessus, une
succession de deux 1 marque en fait une sparation entre deux groupes
cods.
4.1.1.3

Codage de linstance

Un schme de machine de Turing est destin la rsolution de tous les


problmes dune mme classe. Par exemple il y a la classe des additions ou
des multiplications de nombres entiers, dans ce cas un schme daddition
doit permettre dadditionner, respectivement multiplier, tout groupe de 2
nombres, etc. La donne de deux nombres dans ces exemples sappelle une
instance. On distingue deux types dinstances, les instances gnriques et
les instances particulires. Comme son nom lindique, linstance gnrique
est celle qui dcrit la forme et la nature des donnes, linstance particulire
cest la valeur donne linstance gnrique dans le cas particulier du
problme rsoudre. Le fait de donner ces valeurs aux variables de
linstance gnrique sappelle instanciation.
Sans nuire la gnralit du propos, et sans augmenter le nombre
de symboles de lalphabet de la machine universelle, on peut donner un
rle particulier au groupe cod 11, savoir quil est ajout tout dbut
1. Le codage binaire a t introduit par Leibniz. (1646-1716) qui, philosophe et
mathmaticien, avait labor une thorie monadisme cherchant ne reprsenter le
monde qu partir de deux symboles, en loccurence, 0 et 1.

Chapitre 4. La Machine de Turing Universelle

45

et toute fin de chane signifiante. Ceci permet de sparer la donne du


chiffre du schme de la machine de celle de linstance des donnes sur
lesquelles il faut calculer. Tant que ni le chiffre ni linstance ne sont vides,
cette mthode est pertinente. De plus, cette mthode permet aussi de
dresser, sur le ruban, les limites des donnes 1 dun problme, schme et
instanciation. Ainsi, en fait un ruban de Machine de Turing Universelle
sur lequel on a cod une donne dun problme est constitu dune
infinit de 0 et dun nombre fini de 1 (ventuellement aucun).
Maintenant, il nous est assez ais dnoncer les rgles de fonctionnement de notre machine universelle pour transformer le chiffre de la
configuration initiale en chiffre de la configuration rsultante. Sous la
forme ci-dessus, on devine que les transformations sont certes lmentaires, mais trs longues et fastidieuses. Sans tre exhaustif, disons que
ces transformations vont consister lire successivement un 1 puis une
srie de 0 jusqu un autre 1.
De mme la sparation des deux squences binaires du chiffre et de
linstance seront dtectes par la survenance de la suite
. . . 01111110 . . . .
On dtecte - suivant le nombre de 0 et sa parit - quil sagit dun
symbole de lalphabet extrieur de la machine simuler, on va regarder
si la squence de 1 et de 0 puis de 1 immdiatement droite est un
symbole de lalphabet intrieur, "on sait" quon est dans la lecture du
schme de la Machine de Turing simuler, schme quon peut dsormais
appeler programme 2 .
Ainsi chaque groupe de symboles est facilement discriminable en
fonction de larit du nombre de 0 compris entre deux 1.
Nous nentrerons pas dans le dtail de lcriture du schme de la
Machine de Turing universelle 3 , cela na dsormais plus dintrt pour la
suite de notre tude. Il nous suffit de savoir que cette criture est ralisable,
mme si elle est longue et fastidieuse, et nous pouvons maintenant parler
1. Ici nous appelons donnes la donne du schme de rsolution plus linstance
particulire sur laquelle les calculs doivent tre effectus. On est dans le cas classique
des ordinateurs, pour lesquels on ne distingue pas la mmoire contenant le programme
de celle contenant les donnes.
2. En fait, lorsque cest du binaire comme ici, lusage a consacr le terme de code,
cest du code.
3. Cest ce qui correspond au systme dexploitation dun ordinateur.

46

Complexit et Algorithmique avance

de LA Machine de Turing Universelle, ou plus simplement de la


Machine de Turing en gnral. Nous y viendrons ultrieurement sans
quon ait se poser le problme de lcriture de chaque schme. De plus,
comme pour les ordinateurs, on pourrait concevoir un alphabet extrieur
beaucoup plus volu que 0,1 et quen un premier passage, la machine
compile ce qui est crit sur le ruban pour le rcrire dans le langage
ci-dessus dfini.
Il convient de noter que si la mthode de codage binaire que nous
avons donne ici est une des mthodes possibles, ce nest pas la seule,
ni peut tre la meilleure 1 , mais cela prouve la possibilit de le faire,
a fournit ce quon appelle un thorme dexistence ce qui est largement
suffisant pour notre propos.
Sous sa forme la plus gnrale telle quelle est prsente ci-dessus, la
machine de Turing universelle est difficilement praticable. Il nous fallait
prouver la possibilit de la raliser, maintenant que ce but est atteint,
nous pouvons nous affranchir du modle sachant quon peut toujours
sy ramener. Ce qui nous intresse en fait, ce sont les proprits quon
peut dduire des algorithmes et des problmes partir de ce modle
conceptuel. Sous cette forme la Machine de Turing Universelle ne nous
permet pas de mettre facilement en vidence certaines proprits. En
fait notre but tant de revenir sur la notion de calcul, nous pouvons
maintenant prendre quelques liberts avec la dfinition formelle afin de
pouvoir manipuler plus facilement le concept dans un contexte qui nous
intresse. On a bien sr le droit de le faire tant que le modle que nous
utilisons se ramne in fine celui de Machine de Turing Universelle.

4.1.2

Numrotation des Machines de Turing

On peut assimiler la Machine de Turing Universelle la suite finie


des instructions du programme cod sur le ruban. On peut alors, " la
manire de" Gdel associer des nombres arithmtiques ces suites de 0 et
1 qui codent les programmes. On pourrait prendre le nombre entier cod
en binaire reprsent par la suite des 0 et 1 inscrits sur le ruban. Nous
considrerons seulement ici le nombre de symboles constituant la suite,
et en cas dgalit, on tranchera par un ordre lexicographique (position
du premier 1 ou du premier 0 diffrent, etc.). On peut ainsi numroter les
1. Encore faudrait-il prciser par rapport quel critre.

Chapitre 4. La Machine de Turing Universelle

47

machines de Turing ; Mi , dsignant la i me machine. Mi (n) dsigne le


rsultat ventuel du calcul de la ime Machine de Turing Mi , ayant reu
lentier n en entre (ce faisant, nous confondons suite binaire et entier
cod binaire). De mme, Mi (n1 , n2 , . . . , np ) dsigne le rsultat ventuel
de Mi , avec les donnes n1 , n2 , . . . , np .
Wi N dsigne alors lensemble des entiers pour lesquels Mi (n)
fournit un rsultat.

4.2

Machine de Turing plusieurs rubans

La dfinition du temps et de lespace sur une machine de Turing,


ncessaires une bonne comprhension de la mesure de complexit est
plus aise sur un modle de calcul quivalent mais lgrement diffrent
dans sa prsentation, la machine de Turing plusieurs rubans. Dans une
machine plusieurs rubans, chaque ruban est spcialis et possde sa
propre tte de lecture/criture.
La fonction de transition change de forme, de faon permettre la
gestion simultane des diffrents rubans. La transition continue de faire
passer la machine dun tat un autre et serait donc reprsentable par
un automate tats.
Soit k le nombre de rubans de la machine, alors la fonction de
transition se dfinit comme suit :
: Q k Q k {G, D, N}k

(4.1)

Exemple 4.2.1 Considrons le cas k = 3, alors la fonction de transition


donne par exemple :
(qi , i , i , i ) = (qj , j , j , j , D, D, G}
ce qui signifie que la machine est dans ltat qi , quelle lit i sur le premier
ruban 1 , i et i sur les deuxime et troisime ruban. Elle fait alors
correspondre cet tat laction suivante : elle passe dans ltat qj , crit
j , j , et j respectivement sur les premier, deuxime et troisime ruban,
puis elle dcale les ttes de lecture/criture des premiers et deuxime
1. Les notions de premier deuxime et troisime ruban sont totalement arbitraires,
la spcialisation des rubans ressortit la notion de calculateur sur laquelle nous
reviendrons.

48

Complexit et Algorithmique avance

ruban dune case sur la droite et celle du troisime ruban dune case sur
la gauche.
Du point de vue qui nous intresse, celui de la complexit, il est
ncessaire de montrer une certaine quivalence entre les diffrents modles. On doit pouvoir simuler une machine de Turing un seul ruban
par une machine k rubans et rciproquement.
Thorme 4.2.1 (quivalence de machines ) Soit une fonction
T(n) telle que T(n) n. Alors tout calcul effectu en temps T(n) par
une machine de Turing plusieurs rubans peut tre effectu en temps au
plus O(T2 (n)) sur une machine de Turing un seul ruban.
Schma de preuve :
Lide directrice consiste simuler la machine de Turing k rubans
par une machine un seul ruban. Pour cela, il faut :
pouvoir conserver les informations codes sur les k rubans et les
identifier, on utilise un caractre spcial comme dlimiteur, comme
par exemple ;
identifier la position de chacune des k ttes de lecture/criture par
utilisation dun symbole spcial indiquant que le symbole considr
est face une tte de lecture/criture. Ainsi si a est un symbole
de lalphabet, la notation a signifie que le symbole a est face une
tte de lecture/criture ;
lorsque une tte de la machine plusieurs rubans atteint une zne
non lue dun ruban, la machine un seul ruban marque dun blanc
le dbut de la squence correspondante identifie par et dcale
dun rang droite tout le contenu de cette squence jusquau
symbole suivant sur sa droite 1 .
Preuve 4.2.1 Soit donc MTk une machine de Turing k rubans calculant en temps T(n). On construit en suivant le schma ci-dessus 4.2 une
machine de Turing MT1 un seul ruban simulant MTk.
A chaque itration de MTk, la machine MT1 excute les tapes suivantes :
collecter les symboles contenus dans les cases sous les diffrentes
ttes de lecture afin de dterminer le mouvement suivant ;
1. Par convention videmment.

Chapitre 4. La Machine de Turing Universelle

49

oprer une seconde passe pour mettre jour les positions des ttes
et le contenu des cases correspondantes ;
excuter au plus k dcalages droite.
Chacune de ces oprations prend un temps proportionnel au nombre
de cases lues par MT1 ou sur lesquelles MT1 a crit. A chaque tape
de calcul de MTk, il y a au plus une case vide datteinte sur chaque
ruban. Or, MTk calcule en temps O(T(n)) et possde k rubans, il y a au
plu n + k positions considrer une tape (n dcalages ventuels +k
symboles ) ; aprs T(n) tapes de calcul, il y en a n + k + k.T(n), ce
qui est bien en O(T(n)). Chaque tape de simulation dune itration de
MTk ncessite un temps O(T(n)). Le nombre total dtapes de calcul de
MTk tant O(T(n)), le nombre dtapes de calcul de MT1 est de lordre
de
O(T(n)) O(T(n)) = O(T2 (n)).

4.3

Calculateur, calculateur universel

Une formulation pratique de la Machine de Turing universelle est de


distinguer les diffrentes squences de symboles du ruban. Lalphabet
extrieur sert coder :
1. le schme (programme) de la machine (lalgorithme) particulire
considre ;
2. linstance particulire de donnes sur laquelle il faut excuter
le programme ;
3. le rsultat du calcul de la machine elle mme.
On peut sans perte de gnralit considrer un ruban pour chacune
de ces squences de symboles, ce qui nous conduit utiliser le concept de
machine plusieurs rubans. Ici nous considrerons quil y a trois rubans.
Un calculateur est une machine de Turing trois rubans dont on a
spcialis les rubans, cest dire :
sur le premier ruban se trouve le programme. Ce ruban est infini
droite (respectivement gauche) et rempli de 0 et de 1, la machine
peut en lire le contenu et ne peut faire que a sur ce ruban. Au
dpart seul ce ruban possde une criture, il ny a rien sur les

50

Complexit et Algorithmique avance

autres, le programme excuter. La tte de lecture ne se dplace


que vers la droite 1 ;
le deuxime ruban est un ruban de travail, pour les calculs intermdiaires sur lequel la machine peut lire, effacer, crire et dcaler la
tte de lecture/criture vers la droite, la gauche, ou rester stable,
ce ruban est infini droite et gauche. Au dbut du calcul, ce
ruban comprend une suite finie de 0 et de 1, et des blancs partout
ailleurs. Au dbut du calcul ce ruban contient, code en 0 et 1 la
donne (linstance) s du calcul ;
le troisime ruban est le ruban de rsultat entirement blanc au
dbut du calcul, une tte dcriture vient crire le rsultat (cod
uniquement en 0 et 1), le ruban est infini droite, la tte dcriture
ne peut se dplacer que vers la droite, uniquement et elle ne peut
qucrire.
Une telle version de Machine de Turing 3 rubans sera dsormais
appele Calculateur. De mme que pour les machines de Turing, nous
pouvons classer ces calculateurs C0 , C1 , C2 . . . , Cn , . . .
Si on considre une suite infinie p de 0 et de 1 sur le premier ruban, et
s une suite finie de 0 et de 1 sur le troisime ruban (celui des rsultats),
on note Ci (p, s) la suite finie de 0 et de 1 qui se trouve sur le ruban
de rsultats quand le calculateur Ci sarrte pour le programme p et la
donne s (quand a se produit). Dans le cas o Ci ne sarrte pas pour p
et s on dit que Ci (p, s) nest pas dfini. Lorsque Ci (p, s) est dfini, Ci na
lu quun nombre fini de symboles de p (vident, sinon il ne sarrterait
pas). Cette suite finie est appele programme rduit et note pri (p, s) ce
qui se lit, "programme rduit du calculateur i pour le programme p et la
donne (linstance) s ".
On est fond parler alors de programme rduit. En effet, considrons
la suite binaire infinie pr|t o pr est le programme rduit et t une suite
binaire infinie arbitraire, et pr|t la concatnation de pr avec t. Alors
Ci (pr|t, s) ne dpend pas de t. Toutefois on ne peut pour autant considrer pr comme tant le programme minimal au sens du nombre de
symboles. Nous reviendrons sur cet aspect.
Proposition 4.3.1 Pour tout entier i donn et toute suite finie s, lensemble Pri (p, s) des programmes rduits de C pour s est "prfixe libre",
1. Cest cette dernire proprit qui fait la caractristique du calculateur par
rapport la machine de Turing universelle.

Chapitre 4. La Machine de Turing Universelle

51

(aucun nest prfixe dun autre).


Preuve 4.3.1 La dmonstration est vidente, elle dcoule de la dfinition
du programme rduit. Supposons en effet que le programme rduit pr soit
prfixe de pr, alors on peut crire :
pr = pr |k o k est une suite binaire finie.
On peut toujours transformer toute suite binaire finie k en suite
binaire infinie k en concatnant k avec une suite binaire infinie k 0 ;
k = k |k 0 .
Si pr est un programme rduit de Ci alors le calculateur Ci pour les
donnes pr |k |k 0 et s sarrte en ayant lu uniquement pr .
Par consquent pr nest pas un programme rduit pour Ci et s.
Lensemble {0, 1}N est muni dune mesure standard qui stend
toute partie libre de prfixe prefixe free en posant :
prob(pr) = mes({pr|s; s {0, 1}N })
ce qui donne :
prob(pr) =

1
2longueur(pr)

Ce qui signifie que pour un calculateur donn Ci et une donne s


fixe, lensemble des programmes rduits associs se trouve muni dune
mesure prob() de poids total infrieur 1 :
(prob(Pri (s)) mes({0, 1}N )).
Ici, le poids total, cest la probabilit pour que Ci avec la donne
s sarrte lorsque le programme crit sur son ruban de programme est
choisi au hasard, par jet de pice par exemple.

4.3.1

Calculateur universel

On appelle calculateur Universel, et on note U un calculateur Ci tel


que pour tout calculateur Ck il existe une constante simul(Ck ) avec la
proprit :
0

s, pr, Ck (pr, s) defini pr ; Ci (pr , s) defini Ci (pr , s) =


0

Ck (pr, s) et |pr | |pr| + simul(Ck )

52

Complexit et Algorithmique avance

Un calculateur universel est, comme pour la Machine de Turing


universelle, un calculateur qui doit tre capable deffectuer le travail de
tout autre calculateur.

4.3.2

Le nombre de Chatin

La thorie prcdente permettant de prciser la mesure associe un


programme rduit permet dintroduire un concept important lorsquon
applique cette mesure un calculateur universel.
Le nombre de Chatin, appel aussi nombre 1 est la probabilit pour
quun calculateur universel U sarrte lorsquon lui donne un programme
tir au hasard. En vertu de ce qui prcde, on dfinit comme suit ce
nombre.

pr : programme reduit de U qui


s0 arrete pour la donnee

2longueur(pr)

On dfinit de mme le deuxime nombre de Chatin par :


1 =

1
H(n)
2
nN
X

H(n) dsigne comme auparavant, le contenu en information de lentier


n crit en binaire. Ce nombre possde des proprits analogues au premier.
En effet, le codage binaire de tout entier est compos dune suite de 0 et
1.
Ce sont ces considrations et tous les rsultats quelles entranent,
thoriques certes, mais aussi pratiques (quon pense tout simplement
lutilisation quasi-systmatique de la compression dans les changes de
donnes travers les rseaux) qui permettent de fonder la thorie de
Kolmogorov dont nous donnons une introduction au chapitre qui suit.
De plus, complexit de Kolmogorov ou complexit " la Turing" comme
nous ltudions ici sont lies comme on peut le pressentir la lecture des
rsultats prcdents.
1. Quil ne faut pas confondre avec la notation pour la complexit dans la
notation de Landa

Chapitre 5

Complexit de Kolmogorov
(rudiments)
5.1

Introduction

ensemble des programmes rduits pour un calculateur Ci et une


donne s tant dnombrables (chacun dentre eux est une partie
finie de {0, 1}N ) il existe une taille minimale pour un programme rduit (la borne est 0 puisque la taille est entire). Cest un programme
rduit minimal. De mme lensemble C des calculateurs possibles tels
que Ci (pr, s) = Ck (pr0 , s) est lui mme dnombrable, il existe donc au
moins un calculateur de C tel quil admette pour programme rduit un
programme de cardinal minimal prcm. En dautres termes, il nexiste pas
de calculateur Cl tel que Cl (pr , s) tant dfinie, on ait |pr | |prcm|.
|prcm| a une signification bien prcise, pour U(prcm, ), cest la
complexit (de Kolmogorov) de s, ou contenu en information de
s. On note H(s) cette complexit.
Cette valeur ne dpend pas rellement du calculateur universel choisi.
Supposons quon ait pris U0 la place de U, la complexit H0 obtenue
est telle que :
|H(s) H0 (s)| c (c constante).
(5.1)

On a vu comment on pouvait raliser une Machine de Turing universelle,


en fait, il sagit dune question de codage. On aurait pu prendre un
codage diffrent, la longueur des programmes en serait affecte.

54

Complexit et Algorithmique avance

5.1.1

Interprtation intuitive

Le contenu en information, au sens de Kolmogorov se dfinit par


rapport chaque objet pris individuellement. Le contenu en information
est alors le nombre de bits ncessaires la description dudit objet. Cette
description nest valable que si elle permet de restituer en entier lobjet 1 .
Il y a l une diffrence fondamentale avec la thorie de linformation
de Shannon qui dfinit linformation par rapport un support technologique, la ligne de transmission. On a aussi appel linformation de
Shannon, Information de transmission puisquelle est dfinie comme
tant la quantit dinformation transmettre pour permettre la slection
dun objet parmi toute une collection dobjets prdfinis.
Linformation de Kolmogorov peut tre vue comme linformation
absolue dun objet puisquelle mesure la quantit dinformation qui, par
elle mme, cest--dire intrinsquement, permet de dcrire compltement
lobjet. Il sagit dune mesure intrinsque lobjet considr, et il ny a
nul besoin une rfrence extrieure autre quune MTU ou un calculateur
universel pour ce faire. La complexit de Kolmogorov ou quantit absolue
dinformation dun objet est de mme nature que, en physique, la masse
dun objet, cest une valeur attache chaque objet et qui ne dpend de
rien dautre que lobjet lui-mme, cest une caractristique dudit objet.
On voit immdiatement quil est des objets plus complexes que dautres, parce que leur description est moins aise, cest dire ncessite
un nonc plus long. Ainsi le nombre 21789 est-il certainement moins
complexe que la suite suivante :
26535897932384626433832795028841971693993751
05820974944592307816406286208998628034825342
64709384460955058223172535940812811706798214
8086513282306.
Toutefois, en adoptant ce point de vue , on sexpose au paradoxe
suivant :

5.1.2

Paradoxe

Ce paradoxe a t formul par Bertrand Russell en 1908 qui propose


de dfinir le nombre entier suivant :
1. Pour une autre faon daborder le problme, on peut consulter [CLN04]

Chapitre 5. Complexit de Kolmogorov (rudiments)

55

Le plus petit entier positif ne pouvant tre dcrit en moins de mille


symboles
Soit ce nombre existe et nous lavons dcrit en moins de mille symboles,
en contradiction avec la dfinition, soit il nexiste pas et alors TOUS les
entiers peuvent tre dcrit en moins de mille symboles ce qui est une
absurdit. Ce paradoxe objective la ncessit de prciser ce quon entend
par description dun objet, fut-il mathmatique.
On remarquera au passage quil existe des entiers ne pouvant tre
dcrits en moins de mille symboles, la preuve en est que N est infini et
que lensemble des entiers pouvant tre dfinis en moins de mille symboles
est fini.
Au del, lorsquon est confront un paradoxe en mathmatiques, cela
signifie le plus souvent que les notions ou concepts qui y sont manipuls
sont mal formaliss, ainsi, si ici la notion de plus petit lment est bien
formalise ; on sait que tout sous-ensemble strict non vide de N + admet
un plus petit (un plus grand pour N ) lment. Par contre, ce qui est
mal formalis, cest la notion de description.

5.2

Description dun objet

Si notre mthode de description est discriminante, il ne saurait y


avoir confusion entre deux objets, par consquent, chaque description
reprsente au plus un seul objet. Il y a alors une mthode de description,
soit D qui associe au plus un objet x avec une description y.
D est une fonction de lensemble de description Y qui contient tous
les lments y dans lensemble X des objets x. De mme pour chaque
objet x, il existe D(x) description de x telle que deux objets diffrents
ont chacun une description diffrente de lautre :
De plus, pour des raisons opratoires on ne considrera que les descriptions de longueur finie. On en dduit immdiatement quil ny a quun
ensemble dnombrable dobjets.

D : Y X {x1 X, x2 X; {x1 =
6 x2 } {D(x1 ) 6= D(x2 )}}
Revenons notre description partir des
Les descriptions sont alors des squences de 0 et de 1.

calculateurs.

56

Complexit et Algorithmique avance

Comme nous lavons vu prcdemment, le cot dune telle description


peut tre mesur par la longueur de la chane de bits de cette description,
et plus prcisment par la longueur de la chane la plus courte reprsentant
lobjet considr. On appelle cette longueur, Complexit descriptionnelle
de lobjet x avec la mthode D.

5.2.1

Fonction partiellement rcursive

Le rle de D est ici primordial. Si on veut pouvoir comparer les


complexits dobjets diffrents, il y faut une aune commune. Pour ce
faire, on doit sassurer que cette complexit est donne par une mthode
universelle de description, commune tous (cest une abstraction bien
sr, comme le calculateur universel). Pour pouvoir assurer la ralit de
la mthode D, il faut que le passage de y D(y) puisse tre effectu.
Lexistence dune telle faon de faire se nomme ici fonction partiellement
rcursive.
Lensemble des fonctions partiellement rcursives admet une fonction qui minimise la description de toute autre. Soit D0 cette fonction
partiellement rcursive optimale.
La longueur de description de lobjet x conformment D0 sera
appele ici Complexit algorithmique descriptionnelle .
Lexistence de D0 renvoie lexistence du calculateur universel et du
prcm. Cela signifie, que pour une mthode de reprsentation donne, optimale, la hirarchie des complexits des objets est conserve. Autrement
dit la comparaison des complexits descriptionnelles ne dpend pas de
la mthode de mesure ds lors quelle est cohrente et applique tous
les objets considrs 1 . La signification profonde en est que la complexit
de Kolmogorov, ou complexit algorithmique descriptionnelle est une
mesure intrinsque lobjet considr. On lappelle aussi suivant les
auteurs quantit absolue dinformation ou pour faire court information
absolue de lobjet x.
La puissance de la thorie de Kolmogorov tient prcisment cette
indpendance de la complexit intrinsque par rapport la mthode de
description des objets (algorithmes ou problmes) considrs.
1. Comme pour les mesures des longueurs, peu importe quon utilise le systme
mtrique ou le systme anglo-saxon, lessentiel est quon reste pour les comparaisons
dans un mme systme, et que la hirarchie (cest--dire la relation dordre) dans un
systme soit conserve dans lautre.

Chapitre 5. Complexit de Kolmogorov (rudiments)

57

Le paradoxe 5.1.2 rapparat alors sous une autre forme, le thorme


dincompltude de Gdel sur lequel nous aurons loccasion de revenir.

5.3

Descriptions et tailles

On sait depuis Leibniz que toute information peut-tre code par une
squence de bits. Cest pourquoi, le souci duniversalit de la thorie de
Kolmogorov conduit ne sintresser qu ces objets mathmatiques que
sont les suites binaires. Lobjet est formellement bien dfini et ce sans
perte duniversalit.
Soit donc B = {0, 1} lalphabet binaire et B lensemble des suites
finies, ou mots finis, construits avec les symboles de B.
Considrons maintenant N , cest--dire lensemble des entiers positifs, N priv de 0.
N = {1, 2, 3, ...}
on va identifier B avec N en utilisant lordre lexicographique. Le
mot vide est associ 1, puis, dans lordre, 0 2 ; 1 3 ; 00 4 ;
01 5, . Une faon simple de faire est de faire prcder chaque mot
binaire ainsi form dun 1 et on identifie le nombre binaire ainsi obtenu
son criture dcimale pour obtenir le nombre associ au mot considr 1 .
Par consquent, la longueur 2 dun mot |m| cod comme dcrit ci-dessus
sera la partie entire de log2 m.
Dfinition 5.3.1 Soit une fonction calculable : f : B = B .
La complexit de x B par rapport f est la valeur :
(

Kf (x) =

min|t| tel que f (t)x

si t n0 existe pas

(5.2)

t est alors dit description de x relativement (par rapport) f .


Thorme 5.3.1 (Fonction optimale) Il existe une fonction dite
optimale f0 telle que, quelle que soit une autre fonction fi , il existe
Ci ; Ci N tel que :
x

Kf0 (x) Kfi (x) + Ci .

(5.3)

1. Par exemple, la squence binaire 01 on associe le nombre binaire 101, soit 5


en dcimal, donc 01 5
2. Lcriture |m| reprsente ici la longueur du mot m et pas sa valeur absolue

58

Complexit et Algorithmique avance

Remarque 5.3.1 La constante Ci ne dpend pas de x mais de la nature


de la fonction fi , ce que note lindice i.
Preuve 5.3.1 On trouvera la dmonstration formelle complte de ce
thorme dans le chapitre 17.
Ds lors, on peut noncer le corollaire vident suivant :
Corollaire 5.3.1 Si fi et fj sont deux fonctions optimales, alors il existe
une constante C, ne dpendant que de i et j telle que :
x

|Kfi (x) Kfj (x)| C

(5.4)

On retrouve l lingalit 5.1. Ainsi, la complexit de Kolmogorov est-elle


dfinie une constante additive prs, et on la note alors K(x) et lorsquon
lutilise, on peut fixer a priori la fonction optimale.
Exemple du thorme dincompltude de Gdel
Etant donne une suite binaire x, celle-ci sera dite alatoire si la
plus petite description binaire quon en puisse faire (i.e. le prcm) est de
longueur au moins gale celle de la squence x elle mme. Or, il existe
des squences binaires alatoires de toutes longueurs. La question qui
se pose est de savoir sil existe une mthode permettant de dire si une
squence binaire est, ou non, alatoire. La rponse est NON ! comme
nous lallons voir.
Supposons un systme formel F (dfinitions, axiomes et rgles dinfrence) descriptible entirement en f bits sur le calculateur universel U,
f est la taille du prcm associ F. Un systme formel est dit consistant
si, et seulement si, on ne peut y trouver une proposition qui soit la fois
vraie et fausse, il est dit sain si les propositions vraies peuvent y tre
dmontres comme vraies.
On peut entamer une recherche exhaustive de preuve dalatoirit de
squences de taille n nettement suprieures f .
n >> f
La procdure est alors la suivante :
Pour toute squence binaire x de longueur n >> f
SI x est alatoire ALORS imprimer x
Cette procdure qui consiste dcrire x de longueur n utilise seulement une donne de longueur log2 n + f bits sur U Cette longueur est

Chapitre 5. Complexit de Kolmogorov (rudiments)

59

considrablement infrieure n, ce qui est contradictoire avec le fait


que x soit alatoire puisqutant telle, une squence binaire alatoire de
n bits ne peut tre reprsente, par dfinition, en moins de n bits. La
squence x ne peut la fois tre dcrite en log n bits sur le calculateur
universel et tre alatoire.
La plupart des squences binaires ne prsentent pas de rgularit
calculable, ce qui signifie quelles sont incompressibles. Nous avons qualifi
de telles squences dalatoires.

Troisime partie

Rudiments mathmatiques

Chapitre 6

Considrations thoriques
6.1
6.1.1

Quelques dfinitions fondamentales


Le problme, informellement

i un algorithme ne permet pas darriver au rsultat en un nombre


fini dtapes, on parle alors de pseudo-algorithme 1 . Pour dceler la
proprit de pseudo-algorithme, il faudrait pouvoir construire un algorithme qui, appliqu un quelconque pseudo-algorithme, permettrait de
trancher la question. Malheureusement, et ce rsultat est dune extrme
importance, on dmontre quil est impossible de construire un tel algorithme ; ce problme est indcidable. En termes de programmation, cela
revient dire quil est impossible dcrire un programme de MTU qui,
prenant un autre programme comme donne, permettra de savoir si ce
programme fournira des rsultats au bout dun temps fini.
Du reste, on affine les dfinitions en distinguant entre le fait pour
une MTU de dire simplement quune donne est un pseudo-algorithme
quand il en est un et quelle nen est pas un sinon, et le fait quelle soit
uniquement capable de rpondre quune donne nest pas un pseudo-

1. Attention, il y a des programmes qui ne sarrtent que lorsque la machine sur


laquelle ils sont implments sarrte, cest le cas par exemple des systmes opratoires
des machines, ou au-del des machines elles-mmes, cest aussi le cas dans les rseaux
de processeurs ou dordinateurs en ce qui concerne les programmes qui concernent
les communications, ou plus simplement le contrle des rseaux, voir [Lav91b]. Il en
est ainsi par exemple des programmes dacheminement des messages dans le rseau
internet.

64

Complexit et Algorithmique avance

algorithme (cest dire que cest alors un algorithme) mais quelle soit
incapable de rpondre sinon.
Pour un schme donn et une instance particulire, une Machine de
Turing particulire (en fait un programme et une instance) sarrterat-elle et si oui comment doit-on linterprter ? Telle est la question qui
se pose. En effet, le fait quune Machine de Turing ne sarrte pas
ne signifie nullement quelle ne sarrtera jamais. Cela peut durer des
milliers dannes (nous le verrons lorsque nous tudierons la complexit.)
a ne signifie rien. On aimerait pouvoir dire si la machine va un jour
sarrter. Eh bien, malheureusement, cette question, connue sous le nom
de problme de la halte nest pas rsoluble. Il nexiste pas dalgorithme
(c.a.d. de Machine de Turing) capable de dcider si une Machine de
Turing va, ou non sarrter pour une -ou toute- instance dun problme
donn.
Par contre, on peut utiliser cette proprit darrt pour particulariser
des ensembles.

6.1.2
6.1.2.1

Essais de dfinitions
Ensembles rcursifs

On se souvient ici comment on peut assimiler tout programme de


MTU un nombre, (voir 4.1.2), ce qui nous permet de donner une
dfinition simple de la rcursivit.
Dfinition 6.1.1 Un ensemble E est dit rcursif si et seulement si il
existe une MT permettant de savoir, pour tout entier n sil est dans E,
ou non, cest dire que, pour tout entier n la MT rpond OUI ou NON
suivant que n est dans E ou pas.
Exemples densembles rcursifs :
E = ensemble des nombres impairs ;
E = ensemble des nombres pairs ;
E = ensemble des multiples de p donn ;
E = ensemble des nombres premiers ;
E = (1, 0, 1, 0, . . . , . . . , . . .) Suite binaire caractristique des nombres impairs associe N ;
E = {ensemble des axiomes de Peano AxPeano} ;
E = { Les tautologies du calcul propositionnel } ;
....

Chapitre 6. Considrations thoriques

65

Pour le dire autrement, un problme est reprsent par le langage


dencodage de ses instances "oui". On appelle R -comme Rcursivela classe des langages dcidables par une MT, on dit aussi classe de
dcidabilit. Cest cohrent avec la Thse de Church-Turing qui dit quun
langage reconnaissable par une procdure effective est dcidable par
une machine de Turing.
6.1.2.2

Ensembles rcursivement numrables

Il sagit l dune proprit plus faible 1


Dfinition 6.1.2 E est dit rcursivement numrable si et seulement si
il existe une MT Mi telle que Wi = E avec 2 :
Wi N : Mi (n).
On peut noncer cela autrement.
Dfinition 6.1.3 Est rcursivement numrable un ensemble E pour
lequel existe un algorithme permettant seulement de dcider si un lment quelconque est dans lensemble E, donc dnumrer cet ensemble.
Lalgorithme boucle si on lui demande de statuer sur un lment qui
nest pas dans lensemble.
Exemple densembles rcursivement numrables :
Tous les ensembles rcursifs ;
Lensemble des MTU qui sarrtent pour la donne ;
Lensemble des formules darithmtiques dmontrables dans le
systme daxiomes formels de Peano : ThPeano ;
E = {i : Mi (i) existe } ;
....
On note RE lensemble des langages accepts par une MTU, cest--dire
lensemble des langages rcursivement numrables.
Cela entrane un certain nombre de rsultats. Ainsi, si un ensemble
et son complmentaire sont rcursivement numrables, lensemble lui
mme est rcursif.
1. Au sens mathmatique du terme, cest--dire plus gnrale
2. Rappel : Mi (n) dsigne le rsultat ventuel du calcul de la i me Machine de
Turing Mi , ayant reu lentier n en entre. De mme Wi N dsigne lensemble des
entiers pour lesquels Mi (n) fournit un rsultat.

66

Complexit et Algorithmique avance


Do le thorme :

Thorme 6.1.1 R RE
Remarque 6.1.1 Un nombre rel sera dit rcursif si lon connat un
algorithme permettant de dterminer la suite de ses dcimales.
En consquence, lensemble des rels rcursifs est dnombrable.
Question : Existe-t-il des nombres rels non rcursifs ?
Cette question pose un problme majeur car on na jamais manipul
de rel non rcursif. Chaque fois que les mathmaticiens manipulent un
nombre rel, ils le dfinissent par une srie, une intgrale, des produits
infinis, etc. Si tout rel est rcursif, alors lensemble des nombres rels R
est dnombrable. On voit bien le problme puisque le ct non dnombrable
de lensemble R des rels est le fondement de lanalyse moderne 1 .
6.1.2.3

Ensembles approximables et inapproximables

Dfinition 6.1.4 (Approximable) E est approximable si et seulement


si il est fini ou sil contient un ensemble infini rcursivement numrable.
Lorsque E est un ensemble infini approximable qui contient un ensemble infini rcursivement numrable B , alors les ensembles construits
de la faon suivante :
En = (E {0, 1, . . . , n}) B
sont tous infinis rcursivement numrables car chaque En est runion
de deux ensembles rcursivement numrables. La suite des En permet
dapproximer E par union :
E = n N

En

Si E est rcursivement numrable, il est a fortiori approximable.


Mais la rciproque est fausse. On retrouve l sur notre chemin le thorme
dincompltude de Gdel, thorme central que nous retrouverons encore
sous la forme suivante qui est en fait un corollaire 2
1. Le mathmaticien Borel a longuement dissert en son temps sur la nature de
lensemble R des nombres rels.
2. Le thorme de Gdel snonce comme suit : pour tout systme formel S
contenant le langage de larithmtique (par exemple la thorie des ensembles), il existe

Chapitre 6. Considrations thoriques

67

Thorme 6.1.2 (Gdel) Lensemble Arith des formules darithmtique vraies dans laxiomatique de Peano est un ensemble non rcursivement numrable.
Preuve 6.1.1 [Del94]
Supposons que Arith soit un ensemble rcursivement numrable,
en ce cas, il existe une MT M numrant tous les noncs vrais darithmtique. Supposons alors la formule F(i) dpendant de lentier i pris
comme paramtre exprimant la Machine de Turing Mi sarrte pour la
donne i.
A partir de M, on peut alors construire la MTU MM qui pour tout
entier i donn recherche simultanment F(i) ou F(i) dans Arith et qui
crit OUI ou NON sur son ruban suivant ce quelle trouve. Pour tout i
une telle machine sarrte car soit Mi sarrte et F(i) est vraie et donc
dans Arith, et donc MM crit OUI ; ou bien Mi ne sarrte pas pour la
donne i et alors F(i) est vraie et donc dans Arith et MM crit NON,
et MM sarrte. Une telle machine ne peut exister, sinon le problme de
la Halte serait dcidable (Turing 1936) et donc si MM nexiste pas, M
non plus, et par consquent Arith nest pas rcursivement numrable.
Ce rsultat signifie quaucun systme formel nest complet pour
larithmtique.
Exemples densembles approximables :
Tous les ensembles rcursifs ou rcursivement numrables ;
Arith lensemble des formules arithmtiques vraies est approximable et non rcursivement numrable. Ceci est d au fait quil
contient des sous ensembles de formules vraies rcursivement numrables (ex : les formules du type a + b = c).
Exemples densembles inapproximables :
Lensemble des formules darithmtique vraies de la forme
la suite s est de complexit O(n) o s est une suite infinie de 0
et de 1 et n un entier.
une proposition G indmontrable dans S (sauf si S est contradictoire, auquel cas il
dmontre nimporte quoi).
Un autre thorme de Gdel, de compltude celui-ci et au moins aussi important
nous dit que si une proposition est indcidable, alors il existe un modle o elle est
vraie (au sens dductible du systme daxiomes) et un modle o elle est fausse.

68

Complexit et Algorithmique avance

Non
rcursivement
numrables
approximables

Incompressibles

Rcursivement
numrables
Rcursifs
Inapproximables

Figure 6.1 Hirarchie des ensembles

6.1.3

Des ensembles bien particuliers

On a vu prcdemment que les programmes des calculateurs et donc


des machines de Turing pouvaient tre identifis par des nombres entiers.
Cette proprit mrite dtre exploite plus avant et va nous permettre
dentrevoir un certain nombre de choses sur la puissance des calculateurs.
Le raisonnement est simple, on va comparer lensemble des programmes possibles des calculateurs avec des ensembles dautres objets.
Lensemble des programmes de calculateurs contient un nombre infini
dlments.
6.1.3.1

Taille dun ensemble

Nous allons commencer par les ensembles finis. Il est difficile de dfinir
formellement ce que lon entend par taille dun ensemble. Lintuition
voudrait quon dfinisse la taille dun ensemble comme tant le nombre
de ses lments. Cela suppose dj beaucoup de choses, en particulier
que lon sache compter, ce qui est beaucoup trop fort comme supposition.
De plus, on va avoir des ennuis ds quon va aborder le cas de N.

Chapitre 6. Considrations thoriques

69

Si on ne sait pas compter, on peut utiliser une des plus vieille mthode
de calcul - qui est lorigine du mot calcul - qui nous a t enseigne par
les bergers de la haute Egypte, il y a 4000 ans. Cette mthode consiste
tester lgalit entre deux ensembles. Pour ce faire, il suffit de mettre en
correspondance les lments de lun des ensembles avec ceux de lautre,
et ce dune manire unique, afin que lopration soit faisable dans les
deux sens. Si tous les lments de chacun des ensembles sont utiliss
dune manire unique, alors les deux ensembles sont quivalents du point
de vue de leur taille, taille quon appellera dsormais cardinal.
Lorsque les bergers gyptiens menaient leurs troupeaux en transhumance, ils les menaient pacager plusieurs mois dans des enclos. Au
moment de laisser les btes pntrer dans lenclos, on les faisait passer
par une porte quelles ne pouvaient franchir quune par une. Chaque fois
quune bte entrait dans le pr, le berger mettait un caillou (do le mot
calcul issu du mot calculus qui signifie caillou en latin) dans une urne.
Lorsque tous les moutons taient entrs, on scellait louverture de lurne
avec de la glaise sur laquelle le berger portait une marque distinctive, son
sceau en quelque sorte. Lorsque la transhumance tait finie, il suffisait
au berger douvrir lurne et de procder en sens inverse, savoir sortir
un caillou de lurne chaque fois quun mouton sortait du pr. Ainsi, le
berger savait si les fauves ou la maladie avaient mang plus de moutons
quil nen tait n durant la saison ou si au contraire il tait n plus
dagneaux quil ntait mort de moutons et brebis. Cest cette mthode,
la bijection que nous allons utiliser.
Exemple 6.1.1 Les ensembles {2; 6; 9; 4} , { ; c ; M ; a} , {Paul ;
Nicole ; Maurice ; Grard} ont mme cardinal.
Comparer les cardinaux de ces deux ensembles consiste les mettre
en bijection, cest dire qu un lment de lun on fait correspondre
un et un seul lment de lautre 1 . Dans lexemple, on peut prendre par
exemple :
2 ; 9 c; 6 a; 4 M
ou encore :
Paul 2 ; Nicole 9 ; Maurice 6 ; Grard 4
1. Il y a une difficult dans la dfinition de la bijection. En fait pour quil y ait
mme cardinalit (et donc bijection), il faut que la faon de faire correspondre deux
deux les lments dun ensemble et de lautre soit exprimable en un nombre fini de
termes ou symboles.

70

Complexit et Algorithmique avance


Et ainsi de suite.

6.1.3.2

Des cardinaux linfini

Puisque nous savons comparer les cardinalits de deux ensembles,


nous allons regrouper les ensembles de mme cardinalit dans des classes.
Dfinition 6.1.5 Sil existe une bijection dun ensemble X sur un ensemble Y, alors X est dit quipotent Y. Cette relation est note
Eq(X, Y). (voir [Bou67] p.38)
La relation dquipotence est une relation dquivalence. En effet, en
notant Card(A) le cardinal dun ensemble A, on dmontre les proprits
suivantes :
rflexivit Eq(A, A) est vraie, en effet, on a :
Card(A) = Card(A), on peut toujours mettre un ensemble en
bijection avec lui-mme ;
symtrie Eq(A, B) Eq(B, A),
en effet ;{Card(A) = Card(B)} {Card(B) = Card(A)}, la
bijection tant elle-mme symtrique ;
transitivit {Eq(A, B) et Eq(B, C)} Eq(A, C) ;
en effet {Card(A) = Card(B)}
et {Card(B) = Card(C)}} {Card(A) = Card(C)} vrai car la
composition de deux bijections est une bijection.
Cette relation dquivalence permet de regrouper les ensembles en
classes dquivalence. Feront partie dune mme classe deux ensembles
de mme cardinal. La cardinalit dun ensemble est donc rciproquement
caractrise par la classe de cardinalit laquelle il appartient. Dans
le cas des cardinalits finies, on dsigne ces classes par le nombre dlments quelles contiennent. Ainsi dans lexemple prcdent les trois
ensembles appartiennent la classe 4. lensemble vide appartient la
classe 0. Les nombres caractrisant la cardinalit dun ensemble sont les
nombres cardinaux. On peux aussi dfinir les nombres ordinaux pour
des ensembles sur lesquels est dfinie une relation dordre (ensemble
ordonns). Deux ensembles ont mme ordinalit sil existe une bijection
entre eux prservant leurs relations dordre respectives. Pour les ensembles
finis, cardinalit et ordinalit concident, mais ce nest pas le cas dans les
ensembles infinis.

Chapitre 6. Considrations thoriques

71

Cest dailleurs ainsi quon introduit les dfinitions des entiers, par
les cardinaux. Ainsi :
0 est la classe dquipotence de lensemble vide ou {} ;
1 est la classe dquipotence de lensemble qui admet pour lment
lensemble vide ;
On note 1 = |{}| qui se lit 1 est le cardinal de la classe dquipotence
de lensemble admettant lensemble vide comme seul lment.
2 = |{, {}}| et ainsi de suite , on dfinit ainsi tous les entiers .
Cardinaux infinis
Dfinition 6.1.6 [Bou67] On dit quun ensemble est infini sil nest pas
fini.
Si a est un cardinal infini et n un entier quelconque, on ne peut avoir
a n ; on a donc n < a pour tout entier n, ce qui prouve que lensemble
< a contient tous les entiers.
On est oblig pour continuer dintroduire laxiome suivant quon ne
sait pas dduire des autres axiomes ou schmas daxiomes connus, et
bien que la question ne soit pas tranche (cest une conjecture), il est
prsumer quil est indpendant.
Axiome 6.1.1 Il existe un ensemble infini.
Calcul sur les cardinaux infinis
Thorme 6.1.3 Pour tout cardinal infini a, on a : a2 = a
La dmonstration se conduit en introduisant les deux lemmes suivants :
Lemme 6.1.1 Tout ensemble infini E contient un ensemble quipotent
N.
Lemme 6.1.2 Lensemble N N est quipotent N.
Nous ne dmontrerons ni le thorme, ni les lemmes, ce qui nous
ferait sortir du cadre de ce cours, nous les citons car ils permettent de
mieux comprendre les proprits des ensembles infinis et les particularits
des calculs y affrant.
On en dduit trois corollaires :

72

Complexit et Algorithmique avance

Corollaire 6.1.1 Si a est un cardinal infini, on a an = a pour tout


entier n 1.
La dmonstration est vidente par rcurrence 1 sur n.
Corollaire 6.1.2 Le produit dune famille finie (ai )iIN de cardinaux
non nuls dont lun est un cardinal infini a est gal a.
Corollaire 6.1.3 Si a et b sont deux cardinaux non nuls dont lun est
infini, on a : a.b = a + b = sup(a, b).
Ensembles dnombrables Le premier et plus connu des ensembles
infinis est celui des entiers naturels :
N = {0, 1, . . .}
Dfinition 6.1.7 On dira quun ensemble est dnombrable sil fait partie
de la mme classe de cardinalit que N, cest dire sil est quipotent
une partie de N.
La classe de cardinalit de N est note 0 ( scrit aleph et se
prononce alef)
Exemple 6.1.2
1. Lensemble des nombres impairs est dnombrable.
En effet, tout nombre impair p > 0 on peut faire correspondre le
nombre entier q = p+1
2 .
Plus particulirement, tout sous ensemble de N est dnombrable ;
2. Lensemble Z des entiers relatifs est dnombrable la bijection se
dfinit alors comme suit :
x Z; {{x > 0} {y = 2.x}} {{x < 0}
{y = (2.x) 1}}
3. Lensemble Q des fractions rationnelles est dnombrable. Un rationnel peut tre considr comme une paire ordonne de naturels
(a, b) a tant le numrateur et b 6= 0 le dnominateur et tels que
1. Ce qui suppose quand mme, si on veut tre puriste, quon sache correctement
dfinir ce quest une rcurrence, ce qui ncessiterait de longs dveloppements thoriques.

Chapitre 6. Considrations thoriques

73

a et b naient pas de facteur commun. On peut ordonner Q de la


faon suivante :
On classe les paires suivant lordre induit par la somme a+b et pour
chaque valeur de cette somme par ordre de numrateur croissant.
On a alors la bijection suivante 1 :

{(0, 1) 0; (1, 1) 1; (1, 2) 2; (2, 1) 3; (1, 3) 4; . . .}


4. Lensemble des chanes de caractres de longueur finie sur un
alphabet. La bijection se construit de la faon suivante :
(a) On fixe un ordre arbitraire sur les lettres de lalphabet ;
(b) on classe les chanes de caractres par ordre de taille
croissante ;
(c) pour des mots de mme taille on les range suivant lordre
lexicographique (comme celui du dictionnaire).
(d) On numrote les chanes ainsi obtenues.
De plus en plus infini La question se pose de lquipotence des
ensembles infinis. Existe-t-il des ensembles infinis non quipotents N ?
On sait dans les ensembles finis que lensemble des parties dun
ensemble admet un cardinal exponentiellement suprieur lensemble de
dpart. Soit E un ensemble fini ; on a :
Card(P(E)) = 2Card(E)
Par exemple, lensemble des parties de {0, 1} est :
{, {0}, {1}, {0, 1}}
Quen est-il de lensemble des sous-ensembles dun ensemble dnombrable ?
Thorme 6.1.4 Lensemble des sous-ensembles dun ensemble dnombrable nest pas dnombrable.
1. On peut en imaginer dautres, partir dun tableau double entre par exemple,
en ligne les numrateurs, en colonne les dnominateurs, et un entier diffrent dans
chaque case ...

74

Complexit et Algorithmique avance

Preuve 6.1.2 La technique de dmonstration de ce thorme sappelle


diagonalisation ou technique de la diagonale.
Soit E un ensemble dnombrable E = {e0 , e1 , e2 , . . .} et soit S lensemble de ses sous-ensembles. Si S est dnombrable, on peut le noter en
extension S = {s0 , s1 , . . .}.
Considrons le tableau construit de la faon suivante :
A chaque colonne correspond un lment de E et chaque ligne un
lment de S. Chaque ligne est la fonction caractristique de lensemble
si considr sil y a un 1 dans la ligne si et la colonne ej cela signifie
que llment ej fait partie de lensemble si .
Considrons lensemble D = {ei |ei 6 si }.
Cest celui des symboles de la diagonale du tableau. Cest un sous
ensemble de E. En effet, D contient tous les lments ej de E tels quon
trouve sur la diagonale du tableau et sur la ligne sj . Lensemble D
existe donc, et tant compos dlments de E et seulement dlments
de E, cest un sous ensemble de E, mais ce ne peut pas tre un des
sous-ensembles si .
Supposons que D = sk alors ek D ce qui est impossible puisque
ek D si et seulement si ek 6 sk . Il y a donc contradiction.
La contradiction porte sur notre hypothse de dnombrabilit de E.

s0
s1
s2
s3
s4
...

e0
1
1
0
1
0

e1
1
0
1
1
1

e2
0
0
1
1
0

e3
1
1

e4
0
0

0
1

e5
0

...

Lune des consquences, et non des moindres de ce thorme, on en a


lintuition, est que lensemble des suites finies tant dnombrable mais
infini, lensemble de ses sous ensembles nest lui pas dnombrable. Dans
ces conditions on sent intuitivement quil nexiste pas de suite finie,
programme de calculateur, capable de nous dire pour toute suite finie si
cest un programme de calculateur, ou non. Cest dire que le problme
de la halte est indcidable. On ne sait pas le dmontrer, cest la thse de
Church (quon a utilise pour dmontrer le thorme de Gdel).

Chapitre 6. Considrations thoriques

6.2

75

Indcidabilit

Cette technique de diagonalisation est trs fconde, elle permet de


dmontrer un certain nombre de cas dimpossibilit, ou plutt
dindcidabilit. Ainsi, considrons le tableau T suivant o chaque ligne
correspond une MTU (Machine de Turing Universelle) et chaque colonne un mot. Chaque case du tableau est remplie de la manire
suivante par un O ou un N :
T [MTUi , mj ] = O si la ime machine de Turing, note MTi accepte
le mot mj ;
T [MTUi , mj ] = N si la ime machine de Turing, note MTi naccepte pas le mot mj (elle calcule indfiniment ou rejette le mot).
T
MTU0
MTU1
MTU2

MTUi

m0 m1 m2 mj
O N N O
N N O O
O O N N

N O O N

Considrons maintenant le langage L dfini comme suit :


Dfinition 6.2.1
L = {m|m = mi MTUi n0 accepte pas mi , i N }
Comme on travaille ici avec des Machines de Turing Universelles, on na
pas de problme dalphabet, il est connu, cest {0, 1}. Tous les mots sont
donc cods partir de cet alphabet.
Thorme 6.2.1 L 6 RE, L est dit indcidable.
Preuve 6.2.1 La mthode dnumration des MTU ci-dessus est
exhaustive, toutes les MTU sont dcrites ainsi, ou plutt tous les langages
possibles de MTU. Au passage, on notera que lensemble des MTU est
dnombrable. L est le langage des mots de la diagonale, cest--dire le
mot mi qui occupe la i-me position pour la machine MTUi . Si L appartenait la classe RE, il y aurait une MTU qui laccepterait. mais une
telle machine ne pourrait tre une des machines de lnumration. En

76

Complexit et Algorithmique avance

effet, supposons que la machine MTUk accepte le mot mk , cest--dire


quon ait T [MTUk , mk ] = O, dans ce cas, on doit avoir, par dfinition
de L, mk 6 L et bien sur si T [MTUk , mk ] = N, cest--dire si la MTUk
naccepte pas le mot mk , on a mk L ce qui est contradictoire et
dmontre le thorme.

6.2.1

Plus ou moins indcidable

Il en va de lindcidabilit comme des cardinaux infinis, il est des


langages plus indcidables que dautres. Revenons notre langage L.
Il nest pas dans RE, mais le langage complmentaire de L y est, par
dfinition mme de RE. Soit L ce langage :
L = {m|m = mi MTUi accepte mi , i N }
Or on sait que si un ensemble et son complmentaire sont dans RE alors
ils sont aussi dans R cest en particulier vrai pour les langages. Ici on est
confronts au phnomne suivant ; L 6 RE et L RE. On peut donc
noncer le thorme suivant :
Thorme 6.2.2 Le langage L dfini comme
L = {m|m = mi MTUi accepte mi , i N }
nappartient pas R, il est donc indcidable, mais il appartient RE.
On est donc en prsence de deux langages indcidables, L et L, lun
dans RE et lautre non.
Il existe une hirarchie des indcidables comme il existe une hirarchie des cardinaux infinis, ou des classes de complexit. Ltude fine de
lindcidabilit ntant pas lobjet de cet ouvrage, nous nentrerons pas
dans la construction des classes dindcidabilit. Toutefois, un lecteur
intress pourra consulter louvrage [Wol91].

6.3

Mathmatiques ou informatique ?

On navigue l aux frontires entre mathmatiques et informatique.


En effet, la diagonalisation prcdente nous introduit un
problme mathmatique qui a fait couler beaucoup dencre et qui nest,
notre connaissance, pas encore bien rsolu.

Chapitre 6. Considrations thoriques

77

Considrons lensemble R des nombres rels. Prenons par exemple


le nombre bien connu , on ne peut lcrire exactement que pi ou
par une dfinition telle que cest le rapport du primtre de tout cercle
son rayon. Mais si on veut lcrire dans un systme de numration
positionnelle, comme la base 10 par exemple, on ne peut le faire (en
faisant abstraction de la virgule) avec un nombre fini de chiffres. Toute
substitution, suppression ou rajout (insertion) dun chiffre la suite des
chiffres constituant pi dsigne un autre nombre rel. On peut faire a
autant de fois quon le veut.
On peut donc identifier R lensemble des suites, finies et non finies
de chiffres. Cest dire lensemble de toutes les parties de N. Par
consquent, R nest pas quipotent N en vertu du thorme ci-dessus,
et de plus, on a R N. On est donc tent dcrire :
|N| < |R|
mais on note 0 le cardinal de N et en vertu de ce que nous savons
sur le cardinal de lensemble des parties dun ensemble, on peut crire :
Card(R) = 20

Et on note :

Card(R) = 1

Se pose alors une double question,


Existe-t-il un ensemble contenant N, ne contenant pas R et non
quipotent N ni R, cest dire un i tel que 1 :
0 < i < 1
Autre question du mme genre, existe til
2 > 1 ?
Quelle serait la nature dun ensemble quipotent 2 ?

1. Cest une question indcidable.

Chapitre 7

Ordres, Treillis et Algbre


de Boole
ous introduisons dans ce chapitre les structures mathmatiques qui
permettent en grande partie la base thorique de linformatique.
Linformatique ne travaillant que sur des objets discrets (des bits), donc
numrables, elle manipule essentiellement des ensembles ordonns discrets qui confrent aux donnes et aux calculs les particularits qui sont
utilises pour les traitements informatiques.

7.1

Relations dquivalence

Soit E lensemble des droites de R3 . Soient deux droites a et b, nous


pouvons dterminer facilement si a et b sont parallles ou non.
La relation // " est parallle " possde les proprits suivantes :
1. Rflexivit a, a//a ;
2. Symtrie a//b = b//a ;
3. Transitivit {a//b et b//c} = {a//c}.
Une relation binaire possdant ces trois proprits est dite dquivalence.

7.1.1

Ensemble quotient

Soit un ensemble E muni dune relation dquivalence et un lment


a E. Lensemble des lments de E qui sont quivalents a par la
relation forment la classe dquivalence de a. Notons l a .

80

Complexit et Algorithmique avance

Proprit 7.1.1
quivalents ;

1. Deux

lments

quelconques

de

sont

{a, b a } = {a b };
2. deux classes dquivalence possdant un lment en commun sont
identiques.
{c a et c b } = {a b };
3. tout lment de E appartient sa propre classe dquivalence, et
comme les sous-ensembles ainsi forms, partir dlments non
quivalents, ne peuvent contenir dlment commun, les classes
dquivalence de E forment une partition de E.
On nomme Ensemble quotient de E par lensemble des classes
dquivalence dtermin par sur E.
Exemple 7.1.1 La relation est parallle est une relation dquivalence
dans R3 . Cette relation cre une partition de lespace tridimensionnel
R3 en ce quil est convenu dappeler en gomtrie dans lespace, des
sous-espace vectoriel (on dit aussi varits linaires) qui sont constitues
chacune de droites parallles entre-elles. Lensemble des varits linaires
est lensemble quotient R3// . De mme pour la parit et la non parit
dans N . Dans ce cas, la partition de N se fait entre nombres entiers
pairs et impairs.

7.2

Ordre, ordre partiel et prordre

[Bir67] La relation binaire qui peut tre interprte par "plus petit
ou gal " ; "contenu dans" ; "est une partie de" possde des proprits
qui lui confrent le statut de prordre ou aussi ordre partiel. Un ensemble
muni dune telle relation est dit partiellement ordonn ou, par angliscisme,
poset.
Dfinition 7.2.1 Un ensemble partiellement-ordonn 1 est un ensemble
dans lequel est dfinie une relation binaire qui, pour tout triplet x, y, z
satisfait aux conditions suivantes :
1. Rflexivit x; x x ;
1. Certains utilisent les symboles suivants  qui signifie en fait successeur et
qui signifie prcdent.

Chapitre 7. Ordres, Treillis et Algbre de Boole

81

2. Antisymtrie {x y et y x } = {x = y} ;
3. Transitivit {x y et y z } = {x z}.
Si la proprit dantisymtrie nest pas respecte (2), il sagit alors dun
prordre et tout ensemble muni dune telle relation est dit prordonn.
Exemple 7.2.1 La relation dinclusion dans un ensemble E est un ordre
partiel. Soit (E) lensemble de tous les sous-ensembles de E, dont E
lui-mme et . La relation x y signifiant que x est sous-ensemble de y
est un prordre.
Exemple 7.2.2 Soit N lensemble des entiers positifs non nuls, la
relation x y signifiant x divise y est un prordre.

7.2.1

Isomorphisme et dualit densembles ordonns

Une fonction : P Q dun ensemble partiellement ordonn P sur


un ensemble partiellement ordonn Q est dite isotone si elle satisfait :
x y = (x) (y).

(7.1)

Une fonction isotone possdant un inverse est appele un isomorphisme.


Dit autrement, un isomorphisme entre deux ensembles partiellement
ordonns P et Q est une bijection qui satisfait lquation 7.1. Un isomorphisme dun ensemble partiellement-ordonn sur lui-mme est appel
automorphisme. Deux ensembles partiellement ordonns P et Q sont dits
isomorphes (not P
= Q) si, et seulement si ils sont lis par isomorphisme.
Linverse dune relation est, par dfinition, la relation telle que
{x
y} {yx}.
Thorme 7.2.1 (Principe de dualit) Linverse dun ordre partiel
est un ordre partiel.
Preuve 7.2.1 Cest la consquence directe de ce qui prcde.
Dfinition 7.2.2 Le Dual dun ensemble pr-ordonn X est lensemble
pr-ordonn X dfini par le prordre inverse de celui de X sur les mmes
lments.

Proprit 7.2.1 On dduit de ce qui prcde que X


La relation de
= X.
dualit est symtrique.

82

Complexit et Algorithmique avance

7.3

Treillis

Une borne suprieure dun sous-ensemble X dun ensemble prordonn P est un lment a P suprieur (par la relation dordre partiel)
tout x X. La borne suprieure de toutes les bornes suprieures de
tous les sous-ensembles de P est note supX. Par antisymtrie (proprit
2) cette borne est unique lorsquelle existe. On dfinit de la mme faon
la borne infrieure qui est galement unique lorsquelle existe.
Dfinition 7.3.1 (Treillis) Un treillis 1 est un ensemble partiellement
ordonn tel que tout couple dlments admet une borne suprieure note
x y et une borne infrieure note x y. Un treillis est dit complet si et
seulement si tous ses sous-ensembles possdent une borne suprieure et
une borne infrieure.
Les oprations binaires et des treillis possdent des proprits
algbriques importantes :
1. Idempotence x x = x et x x = x ;
2. Commutativit x y = y x et
x y = y x;
3. Associativit x (y z) = (x y) z et
x (y z) = (x y) z ;
4. Consistance {x y} {x y = y} et
{x y} {x y = x} ;
5. Absorption x (x y) = x (x y) = x ;
6. Isotonie {y z} = {x y x z et x y x z} ;
7. Distributivit faible x (y z) (x y) (x z) et
x (y z) (x y) (x z) ;
8. Modularit faible {x z} = {x (y z) (x y) z}.
Les proprits 1 et 2 sont videntes, elles dcoulent de la dfinition mme
des oprateurs. La proprit 3 vient du fait que x (y z) = (x y) z et
x(yz) = (xy)z sont des expressions gales respectivement la borne
infrieure et la borne suprieure de lensemble {x, y, z}. La proprit 4
se vrifie aisment et implique 5. LIsotonie 6 dcoule directement des
1. On trouvera aussi dans la littrature franaise ancienne lexpression "ensemble
rticul", mais elle sapplique plutt aux cas o les treillis considrs sont continus.

Chapitre 7. Ordres, Treillis et Algbre de Boole

83

proprits 1 5 et du principe de dualit. La distributivit faible vient de


ce que on a videmment x y x et aussi x y y, ainsi que x y y
et x y x ; donc aussi x y y y z ; do x y x (y z).
Or x z x ; x z z y z ; do x z x (y z). En fait,
x (y z) est une borne suprieure de x y et de x z, ce qui implique
7, le deuxime terme tant obtenu partir du premier par application
du principe de dualit.

7.3.1

Treillis distributifs

La distributivit forte ou distributivit x (y z) = (x y)


(x z) et x (y z) = (x y) (x z) nest pas vrifie dans tous
les treillis. Les proprits 7 deviennent alors des galits. De plus, en
arithmtique classique, la distributivit ne sapplique pas pour laddition
x + (y.z) 6= (x + y).(x + z).
La distributivit dun treillis ou dun sous-treillis fini lui confre des
proprits qui sont hors du propos du prsent ouvrage mais qui peuvent
permettre de rsoudre nombre de problmes du monde rel 1 . Aussi,
disposer dun algorithme performant pour ce faire est-il important. Ainsi,
alors que la distributivit est une proprit qui porte sur les triplets
dlments et dont on pourrait penser quil faut la vrifier pour tous
les triplets, une proprit sur les paires dlments permet dobtenir un
algorithme ne ncessitant que O(n2 ) oprations lmentaires.
Notons T lensemble des sup-irrductibles dun treillis T quon dfini
comme suit :
{x T} {{x = u v} = { x = v ou x = u}}.
Et [x] section commenante de x :
{t [x]} {t x } et T[x] = T [x]}.
On peut alors noncer :[Lav76]
Thorme 7.3.1 (Reconnaissance de la distributivit) Un treillis
fini T est distributif si et seulement si x, y T on a lgalit :
T[x] T[y] = T[xy]
Exercice 2

Dmontrer le thorme 7.3.1.

1. Comme loptimisation dun rseau lectrique par exemple

84

Complexit et Algorithmique avance

7.4

Lalgbre de Boole

Dfinition 7.4.1 (Treillis boolen) Un treillis boolen est un treillis


distributif complment.
Dans un treillis distributif, les complments sont uniques quand ils
existent car on a la relation :
Thorme 7.4.1 Dans un treillis distributif T ;
, c T ; {c x = c y et c x = c y} = {x = y}
Preuve 7.4.1 x = x (c x) = x (c y) = (x c) (x y) =
(c y) (x y) = (c x) y = (c y) y = y
Thorme 7.4.2 Dans un treillis boolen, tout lment x possde un
et un seul complment not x ou x possdant de plus les proprits
suivantes :
1. Complmentarit : x x = 0 et x x = 1 les lments 0 et 1
sont dits universels ;
2. Ipsongation : x = x ;
3. Formules de De Morgan : (x y) = x y et (x y) = x y.

7.5

Lalgbre de Boole des expressions logiques

Les variables boolennes, ou logiques, sont susceptibles de prendre


deux valeurs et deux seulement, savoir {vrai ou f aux} ou encore {0, 1}
avec 1 pour vrai et 0 pour f aux. Ces lments 0 ; 1 ou vrai ; f aux sont
les lments universels.
Comme nous avons pu le constater ci-dessus, lalgbre de Boole
comporte trois oprateurs appeles connecteurs qui sont qui correspond
au ou logique ; qui correspond au et logique et x qui est la ngation
quon note aussi x. Les deux premiers connecteurs sont des oprateurs
binaires, le troisime est un oprateur unaire, la ngation. Le mode
opratoire correspondant peut tre visualis par le tableau suivant :

Chapitre 7. Ordres, Treillis et Algbre de Boole

85

xy

xy

vrai

vrai

vrai

vrai

faux

faux

vrai

faux

vrai

faux

faux

vrai

faux

vrai

vrai

faux

vrai

faux

faux

faux

faux

faux

vrai

vrai

Ou, en utilisant la notation en 0, 1 ;


x

xy

xy

Au-del de ces oprateurs, il existe des fonctions boolennes qui, un


ensemble de valeurs booennes font correspondre un ensemble des mmes
f
valeurs, f : B
B. ces fonctions sont formes partir de fonctions
lmentaires qui sont au nombre de 16 ; ce sont :

Tableau des 16 fonctions de 2 variables boolennes f (X2 )


dit aussi Table de vrit
x1

x2

y0

y1

y2

y3

y4

y5

y6

y7

y8

y9

y10

y11

y12

y13

y14

y15

86

Complexit et Algorithmique avance


2

Tableau des 22 oprations boolennes 2 variables


x2 = 1100

Oprateur

fonction de base

x1 = 1010

boolen

quivalente

0000

0001

x1 x2

0010

0011

0100

0101

Libell

nom
commun

FAUX

Jamais

x1 x2 = x1 x2

NOR

ni-ni a

x1 x2 = x1 x2

inhibition 1

x2

Ngation 2

x1 x2 = x1 x2

inhibition 2

x1

x1

Ngation 1

non x1

0110

x1 x2

(x1 x2 ) (x1 x2 )

XOR

OU exclusif

0111

x1 | x2

x1 x2 = x1 x2

NAND

Non-et

1000

x1 |x2

x1 x2

ET

et

1001

x1 x2

(x1 x2 ) (x1 x2 )

EQ

SSI b

10

1010

x1

projection x1

identit 1

11

1011

x1 x2

Implication 1

Si 1 -alors

12

1100

x2

Projection x2

identit 2

13

1101

x1 x2

x1 x2

Implication 2

Si 2 -alors

14

1110

x1 x2

x1 x2

OU

ou

15

1111

VRAI

Toujours

x2

x1 x2

non x2

a. Ou aussi Aucun
b. Si et seulement si.

Loprateur NOR est aussi appel fonction de Pierce ; loprateur XOR,


Addition modulo 2 ; loprateur NAND fonction de Sheffer, loprateur
ET conjonction ; EQ, quivalence ; OU disjonction ; et VRAI, tautologie

Chapitre 7. Ordres, Treillis et Algbre de Boole

7.6

87

Expressions boolennes et problme SAT

On peut, partir des oprateurs ainsi dfinis, dfinir de manire


inductive, le concept d expression boolenne.
Dfinition 7.6.1 (Expression boolenne) Nous appellerons expression boolenne et noterons en gnral , une expression forme comme
suit :
soit par une seule variable boolenne xi ;
soit par une expression de type ou encore appele alors ngation de , o est elle-mme une expression ;
soit une expression de forme (1 2 ) o 1 et 2 sont des expressions boolennes. Une telle expression est appele une disjonction ;
soit encore une expression de la forme (1 2 ) o 1 et 2 sont
des expressions boolennes. Une telle expression est appele une
conjonction.
Une expression boolenne (ou une expression logique 1 ) na de valeur que
si lon affecte des valeurs de vrit aux variables qui la composent. Une
fonction qui affecte de telles valeurs de vrit des variables boolennes ou
logiques sappelle fonction dinterprtation. Une fonction dinterprtation
particulire confre une expression boolenne une valeur de vrit.
Exemple 7.6.1 Soit lexpression boolenne :
(x1 x2 ) (x2 (x3 x1 ))
La fonction dinterprtation {x1 1, x2 1, x3 0} confre la
valeur 1 lexpression.
Par contre, la fonction dinterprtation {x1 1, x2 0, x3
1} implique la valeur 0 pour lexpression considre.
Les expressions boolennes prennent donc des valeurs de vrit vrai,
ou f aux ou {0, 1}. Par la suite, nous ne diffrencierons plus {1, 0} et
lcriture {vrai, f aux}, on identifiera par convention 1 vrai et 0
f aux 2 utilisant indiffremment lune ou lautre notation. La valeur
dune expression boolenne est obtenue par combinaison des oprateurs
ci-dessus. Allant du cas simple de la variable unique aux expressions
combinant les divers oprateurs, nous dirons procder par induction.
1. On dit aussi proposition logique et on parle alors de calcul propositionnel
2. On pourrait trs bien faire le contraire, savoir identifier 1 f aux et 0 vrai.

88

Complexit et Algorithmique avance

Dfinition 7.6.2 (Valeur de vrit) Une valeur de vrit V associe


un ensemble de variables boolennes, est une application dun ensemble fini X0 de variables boolennes, X0 X sur les valeurs logiques
{vrai, f aux}, ou ce qui revient au mme {1, 0}.
Soit une expression boolenne. On dfinit inductivement lensemble
X() des variables boolennes tel que X() X dans comme suit :
si est compos dune seule variable boolenne xi , alors
X() = {xi } ;
si = 1 alors X() = X(1 ) ;
si = (1 2 ) ou = (1 2 ) alors X() = X(1 ) X(2 ).
Lalgbre boolenne de la logique sintresse aux expressions dites valides,
cest dire celles qui prennent la valeur de vrit vrai (resp. 1) quelle que
soit les affectations de valeurs de vrit aux variables qui les composent.
Dfinition 7.6.3 (Expression valide ou Tautologie)
{xi {0, 1}, i = (1, 2, ., j, .n);
f (x1 , x2 , ., xj , ., xn ) = 1} {f est valide}.
Exemple 7.6.2 Lexpression = ( x1 x2 ) x1 est valide (est une
tautologie). En effet, la table de vrit de cette expression est la suivante :

7.6.1

x1

x2

x1 x2

x1 x2

Satisfaction dune expression

Soit donc V une valeur de vrit associe un ensemble X0 de variables


boolennes tel que X() X0 ; on appelle une telle affectation, affectation
approprie . Supposons maintenant que V soit approprie .
On dfinit alors ce que signifie " V satisfait ", not V  .

Chapitre 7. Ordres, Treillis et Algbre de Boole

89

Dfinition 7.6.4 (Satisfaction) Si est une variable xi X(), alors


V  si V(xi ) prend la valeur vrai . Si = 1 , alors V  seulement
si V 2 1 . Dans le cas contraire, on a bien sr V  1 .
Ainsi ;
Si = 1 2 , alors {V  } = {V  1 ou V  2 } ;
et, si = 1 2 , alors {V  } = {V  1 et V  2 }.
Informellement, dire que laffectation V de valeurs aux variables boolennes dune expression boolenne est une valeur de vrit approprie
pour , note V  , signifie que cette affectation nentrane pas de
contradiction dans .
Exemple 7.6.3 (valeur de vrit approprie non satisfaisante)
Soit lexpression boolenne = ((x y) z). Une valeur de vrit
approprie serait :V(x) = V(z) = vrai et V(y) = f aux. La question
maintenant est de savoir si V satisfait , cest dire si : V  ? En fait,
ici V  z. Mais comme est une conjonction, pour que soit satisfaite,
il faut que les deux termes de la conjonction le soient, cest dire ici,
il faut que V  (x y). Supposons V  x ; alors V 2 x. Comme on
a V(y) = f aux, cest dire encore V 2 y, il sensuit que V 2 (x y).
Par consquent V 2 .(daprs[Pap95])
Exemple 7.6.4 (Valeur de vrit "satisfaisante") Par contre :
{V(x) = V(z) = V(y) = vrai} = {V  };
et alors V : x = y = z = vrai satisfait et est aussi une valeur de vrit
approprie pour (en fait {v satisf ait } = {V  }).
Il peut tre plus court et surtout plus explicite dutiliser les implications. Ainsi (1 = 2 ) est une expression plus explicite et plus
courte pour (1 2 ). De mme, (1 2 ) est une criture condense
(i.e. abrge) pour ((1 = 2 ) (2 = 1 ).
On dit alors que les expressions 1 et 2 sont quivalentes, et on note :
1 2 .
Deux expressions 1 et 2 sont dites quivalentes si et seulement si
toute valeur de vrit approprie lune des deux est aussi approprie
lautre.
{{1 2 }et{V  1 }} = {V  2 }
Des expressions quivalentes peuvent tre considres comme reprsentatives du mme objet mathmatique et elles sont alors interchangeables.

90

Complexit et Algorithmique avance

7.6.2

Algbre de Boole

Les oprateurs boolens (connecteurs logiques) munissent lensemble


des propositions logiques (des variables et expressions boolennes) dune
structure appele Algbre de Boole.
Ainsi, on a les proprits suivantes :
1. Complmentarit 1 et 0 ;
2. Commutativit (1 2 ) (2 1 ) et (1 2 ) (2 1 )
qui sont des consquences directes de la symtrie des dfinitions de
et ;
3. Ipsongation qui dcoule de la dfinition de la ngation ;
4. Associativit ((1 2 ) 3 ) (1 (2 3 )) (1 2 3 )
et ((1 2 ) 3 ) (1 (2 3 )) (1 2 3 ). Ce sont l
aussi des consquences immdiates des dfinitions ;
5. Distributivit (1 (2 3 )) (1 2 ) (1 3 ) et
(1 (2 3 )) (1 2 ) (1 3 ) ;
6. Formules de De Morgan (1 2 )
(1 2 ) (1 2 ) ;

(1 2 ) et

7. Idempotence 1 1 1 et symtriquement 1 1 1 .
Exercice 3 Dmontrer les formules 5 (distributivit) et les formules
de De Morgan 6.
7.6.2.1

Formes normales
P

Notation Comme en arithmtique classique, pour les symboles


V
W
et
on utilise des oprateurs (i.e. des connecteurs) gnraliss et .
De plus, les expressions boolennes prsentent une particularit trs
pratique, elles peuvent toutes scrire suivant deux formes standarts.
Q

Dfinition 7.6.5 (Forme normale conjonctive) On appelle Forme


normale conjonctive ou FNC une expression boolenne forme de conjonctions de disjonctions. Chaque disjonction est alors appele clause.
Exemple 7.6.5 (FNC) Lexpression (x1 x3 ) (x2 x3 ) est une forme
normale conjonctive. (x1 x3 ) et (x2 x3 ) en sont les clauses.

Chapitre 7. Ordres, Treillis et Algbre de Boole

91

Dfinition 7.6.6 (Forme normale disjonctive) On appelle Forme


normale disjonctive ou FND une expression boolenne forme de
disjonctions de conjonctions. Chaque conjonction est alors appele
monme.
Exemple 7.6.6 (FND) Lexpression (x1 x3 ) (x2 x3 ) est une forme
normale conjonctive. (x1 x3 ) et (x2 x3 ) en sont les monmes.
Thorme 7.6.1 (Thorme gnral des formes normales )
Toute expression boolenne peut scrire sous forme normale conjonctive
ou sous forme normale disjonctive.
Preuve 7.6.1 La preuve sobtient par application systmatique des
formules de De Morgan et de la proprit didempotence pour ne pas
avoir de variable rpte.
Exercice 4 Dmontrer le thorme 7.6.1 On procdera par induction
et ventuellement idempotence, en examinant dabord le cas o lexpression ne contient quune seule variable, = x, puis le cas de la ngation
= i etc...
On peut remarquer que le passage dune forme de lexpression une
autre, lcriture sous forme normale conjonctive ou disjonctive sobtient
par un procd algorithmique, plusieurs solutions sont possibles, voir
[Lav74].

7.6.3

Le problme SAT

Le problme central auquel se heurtent les logiciens et identifi par


Lvine et Cook comme central en thorie de la complexit est celui dit
de la satisfiabilit . il snonce comme suit :
tant donne une FNC, existe-t-il une valeur de vrit satisfaisante
pour cette FNC, ou, dit autrement, existe-t-il une affectation de valeurs
{0, 1} aux variables constituant cette FNC et lui confrant la valeur 1 ?
Comme nous le verrons, la thorie de la complexit calculatoire se
pose la question de savoir sil existe toujours, cest--dire dans le pire des
cas, un algorithme, polynomial en temps susceptible de rpondre cette
question.

Chapitre 8

Circuits boolens
8.1

Portes et circuits digitaux

es circuits lectroniques, digitaux reprsentent la ralisation


physique des proprits logiques dalgorithmes de calcul. On peut
"coder dans le dur" les algorithmes, cest dire raliser physiquement des
circuits lectroniques qui excutent des fonctions prcises. Pour cela, on
utilise les proprits de lalgbre de Boole et de ses oprateurs, auxquels
on ajoute en gnral un oprateur, ou disjonctif not , appel aussi
XOR qui de dfinit par la table de vrit suivante dont le schma de
ralisation physique est donn par le graphe C1 de la figure 8.1 :

x1

x2

X = (x1 x2 )

Y = (x1 x2 )

x1 x2 = X Y

Mais au del de laspect physique de ralisation des dits circuits, cest


leur aspect logique et graphique que nous nous attachons.
V W
Une table comme celle-ci ou comme celles des oprateurs ; ;
sappelle une porte logique. Une porte logique est une unit de calcul

94

Complexit et Algorithmique avance

logique possdant des entres et une sortie (en gnral une ou deux
entres et une sortie). Lorsquon assigne des valeurs 0 ou 1 aux entres,
on obtient une telle valeur en sortie en accord avec la table de vrit
correspondant la porte considre. Les fils (les arcs sur le graphe
reprsentatif) permettent de transmettre les valeurs dune sortie de porte
lentre dune autre. Dans ce cas, nous dirons que la deuxime porte
dpend de la prcdente. On utilise aussi le terme de porte dentre. Une
porte dentre na pas de sortie, la valeur quelle transmet est dcide
par un agent extrieur, cest lassignation de valeur une variable. Sur
la figure 8.1 ce sont les variables x et y qui jouent ce rle pour le circuit
C et x, y et c pour le circuit C .
Un circuit digital 1 est constitu de portes logiques et portes dentre
relies par des fils.
Lorsquon assigne des valeurs aux portes dentres, on obtient une
valeur en sortie du circuit, on dit alors que le circuit a calcul cette valeur
et a excut la fonction (i.e. lalgorithme correspondant).
Dans la figure 8.1, le circuit C1 calcule lexpression boolenne :
(x y) (x y)
Il sagit en fait de loprateur vu prcdemment.
Par contre le schma C2 ne peut tre formul en termes dune seule
expression boolenne directement pour deux raisons :
le schma possde deux sorties ;
la porte XOR () infrieure a aussi deux sorties. Bien sr dans un
tel cas, il ny a pas deux sorties, cest--dire deux valeurs, diffrentes,
cest deux fois la mme sortie ou mme valeur de sortie.
Par contre ce schma C2 est celui de deux fonctions diffrentes Z et T
dpendantes des mmes valeurs de 3 variables x, y, c. Ici, on a pour le
schma C2 :
T = (x y) ((x y) c)

et

Z = (x y) c.

1. Le mot digital est un mot de la mme famille que doigt et dsigne un nombre,
par opposition ici circuit analogique.

Chapitre 8. Circuits boolens

95

Circuit C1

Circuit C2

Figure 8.1 Graphes de schmas logiques de circuits digitaux

8.1.1

Base standard

Pour construire un circuit de faon gnrale, on utilise des "briques"


de base, cest dire des portes dj prtes quon assemble entre elles.
Cest la "base" du circuit.
Dfinition 8.1.1 (Base) Une base dune fonction boolenne F est un
ensemble de fonctions boolennes partir desquelles ont peut gnrer la
fonction F. Une base universelle est une base partir de laquelle on peut
gnrer toutes les fonctions boolennes.
Exemple 8.1.1 {, , } est une base, universelle, alors que {, , }
nen est pas une.
Dfinition 8.1.2 (Base standard) On appelle base standard, la base
forme des oprateurs et, ou, non soit symboliquement ; ; .

96

Complexit et Algorithmique avance

La base standard est en fait universelle, ce qui signifie que toute fonction
boolenne f peut-tre reprsente par un circuit partir de cette base.
Exemple 8.1.2 Supposons la fonction f donne par sa table de vrit
comme suit :
ligne n

On peut faire correspondre une expression boolenne ce tableau. Ainsi,


chaque valeur 1 de la fonction, on peut associer une clause conjonctive
ou monme. Pour une fonction f n variables boolennes, le nombre de
clauses est au plus 2n , soit ici 8 qui est le nombre de lignes du tableau.
Par exemple :
pour la ligne n8 on a le monme (x y z) ;
pour la ligne n5, le monme (x y z) ;
pour la ligne n3 ; le monme (x y z) ;
pour la ligne n2 ; le monme (x y z).
Ainsi, la fonction f scrit en Forme Normale Disjonctive et contient
quatre monmes et scrit alors :
f = (x y z) (x y z) (x y z) (x y z)

Chapitre 8. Circuits boolens

97

La figure 8.2 permet de voir le schma de principe du circuit associ la


fonction f , schma dans lequel on na pas dtaill les schmas propres
aux monmes.

(x y z)

(x y z)

(x y z)

(x y z)

Figure 8.2 Schma logique du circuit boolen :


f = (x y z) (x y z) (x y z) (x y z)

En fait, dans la figure 8.1 C2 reprsente la combinaison de deux


circuits, lun qui calcule lexpression
T = (x y) ((x y) c)
et lautre videmment
z = (x y) c
On vrifiera quen fait le circuit C1 est une porte logique , et ainsi, on
peut toujours remplacer dans les schmas la porte par son schma. Ainsi
on nest amen ne considrer que la base standard qui est universelle,
toute fonction boolenne pouvant tre calcule (au sens des circuits) avec
ces trois oprateurs.

98

8.2

Complexit et Algorithmique avance

Fonctions boolennes et circuits

Dfinition 8.2.1 (Fonction boolenne) Une fonction boolenne f


n variables est une application :
f : {0, 1}n {0, 1}
ou encore ;
f : {vrai, f aux}n {vrai, f aux}
Une expression boolenne peut tre vue comme une fonction boolenne n variables f , avec n = | X() |. En effet, pour toute valeur de
vrit V assigne aux variables de , une valeur de vrit est dfinie pour
; vrai si V  et faux si V 2 .
On peut ainsi prciser le rapport entre expression et fonction boolenne.
Une expression boolenne de variables x1 , x2 , ..., xn reprsente une
fonction boolenne f (x1 , x2 , ..., xn ) si, pour tout n-uple de valeurs de
vrit

v : v = (v1 , ..., vn ); vi {0, 1}; {{f (v) = 1} {V  }}


et
{{f (v) = 0} {V 2 }}
De cette faon, toute expression boolenne reprsente une fonction
boolenne. Comme nous allons le voir, la rciproque est vraie.
Thorme 8.2.1 Toute fonction boolenne f , n variables peut scrire
sous forme dune expression boolenne f de variables x1 , x2 , . . . , xn .
Preuve 8.2.1 Soit F le sous ensemble de {0, 1}n de tous les n-uples,
valeurs de vrit telles que f prenne la valeur vrai F {0, 1}n : X
F, f (X) = 1 et X {0, 1}n F; f (X ) = 0. Il est alors facile de
construire une expression boolenne. chaque n-uple v = {v1 , v2 , ..., vn }
de F, on fait correspondre un monme de lexpression gnrale, par
conjonction des variables ayant pris la valeur 1 (resp. vrai) et la ngation
de toutes les variables ayant pris la valeur 0 (resp. faux). Soit Cv un
tl monme. Lexpression boolenne reprsentative de la fonction f est
alors obtenue par runion de tous les monmes de type Cv pour toutes les

Chapitre 8. Circuits boolens


valeurs de v. On a donc la forme normale disjonctive :f =
cest dire :
f = (xi1 ... xik ) ... (xil ... xin )

99
W

vF Cv

(8.1)

Chacun des monmes (xij ... xil ) de lquation 8.1 reprsentant


une configuration de variables boolennes ayant toutes la valeur 1 (i.e.
respectivement vrai).
Bien entendu, il sagit l dune dmarche thorique en vue de la
dmonstration, il est en gnral hors de question de construire f qui
possde un nombre de symboles de lordre de O(n2 2n ).

8.3

Circuits boolens

En 1963, Lupanov [Lup63] partant du principe que toute expression


boolenne nutilise que la base standard (dite aussi base canonique) cest-dire in fine que trois oprateurs, deux binaires ( not aussi en logique
et et par certains auteurs (russes en particulier : & ) ainsi que le symbole
pour le ou logique -il aurait pu y rajouter sans que cela ait dincidence
sur la suite-), et un oprateur unaire not x ou x pour la ngation de
la valeur prise par la variable x. Il en dduit une criture "graphique" des
expressions boolennes base sur deux lments graphiques de base et
deux seulement comme nous lavons not prcdemment.

Lupanov en dduit un schma gnral dune expression boolenne


qui peut alors tre visualise comme montr par la figure 8.4.
Dans ce type de reprsentation, seuls les symboles associs aux oprateurs apparaissent. De plus, Lupanov mesure la complexit dun
circuit boolen au nombre minimal de composants de base ncessaires
sa ralisation.
En fait, on utilise plusieurs mesures :
Le nombre total de "composants" quon appelle la taille du circuit ;
le nombre darcs, qui est en fait reprsentatif du nombre de sommets
(et donc de composants, chaque sommet du schma reprsentatif
tant associ un composant) un coefficient multiplicatif prs ;

100

Complexit et Algorithmique avance

ET/OU

NON

Briques de base des graphiques de Lupanov

Figure 8.3 Oprateurs boolens vs graphes


la longueur de la plus longue chane du graphe associ appele alors
la profondeur du circuit.
En considrant le demi-treillis associ un tel schma, on pourrait
rajouter le nombre minimal de gnrateurs ncessaires sa construction.
On peut ainsi crer une algbre des circuits, partir de portes (circuits
de base) et des lois pour les composer, il sagit alors du domaine de la
complexit algbrique, domaine qui sort du propos du prsent ouvrage.

Dfinition 8.3.1 (Circuit boolen) Un circuit boolen est un graphe


orient C = (X, ) dont les sommets X = {x1 , x2 , ..., xn } sont appels les
portes du circuit C. Les arcs (xi , xj ) relient les portes entre-elles,
dans lordre induit par les arcs 1 . De plus, un circuit boolen possde les
caractristiques suivantes :
1. (x) 2 et + (x) 1
1. Les arcs sont orients dans le sens de parcours du circuit par les impulsions
lectroniques

Chapitre 8. Circuits boolens

101

x1 {0,1}
x2 {0,1}
xi {0,1}
0,1

xn-1 {0,1}
xn {0,1}

Figure 8.4 Schmatisation gnrale dune expression boolenne


2. C est sans circuit, le graphe dun circuit boolen est dit acyclique,
en termes de thorie des graphes, cest un arbre ;
3. chaque porte xi est associ un type t(i) {vrai, f aux, , , }.
{t(i) {vrai, f aux}} = { (xi ) = 0}. La porte xi est alors
considre comme une porte dentre du circuit (ou encore intrant,
ou en anglais input) ;
t(i) = alors + (xi ) = (xi ) = 1 ;
{t(i) {, }} = { (xi ) = 2 }
4. pour une porte xi , si + (xi ) = 0 alors celle-ci est dite une sortie
du circuit (ou extrant ou encore, en anglais output) .
Une famille de circuits C = {C0 , C1 , ..., Ci , ..., Cn , ...} est dite calculant f : {0, 1} {0, 1} si et seulement si Cn calculefn et que
fn : {0, 1}n {0, 1} est une restriction de f sur {0, 1}n , n N .
La fonction f est alors dite possder une taille de circuit polynomiale
si il existe une famille C de circuits et un polynme p(n) tel que C calcule
f et quon a : taille(Cn ) p(n).

102

Complexit et Algorithmique avance

En fait, la complexit en temps dun tel circuit est mesure par la


profondeur dudit circuit, cest--dire la longueur du plus long chemin qui
mne dune entre du circuit la sortie.
8.3.0.1

Circuit-SAT

Comme on pouvait sy attendre, il existe une variante de SAT pour


les circuits (voir [Pap95] p. 81) appele CIRCUIT-SAT. tant donn un
circuit C, existe til une fonction dinterprtation T telle que T(C) = 1 ?
CIRCUIT-SAT est quivalent SAT en termes de temps calcul et donc
sans doute trs difficile.

Chapitre 9

Quelques problmes de
rfrence
our la suite de lexpos, nous ferons rfrence quelques problmes
types qui sont reprsentatifs des situations auxquelles nous serons
confronts. La plupart des problmes intressants en informatique sont
poss en termes discrets, cest dire combinatoires. Lune des structures
de modlisation couramment employe est le graphe. Cest une faon
trs simple de dcrire une structure ou une situation, en biologie ou en
mtorologie comme en neurologie ou en sciences sociales. Le graphe
illustre le dicton franais "un bon dessin vaut mieux quun long discours".
Quil sagisse de reprsenter un rseau (route, mtropolitain, rseau
informatique, rseau deau...) ou une relation (entre mots dans un texte,
entre personnes, entre pices dtaches, ...), la structure la plus employe
est celle de graphe.

9.1

Introduction la thorie des graphes

Un graphe (voir [Ber58, Ber69] et aussi [Roy70]) est une structure


mathmatique compose dun ensemble fini de sommets X = x1 , ..., xn et
dun ensemble fini darcs X X.
Un graphe G = (X, ) est le graphe au sens des applications dun
ensemble discret (fini ou non, mais plutt fini pour les applications
courantes) dans lui-mme.

104

9.1.1

Complexit et Algorithmique avance

Petit vocabulaire de thorie des graphes

Le concept de graphe est un concept orient, mais on utilise aussi


souvent des graphes non-orients (cest dire alors quentre deux sommets
lis dans le graphe, il y a toujours deux arcs, lun dans un sens, lautre
dans lautre). Lorsquil sagit de graphes non-orients, on parle dartes
en lieu et place darcs. Les graphes sont de prcieux outils de modlisation
pour maintes situations du monde rel, des neurones aux rseaux routiers
ou aux oloducs.
degr Le nombre darcs issus dun mme sommet donne le degr
extrieur de ce sommet, et le nombre darcs incidents en un
sommets (i.e. y arrivant) donne le degr intrieur dudit sommet.
Ces degrs sont nots respectivement pour un sommet x : + {x} et
{x} et le degr du sommet est : {x} = + {x} + {x}. Ainsi,
dans la figure 9.1, on a : + {E} = 2 et {E} = 3 et {x} = 5.
adjacence et voisinage Deux sommets sont dits adjacents sils
sont relis par un arc ou une arte et ils sont alors dits voisins ;
chemin Un chemin entre deux sommets x et y est une succession
darcs tels que lextrmit de lun soit origine du suivant, x tant
origine et y extrmit du chemin. Un chemin lmentaire [x. .y]
est un chemin dans lequel, quel quil soit, un sommet napparat
quune seule fois. Dans la figure 9.1 [A, E, D, F] est un chemin
lmentaire de A F. Un chemin simple [x. .y] est un chemin
dans lequel, quel quil soit, un arc napparat quune seule fois ;
chane Les mmes notions, non orientes sont utilises. Au lieu de
chemin on parle alors de chane . Ainsi [A, E, D, F] est une chane
lmentaire de A F, et [A, B, E, D, C, F] aussi.
connexit, forte connexit Un graphe sera dit connexe sil
existe une chane entre tout couple de sommets, il sera dit fortement connexe sil existe un chemin entre tout couple de sommets.

9.1.2

Exemple de reprsentation de graphes

On peut reprsenter le graphe G de la figure 9.1 comme suit :


G = {X, } ;
X = {A, B, C, D, E, F} ;

Chapitre 9. Quelques problmes de rfrence

105

D
Figure 9.1 Exemple de graphe

= {(A, B); (A, E); (B, D); (C, A); (C, D); (C, E); (C, F);
(D, F); (E, B); (E, D); (F, E)}
Ou comme suit, par la matrice dadjacence G :

A
B
C
D
E
F

A
0
0
1
0
0
0

B
1
0
0
0
1
0

C
0
0
0
0
0
0

D
0
1
1
0
1
0

E
1
0
1
0
0
1

F
0
0
1
1
0
0

On verra plus loin, sur la figure 9.3 une reprsentation de graphe par
matrice boolenne. On pourrait encore dcrire le graphe dune faon
plus informatique, par file des successeurs et/ou des prdcesseurs. Nous
reviendrons sur ce problme de la reprsentation et du codage de lnonc
du problme et des donnes.

106

9.1.3

Complexit et Algorithmique avance

Quelques sous-ensembles remarquables de sommets

E
Ensembles stables intrieurement,
maximaux!:
{A,C,D}!; {A,E,C}!; {D,F}!;
{D,B}!.

Les trois sommets en noir, A, C, D forment un ensemble stable intrieurement,


maximal au sens de linclusion (c.a.d quon ne peut y rajouter un sommet)!et aussi
au sens du cardinal (i.e. en nombre de sommets); le nombre de stabilit interne de
ce graphe est donc gal 3.

Figure 9.2 Ensemble stable intrieurement

Dans un graphe, orient ou non, un sous-ensemble de sommets peut-tre


jug remarquable par rapport des proprits de connexion :
deux sommets du sous-ensemble sont toujours relis par une chane
(resp. un chemin) ;
il ny a ni chemin ni chane entre tout couple de sommets du
sous-ensemble considr ;
toute chane (resp. chemin) joignant deux sommets nappartenant
pas au sous-ensemble considr passe obligatoirement par un sommet du sous-ensemble ;
...
Ainsi peut-on dfinir des ensembles dits stables, tant intrieurement
quextrieurement :

Chapitre 9. Quelques problmes de rfrence

107

Dfinition 9.1.1 (Stabilit interne) Soit G = (X, V) un graphe nonorient, I X forme un ensemble stable intrieurement (e.s.i) si,
et seulement si deux sommets quelconques de cet ensemble ne sont pas
adjacents.
{I X est un e.s.i.} {xi , xj I; (xi , xj ) 6 V}
La figure 9.2 illustre cette notion de stabilit interne. De plus, les ensembles stables ici sont maximaux au sens de linclusion, cest--dire
quon ne peut pas leur rajouter un sommet sans perdre la proprit
de stabilit interne. De plus, le.s.i {A, C, D} est maximal au sens du
cardinal, cest dire quil nexiste pas de.s.i dans ce graphe qui contienne
plus de trois sommets. Ce nombre est le nombre de stabilit interne
du graphe.
Dfinition 9.1.2 (Stabilit externe) Soit
un
graphe
orient
G = (X, ) ; un ensemble E X est dit stable (e.s.e. en abrg), ou
absorbant si, et seulement si :
E (E) = X.
Cest dire que : xi 6 E xj E : (xj , xi ) . On note en gnral
E lensemble des e.s.e. dun graphe. On peut remarquer que E nest jamais
vide puisque X est toujours un e.s.e.. De plus, dans un graphe connexe,
tout complmentaire dun e.s.i. est aussi un e.s.e..
La runion de deux e.s.e. dun mme graphe est encore un e.s.e. ; par
consquent, E muni de la relation dinclusion est un sup-demi-treillis.
Les lments minimaux de ce sup-demi-treillis, nots ici e.s.e.m. sont
dfinis par le fait quaucun de leurs sous-ensembles stricts nest un e.s.e..
Le cardinal minimal pour un e.s.e.m. fournit le nombre de stabilit externe,
appel aussi nombre dabsorption du graphe considr. Pour un graphe
G, on le note : (G). Le concept densemble stable extrieurement est
trs important en thorie des graphes, il conduit au problme connu
sous la dnomination de problme du recouvrement 1 . Dans un rseau par
exemple, identifier un e.s.e.m. peut savrer crucial pour dterminer les
noeuds stratgiques en cas de panne. En thorie des jeux le concept peut
savrer fondamental (voir [Roy70] T.2, p.25).
Les problmes de recherche densembles stables ou absorbants se posent
en termes de minimisation de fonction boolennes.
1. Set covering problem en anglais.

108

9.1.4

Complexit et Algorithmique avance

Ensembles absorbants et nombre dabsorption

Soit G = (S, ) un graphe, S tant lensemble des sommets et


celui des arcs, P est dit absorbant [Ber58, Ber69] ou stable [Roy70] si et
seulement si :
si S; si (si ) P =
6

(9.1)

Si A = (ai,j ) est la matrice boolenne associe G, et si on associe aux


sommets si de S les variables boolennes xi , la condition 9.1 nous indique
quun ensemble absorbant (i.e. stable extrieurement) doit, soit contenir
si soit au moins un de ses descendants. Donc, dans lexpression boolenne
W
W
de P, lexpression xi j ai,j xj = j ai,j xj doit prendre la valeur 1
quelque soit xi .
On peut donc r-crire la condition 9.1 sous forme dquation boolenne :
Cp

^_
i

ai,j xi = 1

(9.2)

La solution de cette quation boolenne 9.2 donne tous les ensembles


stables extrieurement (i.e. absorbants). Le nombre dabsorption est
alors :
(G) = min | P |
qui est la valeur du cardinal minimal dun ensemble stable de G. (daprs
[Lav74]) qui est aussi le plus petit cardinal de couverture. Ainsi, le
problme de la recherche des ensembles stables dun graphe peut-il tre
pos sous forme de minimisation dune fonction boolenne et donc sous
une forme standard sur laquelle nous reviendrons et qui est centrale en
thorie de la complexit, savoir le problme dit de satisfiabilit ou
encore SAT.

Exemple 9.1.1 Soit un graphe G (voir figure 9.3) de matrice boolenne


associe :

Chapitre 9. Quelques problmes de rfrence

109

1
2

A=

G
6
1

3
1

X1 X2 X3 X4 X5 X6 X7
_________________
1 0 0 0 0 0 0
1 1 0 0 0 0 0
1 0 1 0 1 0 1
0 1 0 1 1 0 0
0 1 0 0 1 0 0
0 1 0 0 0 1 1
0 0 0 0 1 0 1

P ensemble stable minimal de cardinal


minimal!: P = {1,2,5}

4
1

Figure 9.3 Ensemble absorbant

9.2

Existence de chemin

Soit un graphe G = (X, ), |X| N et X X. Un lment x X


est appel un sommet et (xi , xj ) un arc. Un couple de sommets
(xa , xb ) tant donn, la question est : existe-t-il un chemin dorigine xa
et dextrmit xb ?
Comme nombre de problmes, il y a une grande quantit dinstances
possibles ce problme, cest--dire en fait de faons de poser le problme
lui mme. Nous serons amens distinguer entre instances gnriques
et instances particulires pour un problme donn, lune dcrivant une
classe de problmes, lautre un lment de la classe.
G = (X, ), |X| N et X X , existe-t-il un chemin de xi xj ?
est une instance gnrique ; alors que

110

Complexit et Algorithmique avance

C
P
E

F
G

Figure 9.4 Existence de chemin entre deux sommets


X = {A, B, C, D, E, F, G, S, P} ;
= {(A, C); (A, S); (B, A); (B, P); (C, B); (C, D); (C, E); (D, E);
(D, G); (E, A); (F, E); (F, G); (P, D); (S, F); (S, G)}, et existe-t-il un chemin
de S P ? est une instance particulire et caractrise le problme sur le
graphe de la figure 9.4 :
Chaque instance, gnrique ou particulire est un objet mathmatique (ici un graphe et deux de ses sommets) sur lequel on pose une
question laquelle on espre une rponse. La forme prise par la question
caractrise le problme. On remarquera que le problme prcdent pose
une question dont la rponse est soit oui, soit non. De tels problmes,
rponse oui, non seront par la suite appels problmes de dcision .
Nous verrons que cette forme est trs riche et a jou un rle central dans
llaboration de la thorie.

Chapitre 9. Quelques problmes de rfrence

111

Notre propos est de nous intresser aux algorithmes qui rsolvent ce


problme. Dans le chapitre suivant, nous reviendrons sur le concept de
machine de Turing, modle formel, permettant la fois de prciser les
concepts de problme et dalgorithme, dexprimer ceux-ci et den mettre
en vidence quelques proprits permettant de les comparer une aune
commune.
Lalgorithme le plus classique pour rsoudre notre problme dexistence est connu sous le nom dalgorithme de recherche, ou algorithme
glouton . La forme la plus lmentaire en est la suivante :
On maintient une structure de donnes qui est un ensemble de sommets
S, vide au dbut ; on a alors S = . Chaque sommet peut se trouver dans
un des deux tats, marqu ou non marqu .
chaque tape de lalgorithme, si un sommet est non marqu, cela
signifie quil na jamais fait partie de S. chaque itration, on choisit
un sommet i S et on considre un sommet j X non marqu tel que
(i, j) et j 6 S. On marque alors j, et on inclut j dans S puis on en
exclut i si et seulement si x + {i}; x S. On continue jusqu ce
quon ait de nouveau S = . Lorsque larrt de lalgorithme a lieu, on a
S = , alors si xj est marqu, la rponse est oui ; sinon elle est non.
Au dpart, on initialise lalgorithme en marquant xi et en lincluant
dans S. Exprim ainsi, il sagit dun principe algorithmique, sans plus.
Il conviendrait ici de prciser la forme sous laquelle sont prsentes les
donnes dune part, les structures de donnes utilises dautre part pour
reprsenter les donnes intermdiaires comme lensemble S, pile, file, tas...
Dautres aspects de spcification sont laisss dans lombre comme la faon
doprer le choix dun lment dans S par exemple. Sil sagit dune pile,
comme dans lexemple de spcification ci-dessus, on utilise une mthode
dite en profondeur dabord, inspire de lalgorithme de Trmaux, si la
structuration de S est une file, on obtient un parcours dit en largeur qui
nous assure, si y est marqu que cest par le plus court chemin au sens du
nombre darcs. Dautres structures de donnes comme le Tas, ou dautres
critres de choix dun lment de S (alatoire par exemple) peuvent
tre utiliss. Ainsi les performances de lalgorithme dpendent-elles de
nombreux lments. On peut remarquer quune premire amlioration
intuitive est dajouter un test de terminaison. Si on marque xj , il nest
plus ncessaire de continuer. Cest ce que nous avons ajout dans la
spcification sous forme de commentaire la ligne 18 bis.

112

Complexit et Algorithmique avance

---------------------------------------------------Algorithme glouton pile:


---------------------------------------------------01 Procedure Exist(succ: GrapheSuc; n: entier; x,y:
Sommet);
02 var
03
pile: pile;
04
x, y, xx : Sommet;
05
i, j, n, d: entier;
06
successeurs : tableau(n):entier;
07
mark : tableau(n), boolen;
08 begin
/* initialisation de la pile /*
09 empiler(x,pile);
10 mark(x) := 1;
/* parcours "en profondeur dabord" /*
11
tantque pile <> vide
12
xx:= sommet(pile);
13
dpiler(sommet(pile));
14
d := deg(xx);
15
pour i = 1 d faire
16
si mark(succ(xx,i)) = 0 alors
17
empiler(succ(xx,i)), pile);
18
mark(succ(xx,i)) := 1
/* 18 bis /* si mark(y) = 1 alors print "oui" stop /*
19
finsi
20
finpour
21
fintantque
22
si mark(y) =1 alors imprimer "oui"
23
sinon imprimer "non"
24
finsi
25 end Exist
----------------------------------------------------

Chapitre 9. Quelques problmes de rfrence

9.2.1

113

Complexit

Si on sintresse au nombre doprations lmentaires ncessaires


lexcution de cet algorithme, plusieurs cas peuvent se prsenter.
Dans la version "basique" ci-dessus de lalgorithme, on marque en fait
tous les sommets atteignables partir de x. On obtient une arborescence
de racine x qui est larborescence de Trmaux. Si y est un des sommets
de larborescence, alors il est marqu et la rponse lalgorithme est
"oui" comme nous lavons vu.
Dans le meilleur des cas, larborescence est de hauteur 1 et se rduit
un arc, y est directement successeur de x et est le seul ! Dans ce cas,
le nombre doprations lmentaires effectues par lalgorithme est une
constante arithmtique (i.e. un nombre entier).
Dans le pire des cas, tous les sommets du graphe sont dans larborescence de trmaux, donc il existe des chemins dorigine x permettant
datteindre tous les sommets du graphe. Le nombre doprations lmentaires est de lordre de n2 . En effet, pour chaque sommet inclus dans
la pile, il faut tester tous ses successeurs pour savoir lequel est marqu
et lequel ne lest pas, en fait il faut donc sintresser tous les arcs du
graphe, soit n2 arcs.
On pourrat penser que ladjonction de la ligne de code 18 bis amliorerait les choses. Il nen est rien du point de vue fondamental. En effet,
la thorie de la complexit raisonne en "pire des cas" et le pire des cas
reste le mme avec ou sans cette instruction. Par contre, "en moyenne 1 "
cette instruction est cense amliorer les performances de lalgorithme.

9.3

Flot maximal

Notre deuxime problme type est le problme dit du flot maximal,


bien connu, et pour la rsolution duquel on dispose du thorme fondamental d Ford et Fulkerson [FF62] sur lequel tous les algorithmes
de flot sont bass, le thorme dit Flot-max = Coupe min, et qui ont
donn le premier algorithme (malheureusement de complexit minimale
O(n5 ) et [Din70] qui donne le meilleur algorithme connu (en O(n2,5 )) ;
1. L, on soulve un autre problme qui est : quest-ce que la moyenne dans ce
cas ? Les notions de cas moyen ou moyenne des cas ou graphe alatoire sont loin dtre
videntes.

114

Complexit et Algorithmique avance

voir aussi [GTT89] pour une revue des algorithmes de flot. Le problme
snonce comme suit :
On donne un graphe avec capacits G = (X, , s, p, C), graphe dans
lequel, X est lensemble fini des sommets, |X| N , X X, s X,
p X, C : N ; o c(i, j) C est un entier positif non nul associ
un arc (on peut toujours se ramener au cas entier) et appel capacit
de larc (i, j). Les deux sommets s et p sont deux sommets privilgis, s
tant appel source, et p tant appel puits. Un tel graphe est appel
rseau de transport. Le problme est de faire passer un flot F maximal
de s p en respectant les contraintes de capacit dans un graphe du
type de celui de la figure 9.5, cest--dire tel que pour chaque arc on ait :
c(i, j) f (i, j) et que :

Maxf (p, s)

: i X;

X
j

f (j, i) =

f (i, k);

(9.3)

Sous cette forme, le problme FLOT MAX nest pas un problme


de dcision, cest un problme dit doptimisation que nous noterons
dsormais FLOT MAX_O .
Plus gnralement, ce type de problme dans lequel il sagit de maximiser ou minimiser une fonction est appel aussi problme doptimisation.
Sa forme gnrale est la suivante :
Problme doptimisation : [Max ou Min f (x)]
A.g(X) () B
X E (E ensemble sur lequel X prend ses valeurs)
Trouver la valeur X = {x1 , x2 , . . . , xn } permettant de maximiser (respectivement minimiser) la fonction f sous les contraintes reprsentes par
la matrice A et le vecteur B.
Par exemple, lorsque f , et les contraintes sont linaires comme g(X)
telle que : (g(X) = {x1 , x2 , . . . , xn , }), il sagit dun problme dit de
programmation linaire dont le premier algorithme de rsolution, connu
aujourdhui sous le nom de simplexe, est d Kantorovitch et Tolsto en
1939, [Kan60, Tol39] reformul en 1954 par Dantzig qui lui a donn le
nom de simplexe. Toutefois, lutilisation de lalgorithme du simplexe pour
rsoudre un problme de flot contraintes linaires savre extrmement

Chapitre 9. Quelques problmes de rfrence

115

dcevant en termes de performances, prcisment pour des problmes


de complexit dus la nature profonde de lalgorithme du simplexe.
Cest pourquoi on a labor des algorithmes spcifiques. On verra par la
suite comment transformer tout problme doptimisation en problme
de dcision.
Toutefois, ici, on peut poser le problme FLOT MAX_O sous forme
de problme de dcision de la faon suivante :
Pour le rseau G, on pose la question : Existe-t-il un flot de valeur
suprieure V par exemple, et la rponse attendue ne peut tre que
oui ou non. Nous noterons dsormais cette formulation du problme par
FLOT MAX_D. Souvenons nous ici que la seule chose qui nous intresse
par rapport aux algorithmes que nous tudions, cest leur complexit, et
plus particulirement le temps de calcul 1 quils induisent. De ce point
de vue, mais de ce point de vue seulement, FLOT MAX_D et FLOT
MAX_O sont quivalents.
2
d

6
a

s
Source

h
8
9

9
1

6
3

b
1

f
8

12

11
c

p
Puit

7
14

Graphe avec capacits : rseau de transport

Figure 9.5 Exemple de graphe avec capacits


1. Nous verrons plus loin quelle aune mesurer ce temps.

116

Complexit et Algorithmique avance

Par ailleurs, il y a souvent de fortes analogies entre les problmes.


Ainsi, ici, lalgorithme de Ford-Fulkerson fait appel au problme prcdent,
celui de lexistence de chemin.
En effet, dans lalgorithme de Ford-Fulkerson, on utilise le concept
de chane amliorante. (. . .) tant donn un flot F sur un graphe avec
capacits G = (X, , s, p, C), on considre le graphe G = (X, , s, p, C )
dit dcart construit comme suit :
{c(i, j) f (i, j) > 0} = { (i, j) , (j, i) }
et
c (i, j) = c(i, j) f (i, j) et c (j, i) = f (i, j)
{c(i, j) f (i, j) = 0} = {(j, i) et c (j, i)
= f (i, j) et (i, j) 6 }
Lorsquon a comme ci-dessus lgalit c(i, j) f (i, j) = 0 (cest--dire
que le flux qui traverse larc (i, j) du graphe est gal la capacit dudit
arc) larc (i, j) de G est alors dit satur.
Dire si F est maximal, cest dterminer sil existe une chane amliorante dans G, cest--dire sil existe un chemin de s p dans G , ce
qui est notre premier problme de rfrence. De plus, on sait que cest en
construisant le chemin de nombre darcs minimal sur G quon obtient
les meilleures performances en temps pour lalgorithme, on utilise donc
un parcours en largeur.

9.4

Couplage dans un graphe biparti

Ce problme, simple poser, est central, comme les autres problmes


voqus ici. Il a donn lieu une abondante littrature, cest un cas
particulier dun problme plus gnral connu sous le nom de Problme
du recouvrement minimal (voir [Lav74] par exemple).
Un graphe biparti se dfinit comme suit :
Soit un graphe B = (U, V, A). U et V sont des ensembles de sommets,
et A lensemble des arcs dorigine dans U et dextrmit dans V. Il ny a
pas darcs dextrmit dans U, ni darc dorigine dans V.

Chapitre 9. Quelques problmes de rfrence

117

U = {u1 , u2 , . . . , un }, V = {v1 , v2 , . . . , vn }; A U V
Les graphes bipartis dont il est question ici sont tels que les deux
ensembles de sommets contiennent le mme nombre dlments. Un
couplage (on dit aussi parfois couplage parfait) dans un tel graphe est
un ensemble C A comprenant n arcs tels que, pour tout couple
(x, y); (x0 , y 0 ) darcs de C, on ait x 6= x0 , et y =
6 y 0 . Dans le couplage, il
ny a pas deux artes adjacentes un mme sommet.
Le problme du couplage snonce comme suit :
Etant donn un graphe biparti B = (U, V, A), existe-t-il un couplage
contenant n arcs (|U| = |V| = n) ? Cest--dire un couplage tel que tout
sommet soit extrmit dune arte et dune seule.
Un problme qui sen dduit immdiatement est le problme dit du
couplage maximal lorsque on a |U| =
6 |V|. (voir des algorithmes pour
rsoudre ce problme en [HK73], [Lav74]).

Graphes bipartis
sans couplage possible

avec couplage possible

Figure 9.6 Graphes bipartis avec et sans possibilit de couplage

118

Complexit et Algorithmique avance

9.5

La satisfiabilit

Il sagit l dun problme qui va tre dcisif dans notre tude ultrieure
et qui est troitement li celui du couplage. Par ailleurs, il ne sagit pas
spcialement dun cas dcole, ce problme a de nombreuses applications
concrtes dont la moindre est la minimisation du nombre de composants
lectroniques de base dans un processeur, ce qui est dune importance
capitale pour toute lindustrie informatique.
Le problme se pose comme suit :
Soit S = {s1 , s2 , . . . , sn } un ensemble de variables boolennes,
si {vrai, f aux}; i {1, ..., n} .
Une forme conjonctive dune fonction boolenne serait alors :

(si . . . sj ) . . . (sk . . . sl )

avec

i, j, k, l {1, . . . , n}

Le problme de la satisfiabilit consiste trouver une assignation


de valeurs {vrai ; f aux} aux variables boolennes de telle sorte que la
valeur de la fonction f soit vrai

9.5.1

Une technique algorithmique : la rduction

Une technique trs fconde en algorithmique, et plus gnralement


en mathmatique est de transformer un problme quon ne sait pas
rsoudre en un autre, quon sait rsoudre. Cette technique a donn lieu
en algorithmique ce quon nomme la rduction.
On peut en donner un exemple avec le problme du couplage. tant
donn un graphe biparti B = (U, V, A), on peut construire un graphe de
flot R = (X, ) tel que reprsent sur la figure 9.7.

Le lecteur vrifiera facilement qualors, chercher un couplage (ventuellement maximal) sur B revient chercher un flot maximal sur R.
Un autre exemple, particulirement significatif et qui nous servira
par la suite, consiste poser un problme directement sous forme SAT.
En fait, on verra dans la suite de louvrage que la dmarche consiste
prcisment tout ramener SAT. Cela peut se faire parfois directement.

Chapitre 9. Quelques problmes de rfrence

119

Figure 9.7 Transformation dun problme de couplage en problme


de flot

Prenons par exemple le problme dit de la couverture dun chiquier par


des chevaux, voir ([Lav74]). soit la configuration de la figure 9.8 :
X = {s, p} U V; = {(s, u) : u U} {(v, p) : v V} A
et dont toutes les capacits sont gales lunit.
Le lecteur vrifiera facilement qualors, chercher un couplage (ventuellement maximal) sur B revient chercher un flot maximal sur R.
Un autre exemple, particulirement significatif et qui nous servira
par la suite, consiste poser un problme directement sous forme SAT.
En fait, on verra dans la suite de louvrage que la dmarche consiste
prcisment tout ramener SAT. Cela peut se faire parfois directement.
Prenons par exemple le problme dit de la couverture dun chiquier par
des chevaux, voir ([Lav74]). soit la configuration suivante :
Il sagit alors de trouver ce quon nomme aussi une couverture mini-

120

Complexit et Algorithmique avance

male de la fonction boolenne suivante :


fcheval = (a3 a5 b2 d2 e3 e5 d6 b6 )
(f2 g3 ) (h5 f5 e6 e8 )
Remarque 9.5.1 (Interprtations) On peut remarquer que cette criture supporte deux interprtations symtriques lune de lautre. En effet,
considrons ici la premire clause (a3 a5 b2 d2 e3 e5 d6 b6 )
elle peut effectivement tre interprte comme reprsentant lensemble
des cases de lchiquier accessibles par le cheval plac en c4 . Mais elle
peut galement tre interprte comme tant lensemble des cases partir
desquelles un cheval, plac en chacune delle peut atteindre la case c4 .
Cette remarque montre comment poser directement un problme de
recouvrement sous forme SAT. En effet, supposons un ensemble
E = {e1 , . . . , ei , . . . , en }, n N
P(E) lensemble des parties de E, S P(E) famille de sous-ensembles
de E, avec S = {s1 , .., sj , .., sm }.
On associe alors chaque lment de E, ei , une clause Ci de SAT,
soit Ci = (si1 sik sip ) telle que sik Ci ; ei sik . Ainsi, on
associe une clause chaque lment de S. Le problme est alors
SATE = C1 Ci Cn .

(9.4)

Cest--dire quil faut trouver une conjonction de variables boolennes


telle que SAT = 1, ou dans le cas ci-dessus de la couverture de lchiquier
par des chevaux, fcheval = 1. Qui plus est, dans le cas prsent, il faudrait
que cette conjonction contienne un minimum de variables auxquelles on
affecte la valeur 1 de faon obtenir la couverture minimale de cardinal
minimal de lchiquier par des chevaux, ici en utilisant un minimum de
chevaux.

9.6

Le voyageur de commerce

Il sagit l dun problme central en algorithmique qui reprsente


larchtype du problme pour lequel il nexiste pas jusqu prsent,
dalgorithme polynomial pour le rsoudre et il y a tout lieu de penser
quun tel algorithme nexiste pas (mais on ne sait pas le dmontrer).

Chapitre 9. Quelques problmes de rfrence

a
1
2
3
4
5
6
7
8

b
"

"

"

"

"

" "
" "

"

121

"
"

"

Figure 9.8 Transformation dun problme dchecs en termes de


recouvrement ou FNC

Considrons donc le dsormais classique problme du voyageur de


commerce (VRP) . Les paramtres de ce problme consistent en un
ensemble fini de villes
C = c1 , c1 , . . . , cn
et pour chaque paire dentre elles, la distance qui les spare d(ci , cj ).
Une solution de ce problme est une permutation sur C,
< c(i) , c(j) , . . . , c(k) > des villes (un parcours de celles-ci) ou en termes
de thorie des graphes, un cycle hamiltonien si le graphe est non orient,
un circuit hamiltonien sil est orient, sur le graphe G = (C, D), o

122

Complexit et Algorithmique avance

C = c1 , c2 , . . . , cn et D est lensemble des routes reliant les villes (en


termes de graphes, ce sont les artes ou les arcs). Cette solution doit en
outre minimiser la somme :
d(c(i) , c(j) ) + d(c(j) , . . .) + . . . + d(. . . , c(k) ) + d(c(k) , c(n) ) + d(c(n) , c(l) ).
Exemple 9.6.1 La figure 9.9 illustre une instance particulire de ce
problme qui est :
C = c1 , c2 , c3 , c4 ;
d(c1 , c2 ) = 10; d(c1 , c3 ) = 5; d(c1 , c4 ) = 9; d(c2 , c4 ) = 9;
d(c2 , c3 ) = 6; d(c3 , c4 ) = 3.
Pour cette instance, < c1 , c2 , c3 , c4 > est une solution de valeur 28.
Dire quon a obtenu une solution ralisable de valeur 28 ne signifie
pas pour autant quon ait rsolu le problme. On ne sait pas si cette
solution est celle de longueur (ou de cot) minimale. Pour un problme
n villes, le nombre de solutions ralisables est (n1)! et on ne connat pas
dautre algorithme fournissant la solution exacte que celui qui consiste
tout numrer, calculer chaque fois la valeur associe chaque circuit
ou cycle hamiltonien trouv et conserver celui de valeur minimale. Si le
graphe nest pas orient, il suffit dnumrer 12 (n 1)! cycles.
10

C1

C2
9

5
6

C3

C4
3

Figure 9.9 Graphe pour une instance du problme du voyageur de


commerce (V.R.P.)

Chapitre 9. Quelques problmes de rfrence

123

On remarquera toutefois que si cet algorithme savre prohibitif en temps


calcul, ce nest pas le cas en espace mmoire. Le stockage des donnes
ncessite au plus de lordre de a.n2 positions mmoire, a tant une
constante multiplicative. Lexcution de lalgorithme proprement dite
ne ncessitant quand elle que de lordre de n positions mmoire. Il
sagit ici, conformment ce que nous avons vu ci- dessus, dun problme
doptimisation, nous noterons donc cet nonc de problme, VRP_O.
Comme dans le cas du problme de flot maximal, on peut transformer
ce problme en problme dit de dcision de la faon suivante :
Etant donne une instance gnrique, cest dire un ensemble de
villes C = c1 , c2 , . . . , cn , et une valeur numrique Max, existe til une
permutation de lensemble des villes < c(i) , c(j) , . . . , c(k) > (un parcours
de celles-ci) ou en termes de thorie des graphes, un cycle ou un circuit
hamiltonien sur le graphe G = (C, D), o C = c1 , c2 , . . . , cn et D est
lensemble des routes reliant les villes entre elles (en termes de graphes,
ce sont les artes). telle que lon ait :

d(c(i) , c(j) ) + d(c(j) , ..) + .. + d(.., c(k) ) + d(c(k) , c(n) ) + d(c(n) , c(l) ) > Max
La rponse l aussi ne peut tre que oui ou non. Le problme ainsi
pos sera not, comme pour les flots, VRP_D.

Chapitre 10

Algorithme, rsolution
tant donns des algorithmes pour rsoudre un mme problme,
lequel est le meilleur, pourquoi et quest-ce que cela signifie ? Quelle
est la nature profonde du problme, a-t-on un espoir de trouver un
algorithme plus performant (i.e. de complexit moindre) que ceux
existants ?
Cest ce quoi nous allons essayer dapporter des lments de rponse
dans ce qui suit. Nous allons essayer dabord de voir sur quoi nous
pouvons fonder notre jugement.
On est intress, tant donn un algorithme, connatre une valuation du temps ncessaire pour rsoudre des problmes de taille de plus
en plus grande. Au lieu de raisonner en termes de temps, on peut aussi le
faire en termes despace. Plus gnralement on parle alors de ressources
ncessaires.
De mme pour un problme donn, on est intress savoir quelle
est sa nature profonde en termes de complexit, cest dire savoir
si on a espoir un jour de pouvoir disposer dun algorithme rsolvant ce
problme, pour de grandes tailles , en un temps raisonnable .
Plus gnralement, on va se poser la question, pour une classe de
problmes donne, de savoir comment volue la quantit de ressources
ncessaires sa rsolution en fonction des tailles de problmes traits,
et ceci, pour un algorithme donn. A chaque problme, on associera un
entier (ou plusieurs) appel taille du problme qui est la mesure de la
quantit minimale de donnes fournir lalgorithme considr pour
rsoudre le problme.

126

Complexit et Algorithmique avance

Par exemple, la taille dun problme de graphes peut-tre le nombre n


de sommets, ou le nombre m dartes, ou encore le couple (n, m) lorsque
m < n2 . La taille dun problme de multiplication de matrices peut-tre
la plus grande dimension des matrices multiplies, ou encore la taille
des nombres dans le cas de nombres rels, ou les deux. La mesure du
temps dexcution dun algorithme exprim en fonction de la taille
dun problme est appele complexit en temps du dit algorithme.
La limite de la fonction mesure ainsi forme, lorsque la taille du
problme tend vers linfini, sappelle complexit asymptotique en temps.
On peut donner des dfinitions analogues pour la complexit en espace,
et en espace, asymptotique.

10.1

Faire son choix

lorsquil sagit dcrire un programme, et donc laborer un


algorithme, il faut se resituer dans le contexte. Le problme rsoudre
est-il gnrique ? Cest--dire cet algorithme ou programme est-il appel
servir une seule fois ou au contraire rsoudre de nombreux problmes
quivalents, cest--dire traiter une classe de problmes ? Si il sagit
dun programme destin ntre utilis quune seule fois et dans un cas
relativement simple puis abandonn, on a intrt choisir lalgorithme
le plus simple sans trop se proccuper de ses performances ( condition
que la taille des donnes soit rduite). Par contre sil sagit dun module
dune chane de programmes qui est appel fonctionner longtemps et de
trs nombreuses fois, tre maintenu et remani par diffrentes quipes, il
sagit alors dy regarder deux fois. Dans ce dernier cas on se posera les
problmes de simplicit et intelligibilit dudit programme. On se tournera
donc vers des algorithmes les plus simples possibles efficacit gale. On
appliquera ici la rgle des avionneurs qui disent "un bel avion vole bien".
Lorsquun programme est appel tre excut souvent, on sintressera son efficacit qui est lie la complexit de lalgorithme sous-jacent,
mais aussi qui dpend de la complexit du problme rsoudre. Hors
les problmes propres la programmation, lesquels sont lis au systme
informatique sur lequel est implment le programme, lefficacit se rduit
la complexit de lalgorithme et comporte en gnral deux paramtres :
1. le temps ;
2. lespace.

Chapitre 10. Algorithme, rsolution

127

Il faut ici faire attention au fait quon parle bien de complexit de


lalgorithme et non de lefficacit du programme. En effet cette dernire,
lefficacit du programme, est fonction de lhabilet du programmeur,
de la configuration du systme sur lequel le programme est implment
(rseau, ordinateur parallle, machine simple...). Ainsi, le fait davoir
utiliser des mmoires annexes comme des disques ou grer des changes
de messages peut influer sur lefficacit dun programme.
Mais quoiquon fasse, quelle que soit lhabilit du programmeur ou,
comme nous lallons voir quelle que soit la rapidit de la machine, cest la
complexit du problme qui est dterminante. Le meilleur programmeur
codant le meilleur algorithme pour un problme, ne pourra obtenir, dans
le cas gnral, un programme dune efficacit suprieure la complexit
du problme.
Il sagit donc ici de pouvoir comparer les algorithmes entre eux, et
suivant la spcificit des problmes rsoudre et de la taille des donnes,
choisir la solution la plus efficace.

10.2

Pourquoi la complexit ?

Cest la complexit intrinsque dun algorithme ou dun problme


qui est dterminante, et non comme on pourrait le penser en premire
approche, la rapidit de la machine sur laquelle il est excut, ou lespace
mmoire dont elle dispose.
Si un algorithme excute un problme de taille n en un temps c.n2
pour une constante c, nous dirons alors que la complexit en temps de
cet algorithme est O(n2 ).
Plus prcisment, une fonction g(n) est dite en O(f (n)) sil existe
une constante c telle que 1 :
|g(n)|
c, n N
|f (n)|
On pourrait penser que le facteur dterminant dans la taille des
problmes traits sur ordinateur est la vitesse des dits ordinateurs, et
en particulier que lnorme accroissement de vitesse d aux progrs
technologiques est dterminant en la matire.
1. On trouvera en annexe les dfinitions prcises des notations de Bachmann &
Landau.

128

Complexit et Algorithmique avance

En fait il nen est rien, ou relativement peu de choses. La course


technologique la vitesse des machines parat drisoire ct de certains
problmes, dont nous allons traiter. Ce nest pas la technologie qui
permettra de rsoudre les problmes aux tailles dont nous avons besoin,
lavance dcisive viendra des mthodes de rsolution, des algorithmes
(ou peut-tre aussi de la faon de poser les problmes). En dernier ressort,
ce qui est dterminant cest la complexit de lalgorithme utilis.
Une amlioration notable viendrait du dpassement du modle
thorique dordinateur, cest--dire de lautomate dterministe de Markov
ou de la machine de Turing. Une avance dcisive aussi et qui relancerait
notablement la recherche serait la mise en vidence dun algorithme de
rsolution en temps polynomial du problme SAT, nous y reviendrons.
Supposons que nous disposions des six algorithmes A1 , A2 , . . . , A6
avec les complexits en temps suivantes :

Algorithme

Complexit en temps

A1

A2

n log n

A3

n2

A4

n3

A5

2n

A6

n!

La complexit en temps tant mesure ici par un nombre dunits de


temps ncessaires pour excuter lalgorithme sur une donne de taille n.
Supposons, pour fixer les ides, que lunit de temps soit ici la
milliseconde, lalgorithme A1 peut, en une seconde, effectuer un calcul
sur une donne de taille 1000, alors que dans le mme laps de temps,
lalgorithme A5 ne pourra dpasser la taille 9. Le tableau ci-dessous donne
les tailles des problmes dune mme classe qui peuvent tre rsolus en
une seconde, une minute et une heure par chacun des six algorithmes
dj voqus :

Chapitre 10. Algorithme, rsolution

Algorithme

Complexit

129

Taille maximale du problme traite

en temps

1 seconde

1 minute

1 heure

A1

1000

60 1000

3, 6 106

A2

n log n

140

4893

2 105

A3

n2

31

244

1897

A4

n3

10

39

153

A5

2n

15

21

A6

n!

10

On remarque, si on veut comparer par rapport une taille fixe pour


une donne de problme, que pour une donne de taille 20 par exemple,
cela signifie en temps pour les six algorithmes :
Pour

A1

0, 02 secondes

A2

0, 32 secondes

A3

0, 4 secondes

A4

8 secondes

A5

1048, 576 secondes, soit 17 28 576

A6

environ 263 1015 secondes, environ 3 1012 jours,

soit encore environ 8 109 annes !


Une complexit de ce dernier type na rien dune absurdit. Ainsi,
si on veut rsoudre un programme linaire par numration exhaustive
de tous les sommets du polytope des contraintes, on a un algorithme
de complexit en temps O(n!). On saisit de suite les limites dun tel
algorithme, mme avec des machines un million de fois plus rapides.
Rappelons pour mmoire que le plus grand programme linaire trait
ce jour 1 reprsente une donne de plus de 9.1010 variables (i.e. une
matrice de taille 300.000 300.000).
On peut aussi relativiser les progrs de la technique. Posons-nous en
effet la question :
quel est limpact de laccroissement de la puissance des ordinateurs,
1. En 2000.

130

Complexit et Algorithmique avance

sur les tailles dun problme donn pour un algorithme donn excut en
un temps donn ?
Le tableau ci-dessous donne un aperu de la rponse. Ainsi pour des
instances T1 , T2 , T3 , T4 traites toutes en un mme temps de base, donn
et des algorithmes de complexits donnes, on aurait les rsultats suivants
permettant dapprcier, en fonction de la puissance des ordinateurs,
mesure en vitesse de calcul, les augmentations de tailles auquelles on
peut prtendre.
Taille maximale du problme trait
Complexit
en temps

100 fois plus

1000 fois plus

de base

rapide

rapide

O(n)

T1

100 T1

1000 T1

O(n2 )

T2

10 T2

31 T2

O(2n )

T3

T3 + 6

T3 + 9

O(n!)

T4

T4 + 1

T4 + 1

Cest aussi en cela que linformatique est une science et non un conglomrat de techniques comme pourrait le laisser penser le terme amricain
computer science lequel, traduit en franais signifierait science du calculateur ce qui, rptons le, en franais, na pas de sens, la science dun
instrument ntant pas un concept pertinent.

10.3

Interprter la complexit

Attention toutefois ce qui prcde. Dire quun algorithme est en


O(n), et un autre en O(n2 ) pour un mme problme, ou en O(2n ), ne
signifie pas que dans tous les cas, il faille utiliser lalgorithme en O(n) de
prfrence celui en O(n2 ), ni ce dernier de prfrence celui en O(2n ).
En fait, tout dpend du coefficient de proportionnalit, et de la taille du
problme traiter, comme nous lavons fait remarquer au dbut. Ainsi,
si on a un algorithme en O(1000.n), un autre en O(10.n2 ) et un autre
en O(1.2n ), alors ce dernier est meilleur pour les tailles de problmes
comprises entre 2 et 9, lalgorithme en O(10.n2 ) est meilleur pour les

Chapitre 10. Algorithme, rsolution

131

problmes dont la taille est comprise entre 10 et 100 (bornes incluses),


et lalgorithme en O(1000.n) est meilleur en temps pour tout problme
de taille suprieure cent.

10.4

Des mots

Le temps est venu dessayer de prciser le vocabulaire employ.


Malheureusement, on ne peut dfinir les mots quavec des mots, et
on est donc confront la base minimale admissible pour communiquer.
Nous nentrerons donc pas dans le jeu formel qui consiste tout dfinir
en dtail, nous donnerons les acceptions et dfinitions des mots cls
employs. Remarquons toutefois que les mots peuvent donner du grain
moudre, Mot est en effet le dieu de la moisson au XI me sicle avant
notre re chez les phniciens.

10.4.1

Problme, instance, solution

Nous appellerons problme une question possdant diffrents


paramtres, ou variables libres, dont les valeurs ne sont pas spcifies.
Un problme est dcrit par la donne de :
une description gnrale de tous ses paramtres ;
les contraintes auxquelles doit satisfaire la rponse la question,
cest--dire la solution du problme.
La donne dun ensemble de valeurs des paramtres du problme sera
appele une instance particulire du problme, et la description formelle
des paramtres une instance gnrique.

10.4.2

Algorithme

En premire approche, nous dirons quun algorithme est une procdure pas pas, squentielle dans le temps, permettant de rsoudre
un problme. Pour en avoir une ide plus concrte, on peut imaginer
un algorithme comme un programme dordinateur crit en un langage
prcis sur la smantique duquel tout le monde serait daccord, en fait
une Machine de Turing.
Un algorithme est dit rsolvant un problme si, cet algorithme
tant appliqu une instance particulire I de , il fournit la (ou une)
solution de , et si cela reste vrai pour toute instance particulire I de

132

Complexit et Algorithmique avance

. En fait, on nuancera le jugement suivant que la solution est fournie


en un temps fini ou non.

10.4.3

Taille dune instance

On parle souvent de la taille des donnes dun problme, ou de la


taille dune instance, dune faon informelle. Ainsi, pour le problme du
voyageur de commerce (dsormais V.R.P.) 1 , (voir 9.6 et la figure 9.9),
on parlera dune donne de taille 4 (i.e. le nombre de villes) alors quun
V.R.P. ncessite la donne de n villes, puis de n(n1)
nombres donnant les
2
distances entre les villes. De plus, la taille de ces nombres elle mme peut
entrer dans la mesure de la taille des donnes, et que dire des nombres
transcendants lorsque le problme en traite ? En fait, il existe diffrentes
faons de dcrire les donnes dun mme problme. Ce qui est important,
cest que ces diffrentes faons de faire soient polynomialement lies entre
elles, cest dire que le passage dune faon de faire f1 induisant une
taille de donnes t1 une autre faon de faire f2 induisant une taille t2
nentrane quune variation de taille polynomiale, cest dire que :
t1 = a1 (t2 )q + a2 (t2 )q1 + . . . + aq+1 ;
ai R et i = {1, 2, . . . , q + 1}, q N .
On peut crire toutes ces donnes dune manire unique, sur un
modle unique, la Machine de Turing Universelle comme tudi au
chapitre 4 page 39 (voir aussi [Tra63] et [Tur36]) et utilisant un alphabet
permettant de coder instances, solutions, algorithmes et utilisant les deux
seuls symboles 0 et 1.

10.5

Fonction de complexit en temps

La fonction de complexit en temps pour un algorithme exprime


le nombre dunits de temps ncessaires pour chaque taille dinstance
donne, pour produire la solution du problme dans le pire des cas (nous
reviendrons sur ce dernier aspect.)
1. V.R.P. signifie : Voyageur Reprsentant Placier, ce qui est la dnomination
officielle du voyageur de commerce.

Chapitre 10. Algorithme, rsolution

133

Bien sr, il ne sagit l que de gnralits tant que lon na pas


dfini plus prcisment ce quest un algorithme, comment sont codes les
instances dun problme, et les rsultats de lapplication de lalgorithme
aux dites instances.
Il existe plusieurs modles, RAM (Randomized Access Memory 1 ),
Machine de Turing et automates (voir [Mar54] & [Tur36]). Historiquement, cest la Machine de Turing qui est le modle thorique ayant
permis de refonder le concept dalgorithme et qui fournit le paradigme
de linformatique. Ce concept a permis Burk, Goldstine, Neumann aux
USA (voir [BGN46]), Lebedev [Leb51] et Trathenbrot [Tra63] en URSS
de concevoir et construire les premiers ordinateurs dont sont issus tous
nos ordinateurs squentiels modernes. Il faut noter tout de mme quen
France, une note envoye par Louis Couffignal lAcadmie des Sciences,
en 1930, est consacre une nouvelle machine calculer. En 1932, il
donne au Collge de France une confrence sur les "machines calculer,
leur principe et leur avenir". En 1936, parat la note dcisive sur "lemploi de la numration binaire dans la machine calculer". Linnovation
nest pas des moindres puisque cest l la prfiguration des ordinateurs.
Lensemble de ces rsultats a t runi dans sa thse de doctorat dtat
en 1938 [Cou38], indpendamment des travaux de Markov et Turing.

10.6

Problmes de dcision, langages, codage

10.6.1

Problme de dcision

La thorie de la complexit des algorithmes et des problmes a t


conue en premier lieu pour les problmes de dcision. Il sagit dune
forme standard qui permet de considrer une forme unique de problme.
On appelle problme de dcision un problme dont la solution est oui
ou (exclusif) non.
Formellement, un problme de dcision consiste simplement en un
ensemble dinstances D et en un ensemble Y D dinstances-oui
(cest dire dinstances pour lesquelles la rponse au problme de dcision
1. Attention, une traduction littrale pourrait faire penser quil sagit de mmoires
accs alatoire. Ce qui ne veut rien dire, en fait cela signifie seulement qu un
instant donn, un observateur extrieur ne peut dire si laccs la mmoire concerne
une lecture ou une criture, cest--dire que ce type de mmoire est accs libre,
direct, contrairement aux mmoires de type ROM o une bande par exemple.

134

Complexit et Algorithmique avance

-la solution- est oui). Evidemment, tout problme ne possde pas a priori
une structure de problme de dcision, mais on peut toujours sy ramener,
et nous allons voir comment.
Le format standard utilis pour spcifier les problmes est constitu
de deux parties :
la premire partie spcifie une instance gnrique du problme en
termes densembles, de graphes, de fonctions ... ;
la deuxime partie pose une question dont la rponse ne peut tre
que oui ou (exclusif) non, en les termes de linstance gnrique,
et sur cette instance.
La faon dont sont spcifis Y et D doit tre claire. Une instance
appartient D si et seulement si elle peut tre obtenue partir de linstance gnrique par substitution de types aux composantes gnriques,
et linstance appartient Y si et seulement si la rponse la question
pose pour linstance particulire considre est oui .
Exemple 10.6.1 Le problme de dcision li au V.R.P. peut tre dcrit
comme suit :
instance gnrique : C = c1 , c2 , . . . , cn ; n N ensemble des villes,
une distance d(ci i, cj ) N pour toute paire de villes, et une borne
B N .
question : Existe-t-il un cycle hamiltonien des villes de C, ayant une
longueur totale infrieure ou gale B ; cest dire une permutation
< c(1) , c(1) , . . . , c(1) > des villes telle que :
d(c(i) , c(j) ) + d(c(i) , ) + . . . + d( , c(k) ) + d(c(k) , c(n) ) + d(c(n) , c(l) ) B?

10.6.2

Langage

La raison principale de la restriction de la thorie aux problmes de


dcision tient ce quils ont une forme naturelle qui est pratique pour
une tude mathmatique prcise. Cette forme est appele un langage,
terme que nous dfinissons comme suit :
Dfinition 10.6.1 Pour un ensemble fini de symboles, , nous notons
lensemble de toutes les chanes finies de symboles de . Par exemple,
pour = {0, 1}, alors est constitu de la chane vide  (on utilise
aussi ), des chanes 0, 1, 00, 01, 10, 11, 000, 001, 010, 1000, . . ., et de

Chapitre 10. Algorithme, rsolution

135

toutes les autres chanes finies de 0 et de 1. Si L est un sous ensemble


de , on dira que L est un Langage sur lalphabet .
Ainsi, 01, 001, 111, 1101010 est un langage sur {0, 1}. Il en est de
mme pour la reprsentation binaire des entiers, et pour lui mme.

10.6.3

Codage

La liaison entre problme de dcision et codage est due au schma de


codage quon utilise pour coder une instance dun problme chaque fois
quon veut faire un calcul sur cette instance.
Un schma de codage (ou schme dencodage) e pour un problme
fournit une faon systmatique de dcrire toute instance particulire (i.e.
non gnrique) de par une chane approprie de symboles pris dans un
alphabet fix .
De cette faon, le problme et le codage e pour partitionnent

en trois classes de chanes de caractres ;


celles qui ne reprsentent pas des instances de ;
celles qui codent des instances de pour lesquelles la rponse est
non ;
celles qui codent des instances de pour lesquelles la rponse est
oui.
Ces trois classes de squences de caractres constituent le langage
associ et e, qui scrit :
L(, e) = {x : alphabet utilis par e et x
codage par e dune instance I Y }.
La consistance de cette thorie formelle, applique aux problmes
de dcision tient ce que, si un rsultat est consistant pour le langage
L(, e), alors il lest aussi pour le problme cod par e.
Dfinition 10.6.2 On appelle codage raisonnable tout codage qui
induit une taille de donne qui est fonction polynomiale de la taille de
linstance code.
Cela signifie que pour un codage raisonnable e de , il existe deux
polynmes P et P0 tels que si I D et x une chane de symboles codant
linstance I de sur e, alors :
longueur(I) P(|x|) ;

136

Complexit et Algorithmique avance

|x| reprsentant la longueur, exprime en nombre de symboles, de x, et


|x| P(longueur(I))
Remarque 10.6.1 En fait, les proprits dun algorithme ou dun
problme sont indpendantes du codage raisonnable employ.
On en arrive l un de nos buts, intermdiaire, propre toute dmarche
thorique, labstraction que nous justifions ici par cette remarque. En
effet, cette remarque nous autorise dsormais parler des algorithmes et
des problmes indpendamment de tout codage. La remarque signifiant
que tout problme de dcision possde une fonction de codage.
D Z+
qui est polynomialement lie la longueur des donnes obtenue pour
un schma de codage raisonnable.
Cette abstraction va nous simplifier notablement la tche car nous
naurons pas, chaque fois que nous voquerons un problme, revenir
sur les formes prises par sa formulation et son codage ni aux proprits
de ceux-ci.

Quatrime partie

Les concepts fondamentaux


de la complexit

Chapitre 11

Modles de calcul, classes


de complexit
11.1

La Machine de Turing comme modle de


calcul

a Machine de Turing, comme nous lavons vu prcdemment est


le modle de calcul le plus gnral. Il va nous permettre dintroduire
le concept de classe de complexit.
On a vu (Cf. Chapitre 4 page 39) une prsentation nave des machines de Turing, la plus gnrale tant la Machine de Turing universelle.
En fait, il en existe bien dautres comme les machines de Turing plusieurs rubans dont le concept permet dinfrer celui de calculateur, les
machines tout droite ou tout gauche, les machines de Turing
alternantes, et certains auteurs introduisent le concept de machine de
Turing non-dterministe 1 .
Nous allons revenir maintenant sur ce concept de Machine de Turing,
laissant de ct les oiseaux rares pour nous intresser plus particulirement aux machines de Turing universelles, ainsi qu ces machines
plusieurs rubans ci-dessus voques.

1. Nous nous contentons ici dvoquer le fait que certains auteurs introduisent ce
concept. Pour la suite de notre expos, ce concept nest pas pertinent, nous verrons
quon peut trs bien sen passer. Il est un principe en science qui consiste nintroduire
de nouveau concept que si labsolue ncessit sen fait sentir, ou si cela permet de
simplifier de manire significative lexpos, ce qui nest pas le cas ici.

140

Complexit et Algorithmique avance

Dfinition 11.1.1 Une Machine de Turing (dsormais MT) un ruban


est un quintuplet
M =< Q, , q0 , t, F >
tel que :
Q = {q0 , . . . , qn }, n N est un ensemble fini dtats (ou alphabet
intrieur) ; q0 tant ltat initial ; F Q , F tant lensemble des
tats finaux, cest dire pour un problme de dcision :
F = {qoui ; qnon };
est lalphabet (alphabet extrieur), cest un ensemble de symboles tel que ; Q et sont totalement disjoints, cest--dire :
Q = . De plus, contient toujours le symbole vide, not
s ou suivant les auteurs ( dans le prsent ouvrage). Certains
auteurs ajoutent un symbole particulier comme premier symbole
signifiant comme par exemple ; indiquant que l doit commencer
la lecture des symboles sur le ruban mais si on donne la position
de la tte de lecture-criture en position de dpart, ce symbole nest
plus ncessaire 1 ;
t est la fonction de transition ;t : Q Q {G, D, N}.
t peut tre considr en fait comme le "programme" de la machine.
On utilise aussi le terme de drivation pour une transition simple
ou un pas de calcul.
Le fonctionnement de la MTU est alors simple. La fonction t tant le
programme 2 de la machine, elle spcifie, pour toute paire forme dun
tat q Q, et un symbole de lalphabet extrieur, un et un seul
triplet.
t(q, ) = (p, , m) avec p Q.
(11.1)
1. Dans la littrature, on peut aussi trouver dautres faons de formaliser le concept
de machine de Turing, par exemple en caractrisant le symbole blanc ce qui conduit
distinguer lalphabet de travail dun alphabet plus gnral. On dcrit alors formellement
une machine de Turing comme un septuplet :
M =< Q, , , B, q0 , t, F >
o B est le symbole "blanc", tel que B et B
/ ; lalphabet de travail (on a
alors ( )
2. On utilise en gnral le terme schme pour une machine de Turing particulire
ou nave, et le terme programme lorsquon code ladite machine sur la machine de
Turing universelle, partout note ici MTU.

Chapitre 11. Modles de calcul, classes de complexit

141

p est le nouvel tat courant atteint par la machine ;


est le symbole qui est crit dans la case considre par
la machine en remplacement de , et on a : , . On peut
videmment avoir = dans ce cas, cela signifie que la machine
efface le contenu de la case considre.
m prcise le dplacement, ou non, de la tte de lecture/criturede
la machine ; m {G, D, N}.
La donne de la MT est une chane uv . La tte de lecture
est place sur la premire lettre de v, la machine tant dans ltat qi .
La chane uv est place dans des cases contiges du ruban, raison
dun symbole par case, dans lordre induit par uv. Initialement, les cases
contiennent le symbole blanc.
Ltat dans lequel se trouve la machine au dpart est toujours par
convention ici q0 . La position de dpart, cest--dire le premier symbole
plac sous la tte de lecture de la machine doit tre spcifie au dpart.
Ce nest pas ncessairement le premier symbole de u. Cest pourquoi
certains auteurs ajoutent un symbole particulier  qui est alors par
convention le premier symbole lu par la machine. Nous nen ferons rien
ici, ce nest pas ncessaire.
On peut formaliser un peu plus :
Dfinition 11.1.2 (Configuration) On appelle configuration dune
machine de Turing universelle :
Conf = uqi v; u, v
o qi est ltat courant de la machine. Le mot uv est crit sur le ruban et
toutes les autres cases du ruban sont vides (ou occupes par le caractre
"blanc" ; ).
Dfinition 11.1.3 (Transition lmentaire) On appelle Transition
lmentaire 1 le passage dune configuration une autre :
(Confj = uqv) (Confj+1 = u0 q 0 v 0 )
avec ventuellement q = q 0 . On suppose que uv = w w0 avec u = w
o w est une suite de lettres (i.e. un mot), une lettre et
v = w0 o est une lettre et w0 est un mot.
Conformment 11.1, on a :
1. Ou drivation chez certains auteurs.

142

Complexit et Algorithmique avance

1. {t(q, ) t(q 0 , 0 , G)} = {u0 = w et v 0 = 0 w0 } ;


2. {t(q, ) t(q 0 , 0 , N)} = {u0 = u et v 0 = 0 w0 } ;
3. {t(q, ) t(q 0 , 0 , D)} = {u0 = u 0 et v 0 = w0 }.
Dans une machine de Turing universelle, on a au plus simple, = {0, 1},
et donc , {0, 1} et u, u0 , v, v 0 , w, w0 {0, 1}k , k N .
Dfinition 11.1.4 (Transition)
{Conf0 Confn } {i : 0 i n; Confn = uqf v; qf F
et i 1..n, Confi Confi+1 } (11.2)
Remarque 11.1.1 Cette dfinition de la transition suppose bien sr
que n N , cest--dire que la machine M considre sarrte.

11.2

Langages, rcursifs, rcursivement


numrables, fonctions

Une machine de Turing M peut tre vue comme calculant une fonction
} { } ou comme reconnaissant un langage. Le mot
u 1 est dit reconnu par la machine M si, dmarrant sur une
configuration initiale u, q0 (la position ici de q0 ne prjuge pas de la
position de dpart de la tte de lecture) la machine sarrte au bout dun
temps fini dans une configuration de type qoui , v. Cest ce qui permet de
dfinir un langage reconnu par M :
{

LM = {u { } |u, q0 u0 , qoui , v};


Do une dfinition formelle des langages rcursifs :
Dfinition 11.2.1 (Langages rcursifs) tant donne une machine
de Turing M =< Q, , q0 , t, F > , et le langage L,

{M reconnat L}

{u L} {u, q0 u0 , qoui , v}

{u
/ L} {u, q0 u0 , qnon , v}

u LM termine

1. Rappel : est le symbole associ au vide.

Chapitre 11. Modles de calcul, classes de complexit

143

Et on note L = LM qui se lit : Le langage L est reconnu 1 par la


machine M. Le langage L est dit alors rcursif
Si la machine termine dans ltat qoui , pour la donne u, on dit quelle
accepte u. Dans le cas contraire, si la machine termine dans ltat qnon
pour la donne u, la donne u est dite rejete.
Si M ne fait quaccepter le langage L, cest--dire que pour tout mot tel
que {u { } } {u L} on a : M(u) = oui, cest--dire que la
machine M pour la donne u sarrte en un temps fini dans ltat qoui
et si u
/ L, M ne sarrte pas (M(u) =%) 2 . Alors le langage L est dit
rcursivement numrable.
Remarque 11.2.1 Il sagit l dune commodit de raisonnement car
on ne peut pas savoir que la machine ne sarrtera pas. Cest juste un
moyen pratique de classifier les problmes au plan thorique.
Thorme 11.2.1 Si un langage L est rcursif, alors il est rcursivement
numrable.
Preuve 11.2.1 Considrons la machine M qui reconnat le langage L.
On peut alors construire comme suit, la machine M0 qui reconnat L.
La machine M0 agit exactement comme M, sauf quau lieu de passer en
ltat qnon , elle sengage dans une srie ininterrompue de dcalages.
Avec ces dfinitions, la MT de lexemple 11.2.1 ci-aprs reconnat le
langage :
{x {0, 1} : Les deux symboles les plus droite sont des zros}
Ce qui, en dautres termes, signifie que cette MT reconnat le caractre
de divisibilit par 4 dun nombre cod en binaire.
Cette dfinition de la reconnaissance dun langage ne signifie nullement
que M sarrte pour toutes les squences dentre de , mais seulement
pour celles qui sont dans LM . Si x appartient LM alors le calcul
de M sur x peut sarrter dans ltat qnon comme il peut ne pas sarrter.
Toutefois, hors la thorie de la dcidabilit, pour un programme donn
de MT qui correspond notre dfinition dalgorithme, il doit sarrter en
1. Certains auteurs disent dcid.
2. Nous empruntons cette notation [Pap95].

144

Complexit et Algorithmique avance

un temps fini pour toutes les squences finies possibles sur lalphabet
donn. En ce sens, le programme de MT ci-dessus est un algorithme car
il sarrte pour toute squence finie sur {0, 1} .
La correspondance entre reconnaissance de langage et rsolution de
problme de dcision est alors la suivante :
Dfinition 11.2.2 (Rsolution des problmes de dcision) On
dira quun programme M de MTU rsoud le problme de dcision
avec le codage e si M sarrte pour toute squence finie de symboles de
lalphabet extrieur, et LM = L(, e).
11.2.0.1

Fonction rcursive
f

Si f est une fonction { }


et M une machine dalphabet
extrieur , on dira que M calcule f si et seulement si pour tout mot
u { } ; M(u) = f (u). Si une telle machine M existe, alors f
est dite fonction rcursivement calculable ou simplement fonction
rcursive.
Exemple 11.2.1 Soit le programme (schme) de MT suivant :
= {0, 1, }; Q = {q0 , q1 , q2 , q3 , qoui , qnon } et la fonction de
transition :
Schme :

q0

q1

q2

q3

0, q0 , D

0, q1 , D

0, q3 , G

qoui !

1, q1 , D

1, q1 , D

qnon !

qnon !

qnon !

, q2 , G

Avec, pour position initiale :

q0

Chapitre 11. Modles de calcul, classes de complexit

145

Dans cet exemple, le calcul sarrte aprs huit itrations ;


le symbole ! signifiant larrt de la machine.
Ici, la donne tant 11100, le calcul sarrte en ltat qoui , donc la
rponse est oui.
Le schme de la MT, ou programme, M, est donn par la table
ci-dessus. Cest la fonction de transition qui 11100 fait
correspondre qoui .
(11100) = qoui
Dans cet exemple la position initiale de la machine est le premier
1 gauche, mais ce nest pas une obligation gnrale. On voit bien ici
quil serait extrmement simple de faire dmarrer le calcul sur le dernier
symbole (0 ou 1) droite, la modification du schme serait facile pour
ce faire et conduit un schme beaucoup plus simple.

q0

q1

0, q1 , G

qoui !

qnon !

qnon !

qnon !

Avec, pour position de dpart :

q0
Un autre exemple pourrait tre la reconnaissance des palindromes :
Un palindrome est un texte quon peut lire de gauche droite et de
droite gauche.
Par exemple :
ESOPE RESTE ICI ET SE REPOSE ce qui donne de droite gauche
ESOPERESTEICIETSEREPOSE.
Si on ne tient pas compte des espaces, cette proposition peut tre
lue dans les deux sens ; de gauche droite ou de droite gauche et elle

146

Complexit et Algorithmique avance

conserve le mme sens. Ici, nous ne nous intresserons quaux palindromes


binaires comme par exemple 101 ou 1111 etc.
Exemple 11.2.2 Soit le programme (schme) de MT suivant :
= {0, 1, , }; Q = {q0 , q1 , q2 , q3 , q4 , q5 } et la fonction de
transition :
Schme :

q0

q1

q2

q3

q4

q5

, D, q4

0, D, q1

NON, !

0, G, q3

0, D, q4

, G, q3

, D, q1

1, D, q1

, G, q3

1, G, q3

1, D, q4

NON!

OUI!

, G, q2

, D, q0

, G, q5

, D, q0

, G, q3

Avec, pour position initiale :

q0
Cette machine de Turing rpond donc OUI si la chane binaire qui lui est
fournie est bien un palindrome, et NON si tel nest pas le cas. Ainsi, pour
la chane de lexemple, soit 11011 la rponse sera OUI, mais pour une
chane telle que 1110 par exemple la rponse sera NON. On remarquera
que la chane vide est un palindrome
Ici on a utilis les mots OUI et NON, mais ce ntait pas obligatoire,
cest pour la clart de lexpos. Il suffirait de rajouter deux tats qoui et
qnon et de remplacer {, q0 } {OUI!} par {, q0 } { , N, qoui } ;
{0, q2 } { NON!} par {0, q2 } { 0, N, qnon } et {1, q5 } {NON!}
par {1, q5 } {1, N, qnon }.
Ainsi on reste cohrent avec la dfinition de la machine de Turing
sans introduire de mot en plus dans lalphabet. De plus on revient la
forme standard de problme de dcision. Le schme devient alors :

Chapitre 11. Modles de calcul, classes de complexit

q0

, D, q4

, D, q1

q1

0, D, q1

1, D, q1

q2

0, N, qnon

, G, q3

q3

0, G, q3

1, G, q3

, D, q0

q4

0, D, q4

1, D, q4

, G, q5

q5

, G, q3

1, N, qnon

qoui
qnon

11.3

147

, N, qoui , D, q0
, G, q2

, G, q3

!
!

Autres modles de calcul

On ne stendra pas plus avant sur ces modles au del de ce chapitre


(sauf pour les circuits boolens et le modle quantique). Nous voulons
ici signaler lexistence de modles de calcul permettant daborder sous
un autre angle les problmes de complexit. En effet, la particularit des
modles ici prsents est quils permettent tous de traiter de la thorie
de la complexit.

11.3.1

Automates de Markov

On peut aussi prsenter diffremment la thorie des machines de


Turing par un concept thorique quivalent, les automates de Markov.
11.3.1.1

Automate fini

Dfinition 11.3.1 Un automate fini est un n uple A = (Q, , , q0 , F)


o :

148

Complexit et Algorithmique avance

Q est un ensemble fini dtats appel espace dtats ;


est un alphabet fini ; = {a {}} ;
: Q 2Q est la fonction de transition ;
q0 est ltat initial par convention ;
F Q est lensemble des tats finaux (dits aussi accepteurs).

Un automate fini est dit dterministe si les transitions forment une


injection, cest--dire si un tat et un symbole de lalphabet correspond une et une seule transition, |(q, a) 1|, (q, a) Q . Sinon, si
|(q, a) 1| lautomate est dit non dterministe 1
Une squence de transitions telle que = t1 , t2 , . . . , tl , l 1 avec
1 i l o ti = (si , ai , si+1 ) est appel chemin de longueur l.
Les automates tant souvent visualiss sous forme de graphes orients,
les si jouent le rle de sommets et les ai darcs.
11.3.1.2

Langage accept, rgulier

La succession des ai , a1 a2 . . . al est appele parfois trace du chemin,


ou plus souvent mot associ. On note alors w = a1 a2 . . . al et le langage :
w

L(q, A) = {w | qf F : q qf }
est dit langage accept par A, et L(q0 , A) est not L(A).
Dfinition 11.3.2 (Langage rgulier) Un langage L est dit
rgulier sil est accept par un automate fini, dterministe ou non.

11.3.2

Machines RAM

Ce modle est plus proche des machines relles, du moins leur origine.
tant donn un alphabet = {a1 , . . . , an }, n N , une machine RAM 2
est forme dun nombre considr comme infini de registres identifis
et dont chacun contient un mot de , y compris le mot vide. La RAM
comprend de plus un programme compos de 7 instructions, savoir :
1. Cette dfinition na pas grand chose voir avec le concept de Machine de Turing
non-dterministe introduit par certains auteurs pour tudier la classe N PC.
2. Pour Random Access Memory, ce qui ne signifie nullement machine accs
mmoire alatoire, mais seulement que la mmoire peut tre lue et crite tout
moment.

Chapitre 11. Modles de calcul, classes de complexit

149

1. ADDj Y(1 j k) provoque la concatnation de aj la fin du


mot contenu par le registre Y ;
2. DEL Y suppression du premier caractre du mot contenu dans Y ;
3. CLEAR Y effacer le contenu du registre Y, ce qui revient aussi
y "crire" le mot vide ;
4. Y Z substituer le contenu du registre Z celui de Y ;
5. JMP X0 (jump) passer la ligne X0 ;
6. Y JMPj X0 (jump conditionnel) aller a ligne X0 si le mot contenu
dans Y commence par aj ;
7. continue FIN.

11.3.3

Circuits boolens ou digitaux

Nous avons abord dj dans le court chapitre consacr aux circuits


digitaux, le problme qui consiste raliser physiquement une fonction
boolenne par un dispositif lectronique (voir le chapitre Circuits boolens
page 93).
Ci aprs nous allons en donner une approche un peu plus formelle,
toujours dans lesprit toutefois de [Lup63].
Cest un modle de calcul qui part de lquivalence entre une fonction
variables boolennes et une formule elle-mme boolenne.
f
Si on a une fonction boolenne n variables f : {0, 1}n
{0, 1},
alors on peut lui associer une formule boolenne canonique f qui pour
une assignation u de valeurs boolennes aux variables est telle que :
{f (u) = 1} {u satisfait f }
La rciproque et vraie, toute formule boolenne n variables dfinit
f
une fonction f : {0, 1}n
{0, 1} telle que est satisfiable si et seulement
si f (u) = 1. En sabstrayant de laspect lectronique du circuit, on peut
dfinir un circuit comme suit :
Dfinition 11.3.3 (Circuit boolen) Un circuit boolen est un graphe
sans cycle C = (S, ) tel que les sommets S = {s1 ; . . . , sn } reprsentent
les portes du circuit. Tout arc (i, j) est tel que i < j reprsente
une connexion unidirectionnelle. Les portes {s1 , . . . , sn1 } sont de demidegrs extrieurs + = 1 ou + = 2, seule la porte sn tant de degr 0,

150

Complexit et Algorithmique avance

elle est dite "porte de sortie". Toute porte telle que = 0 est les dite
porte dentre.
Les portes sont types dans {0, 1, , , }. Si si est une porte, son
type sera not t(i), et on a :

Si

t(i) {0, 1} = si = 0, cest une porte dentre;

t(i) = = si = 1, cest la ngation;

t(i) {, } = si = 2.

Thorme 11.3.1 (Taille minimale dun circuit)


n 2, f : {0, 1}n {0, 1}|@C : |C| <

2n
, C calcule f
2.n

Preuve 11.3.1 1 Soit m la taille dun circuit (i.e. le nombre de sommets


du graphe 2 ) : pour chaque porte si , on a m2 .(n + 5) choix possibles. Par
consquent avec m portes, on a (m2 .(n + 5))m choix. On sait par ailleurs
n
quil y a 22 fonctions boolennes {0, 1}n {0, 1}.
2n
En considrant pour m la taille, m =
, alors :
2.n
2

2.n
2.n log n+5
log((m .(n + 5)) ) = 2 .
< 2n .
2.n
2

Il y a donc des fonctions qui ne sont pas calcules par ces circuits.

Il existe encore dautres modles de calcul comme le modle de Post,


ou encore les systmes acceptables de programmation, ltude sort du
primtre de cet ouvrage qui est essentiellement bas sur les machines
de Turing et calculateurs universels.
1. Daprs le polycopi de Bruno Grenet de lENS-Lyon auquel nous avons emprunt
quelques notions.
2. On trouvera dans le chapitre consacr aux circuits, dautres mesures de complexit dun circuit.

Chapitre 11. Modles de calcul, classes de complexit

11.3.4

151

Machine de Turing plusieurs rubans

Dfinition 11.3.4 (Machine plusieurs rubans) Une machine de


Turing k rubans est un quintuplet M =< Q, , q0 , t, F > o :
Q est lensemble des tats de la machine ou alphabet intrieur ;
lalphabet extrieur, fini, et tel que ;
q0 Q ltat initial ;
t
t la fonction de transition t : Q k
Q k {G, D, N}k
la fonction de transition ;
F Q lensemble des tats darrt.
Comme le montre la dfinition ci-dessus, la seule chose qui change, cest
la fonction de transition qui travaille maintenant sur un k-uplet au
lieu dun caractre seul. Dans ce modle, les rubans sont indpendants,
le dplacament de la tte de lecture diffre dun ruban lautre. Les
configurations sont toujours reprsentes par des mots. Comme pour la
MTU squentielle, il est indiffrent de considrer que ce sont les rubans
ou les ttes de lecture qui se dplacent, par contre, il convient de le
prciser une fois pour toutes.
Exemple 11.3.1 Sur lexemple de test des palindrmes ci-dessus, 11.2.2,
on peut voir facilement lintrt dune machine plusieurs rubans.
Supposons quon dispose dune machine 2 bandes.
La premire chose faire, cest de dupliquer la chane de bits tester
de faon ce quelle soit inscrite sur les deux bandes en sens contraire.
Ensuite on positionne les ttes de lecture de chacune des bandes une
extrmit de la chane de bits sur chaque bande. On peut visualiser une
telle situation comme suit :
Premire bande

tat q0

152

Complexit et Algorithmique avance

Seconde bande

Alors en faisant dplacer les ttes de lecture en parallle, de la gauche


vers la droite, tant entendu que sur les deux bandes les ttes de lecture
sont positionnes en tat q0 sur le bit le plus gauche, la vrification du
palindrome est facilite. Des configurations possibles seraient alors les
suivantes :
0, 0 , q0 0, 0 , D, D , q0
1, 1 , q0

1, 1 , D , D , q0

, , q0

, , OUI !

Tout autre configuration entranant une rponse NON !


Lastrisque en exposant ne signifie rien dautre que le fait que la
lecture ou lcriture est celle du deuxime ruban.
Une autre configuration de dpart aurait pu tre :
Premire bande

tat q0
Seconde bande

Chapitre 11. Modles de calcul, classes de complexit

153

Les ttes de lecture se dplaant alors en sens contraire, celle de la


premire bande de gauche droite et bien sr celle de la seconde bande
de droite gauche, ce qui suppose dans ce cas que la chane de bits
traiter est duplique sur la deuxime bande dans le mme sens quelle a
t crite sur la premire bande.
Les configurations significatives seraient alors :
0, 0 , q0

0, 0 , D, G , q0

1, 1 , q0

1, 1 , D , G , q0

, , q0

11.4

, , OUI !

Complexit en temps

On peut maintenant aborder le problme de la dfinition de la complexit en temps des algorithmes et des problmes.
Dfinition 11.4.1 On appelle temps pour un programme M dune MT
sur une donne x, le nombre dtapes du calcul jusqu ltat final, cest
dire larrt de la machine.
On peut aussi dire que cest le nombre de fois o la MT a lu ou crit sur
le ruban.
Remarque 11.4.1 Cette dfinition est endogne la machine de
Turing. Comme on peut le voir, le temps ici se dfinit par rapport
la machine elle-mme. Dans limmdiat, pour ltude qui nous intresse
ici, ce nest pas gnant. Nous tant ramen la Machine de Turing
Universelle, nous sommes descendus au niveau "le plus fin" du calcul et
les oprations y sont les plus lmentaires possibles, on considre donc
ici que chacune dentre elles ncessite le mme temps de calcul que nous
prenons alors comme unit de temps puisquindivisible. Si nous tions
amens comparer ces units de temps avec des temps exognes, il nous
faudrait prendre la plus grande partie aliquote de ceux-ci comme unit.
Cest en particulier le cas en algorithmique distribue o on ne possde
pas dun modle universellement reconnu pour estimer la complexit en
temps des algorithmes, en particulier dans le cas des communications

154

Complexit et Algorithmique avance

asynchrones (et mme pour dfinir les algorithmes). Toutefois, pour une
MTU particulire ltude resterait pertinente un coefficient multiplicatif
prs.
Dfinition 11.4.2 (Complexit en temps) Pour un programme M
dune MT qui sarrte en un temps fini pour toute donne x de , sa
fonction de complexit en temps
TM : N N
est donne par :
TM (n) = max{m : x ; |x| = n | le calcul de M sur la donne
x prend un temps .m}
Dfinition 11.4.3 (Classe de complexit en temps) Soit
t : N N . On dfinit la classe de complexit en temps TEMPS(t)
comme tant la classe des langages reconnus (i.e. dcids) par une
machine de Turing travaillant en temps t(n).
Thorme 11.4.1 (Acclration linaire) Soit une constante c > 0,
t(n)
t : N N , et limn
= , alors :
n
TEMPS(ct) = TEMPS(t)
Ce qui signifie que ce qui nous intresse, cest la nature de la variation
du temps en fonction de la taille de la donne dentre (le nombre de
variables) et non le temps pass au calcul en lui mme. une constante
multiplicative prs, des variations de temps sont considres, pour la
thorie de la complexit, comme quivalentes.
Corollaire 11.4.1 (Cas des machines plusieurs rubans) Si le
langage L est reconnu par une machine k + 1 rubans en temps t,
alors il existe une machine k rubans qui reconnat L en temps (1 + c).t,
avec 1 c > 0.
1. Attention toutefois, il faut bien remarquer le "il existe" sinon on risque une
grossire erreur. En effet dans certains cas rels de calcul sur ordinateur parallle par
exemple, lexcution dun programme SEP (Sparation et valuation Progressive)
peut prendre plus de temps avec p + 1 ou mme p + k, k N processeurs quavec p.
On trouvera un exemple et la justification thorique dans [Lav91a].

Chapitre 11. Modles de calcul, classes de complexit

11.5

155

Complexit en espace

On est intress aussi savoir quel est lespace occup sur le ou les
rubans durant le calcul effectu par la MT.
Si on considre des MT plusieurs rubans dentre, plusieurs rubans
de sortie, plusieurs rubans de travail, on nvalue lespace utilis pendant
un calcul que sur le ou les rubans de travail. Lespace comptabilis sur le
i-me ruban durant le calcul C se note li (C) et est gal au nombre de
cellules visites sur ce ruban.
On dfinit comme suit la complexit spatiale :
Dfinition 11.5.1 (Complexit spatiale) Pour un programme M
dune MT qui sarrte en temps fini pour toute donne x de , on
dfinit sa complexit en espace
EM : N N
par :
EM (n) = max{m : x ; |x| = n| le calcul de M sur la donne
x utilise m cellules.}
Et on en dduit la dfinition de la classe de complexit en espace.
Dfinition 11.5.2 (Classe de complexit en espace) Soit
e : N N . On dfinit la classe de complexit en espace ESPACE(m)
comme tant la classe des langages dcids (i.e. reconnus) par une MT
utilisant m cellules de rubans pour son calcul.

11.6

Relation entre complexits temporelle et


spatiale

Les complexits spatiale et temporelle sont lies par le thorme


suivant :
Thorme 11.6.1 (complexits spatiale vs temporelle)
EM (u) TM (u) 2cM EM (u)
Preuve 11.6.1 On commence par dmontrer le lemme suivant :

156

Complexit et Algorithmique avance

Lemme 11.6.1
EM (u) TM (u)
Cest vident, on ne peut pas "visiter" plus de cellules que dunits de
temps utilises pour le calcul sachant quen une unit de temps on ne
peut lire ou crire que dans une seule cellule la fois.
La seconde partie de lingalit TM (u) 2cM EM (u) est due au fait
que la machine M termine sur u et donc ne "voit" u quune fois et
une seule (elle ne peut sarrter quune fois) et que le nombre possible
de configurations de la machine est dtermin par lespace utilis, ici
EM (u). La constante cM caractristique de la machine ne jouant quun
rle multiplicateur.


11.7

La classe P

Un programme de MT est dit programme polynomial en temps sil


existe un polynme p tel que :
n N , TM (n) p(n)
En dautres termes, on sintresse lvolution de la fonction temps
lorsquon fait tendre la taille des instances particulires vers linfini, dans
le pire des cas pour lalgorithme.
On note aussi cette classe : PTemps 1 . Nous sommes maintenant en
mesure de dfinir la classe de langages ou encore de problmes la plus
importante que nous ayons considrer, la classe P.
Dfinition 11.7.1 (Classe de langages P)
P = {L : M; L = LM : p|TM(x) p(x)}.
Ou encore, en rutilisant la dfinition et le formalisme de 11.4.3 de la
page 154 :
[
P=
TEMPS(nk )
k1

Dfinition 11.7.2 (Complexit dun problme) La complexit dun


problme est celle du meilleur algorithme qui le rsout, dans le pire des
cas.
1. PTIME en anglais

Chapitre 11. Modles de calcul, classes de complexit

157

Dfinition 11.7.3 (Appartenance la classe P) Un problme de dcision appartient la classe P pour le codage e si L(, e) P,
cest--dire sil existe un programme de MTU "rsolvant" dans le
codage e.
On parlera dsormais dalgorithme polynomial en temps aux lieu et
place de programme polynomial en temps pour une MTU.
Pour des raisons pratiques videntes, on ne ramnera pas tous les
algorithmes tudis la forme programme de MTU, ce serait long et
fastidieux. Chaque fois que nous parlerons dun algorithme polynomial,
nous ferons en fait le raccourci qui consiste parler de lalgorithme formel
quon tudie, en rapport avec les proprits dun programme de MTU,
dans un codage appropri, reprsentant cet algorithme.
Remarque 11.7.1 Lappartenance la classe P pour un problme suppose lexistence dun algorithme polynomial en temps pour rsoudre ce
problme. Le plus souvent lalgorithme est connu.
Remarque 11.7.2 Parmi ces problmes de la classe P il convient de
signaler un nouveau venu dont on a longtemps pens, linstar de la
programmation linaire quil tait non-polynomial, savoir le test de
primalit dterministe (voir [AKS04]). Il est non seulement polynomial,
mais de plus en O(log n)12 .

11.8

La classe N P

Nous introduisons maintenant notre deuxime classe de problmes


de dcision (ou de langages, comme on veut), la classe N P 1 .
Essayons dabord de nous faire une ide intuitive de cette classe N P.
1. Ces initiales prtent confusion, elles sont souvent interprtes en franais
comme signifiant Non Polynomiale ce qui est pour le moins abusif. En anglais, elles
signifient Non deterministic Polynomial soit en franais Polynomial non dterministe.
Si on voulait crer un acronyme quivalent langlais il faudrait donc nommer cette
classe PN D. Nous garderons toutefois N P car, si pour introduire cette classe les
anglo-saxons utilisent le concept de Machine de Turing Non Dterministe, ce concept
nest pas ici ncessaire.

158

11.8.1

Complexit et Algorithmique avance

Approche informelle de la classe N P

Revenons notre exemple du voyageur de commerce qui snonce


comme suit sous la forme de problme de dcision :
Problme du VRP sous forme dcisionnelle
Etant donns un ensemble de villes, les distances entre celles-ci,
et une borne B(B N ), existe-t-il un circuit de toutes les villes, de
longueur B au moins ?
Dans ltat actuel de nos connaissances, on ne connat pas dalgorithme polynomial permettant de rsoudre ce problme exactement.
Supposons que pour une instance particulire I de ce problme quelquun annonce que pour cette instance du problme de dcision, il existe
un circuit hamiltonien pour lequel, la rponse est oui.
Si on est sceptique, on va demander la personne concerne de
prouver son assertion en fournissant une permutation des villes possdant
les proprits voulues. Il doit alors exister une faon simple de vrifier
que la solution fournie par la personne en question est bien un circuit
hamiltonien 1 dune part, et dautre part, que la valeur de celui-ci est bien
suprieure ou gale B. En fait, pour que cette dmarche soit praticable,
il faut absolument que la vrification de la solution fournie soit simple.
Quest-ce dire ?
Il ne faut pas que cette vrification prenne un temps prohibitif.
On fixe donc la rgle suivante ; la procdure de vrification doit se
faire en un temps polynomial sur une MTU par rapport la taille de la
solution vrifier.
Nous formulerons donc la procdure de vrification comme un algorithme gnral dont la complexit en temps sur une MTU est polynomiale
pour linstance I.
Cest cette notion de vrifiabilit polynomiale qui va
caractriser la classe N P.
Cest de mme par rapport cette proprit que nous allons pouvoir
mettre en vidence des sous-classes dans N P .
Remarque 11.8.1 La vrifiabilit polynomiale nimplique pas la rsolubilit polynomiale. Ce nest pas parce que la procdure de vrification
de la solution prend un temps polynomial quil en est de mme pour
1. Rappel : un circuit hamiltonien dans un graphe est un circuit qui passe une
fois et une seule par tous les sommets du graphe considr.

Chapitre 11. Modles de calcul, classes de complexit

159

lalgorithme de rsolution. Par contre, la rsolubilit polynomiale entrane,


de faon triviale la vrifiabilit polynomiale.
On peut dfinir la classe N P en termes de vrifiabilit.
La classe N P ne concerne que les problmes, pas les algorithmes. On
peut dire quun problme fait partie de la classe N P mais dire quun
algorithme en fait partie na pas de sens.
Pour caractriser lappartenance dun problme la classe N P il faut
considrer en premire approche deux tapes :
1. on possde une chane de caractres de lalphabet du problme
cense coder une solution du problme ;
2. on sait vrifier si une chane de caractres de lalphabet du problme
est oui ou non une solution du problme, ce que certains auteurs
appellent un certificat..
Lorsque pour une instance I du problme, on possde une chane de
caractres S de lalphabet de I (alphabet extrieur de la MT) quon
appelle en gnral alors structure sur I, on teste alors la dite structure S
sur une MT.
Trois cas peuvent alors se produire :
1. on obtient une rponse oui ;
2. on obtient une rponse non ;
3. la MT ne sarrte pas.
Dans ce dernier cas, on ne sait pas distinguer le cas de la rponse non
du cas o la machine ne sarrte pas. Cest ce quon nomme le problme
de la halte.
On considrera quun problme de dcision est candidat la classe
N P si pour toute instance particulire I D on a les deux proprits
suivantes :
Si I Y , alors il existe une structure S qui, lorsquelle est issue
de linstance I, provoque une rponse oui pour la seconde phase de
lalgorithme.
Si I 6 Y , alors il nexiste aucune structure S issue de I provoquant
une rponse oui pour la seconde phase de lalgorithme.
La difficult est dans ce "aucune" car, comme nous lallons voir, ce
nest pas parce quon ne connat pas dalgorithme polynomial quil ne
peut en exister.

160

Complexit et Algorithmique avance

Ainsi en est-il du problme du voyageur de commerce ou VRP. On


ne connat aucun algorithme polynomial susceptible de le rsoudre et, en
ltat actuel des connaissances on est incapable de dire sil en existera
un, un jour. Toutefois, tant donne une squence de toutes les villes on
sait vrifier en temps polynomial si cette permutation est -ou non- une
solution attendue du problme (attention, la condition que le problme
soit un problme de dcision). En clair, pour une instance particulire
I du problme, il doit exister au moins une structure S issue du calcul
sur I telle que lalgorithme de vrification rpondra oui pour I et S si, et
seulement si, S est un circuit hamiltonien de longueur voulue.
Dfinition 11.8.1 (Problme polynomialement vrifiable) Un
problme de dcision est solution polynomialement vrifiable ou
vrifiable polynomialement sil existe un polynme p tel que, pour toute
instance I Y il y a une structure S pour laquelle il existe un algorithme
de vrification de la solution en temps p(longueur(I)) polynomial.
Dfinition 11.8.2 (La classe N P des problmes) La classe N P
(Polynomialement vrifiables) est donc la classe de tous les problmes de
dcision polynomialement vrifiables.
Ainsi, suite ltude pralable concernant le problme du voyageur
de commerce, nous pouvons dire quil fait partie de la classe N P.
La rsolubilit polynomiale implique trivialement la vrifiabilit polynomiale, comme lnonce le thorme du chapitre 2, quon rappelle (voir
2.3.1 page 22) :
Thorme
P NP

11.8.2

Classe Co-N P

Il ny a pas de symtrie pour les problmes de N P. Si un problme a


la structure gnrale : Etant donn I, est-ce que X est vrai sur I ?
On dira que son problme complmentaire se formule de la faon
suivante :
Etant donn I, est-ce que X est faux sur I ?
Si le problme est rsoluble en temps polynomial par un algorithme,
alors son complmentaire aussi. Ceci vient du fait quun algorithme

Chapitre 11. Modles de calcul, classes de complexit

161

sarrte quelle que soit la squence initiale. La rponse est alors oui ou
non. Il suffit dinverser les instances qoui et qnon dans un programme de
MT. Do :
Thorme 11.8.1
{ P} { P}
Et aussi
Thorme 11.8.2
{ P} = { Co N P}
Cette proprit est gnralement fausse dans le cas de la vrifiabilit,
en particulier pour les problmes dans N P pour lesquels on ne connat
pas dalgorithme polynomial pour les rsoudre.
Par exemple, revenons au problme du VRP. Le problme complmentaire snonce comme suit :
Etant donn un ensemble de villes, les distances entre celles-ci, et
une borne B, est il vrai quil ny ait aucune tourne sur toutes les cites
de valeur infrieure B ?
Dans le pire des cas, dans ltat actuel des connaissances, on ne
connat aucun algorithme qui ne doive examiner toutes ou presque toutes
les tournes possibles (le nombre de telles tournes est (n 1)!). En
dautre termes, il nexiste pas dalgorithme, polynomial en temps, pour
rsoudre ce problme. La mme situation se reproduit dans de nombreux
cas dans N P. Au passage, on voit apparatre l une famille de problmes
pires 1 que les pires de N P.
Ainsi, bien que lappartenance P pour un problme implique aussi
lappartenance P pour son complmentaire, on ne peut rien dire de tel
pour les problmes de N P.
Nous venons dtudier ci-dessus des modles de calcul dans le cadre
de la complexit en temps. La thorie de la complexit concerne en fait
toute ressource de calcul mesurable.
Commentaire : En fait, la complexit dun langage ou dun problme
est concerne par trois lments dapprciation ou de mesure, savoir :
1. On reviendra sur les problmes qui sont les "pires" de N P

162

Complexit et Algorithmique avance

la ressource consomme pour la rsolution ou la reconnaissance


suivant quil sagit dun langage ou dun problme. Ce peut tre
le temps, lespace, lnergie, la quantit dinformation..., ce qui
suppose quon sache quantifier et mesurer la ressource en question ;
le type de problme ou langage considr, optimisation, dcision ;
le modle de calcul considr, la machine de Turing, le modle des
circuits boolens, le systme de Post, le lambda-calcul , le modle
quantique...
Cest ce qui conduit considrer les choses in abstracto sans se
proccuper de savoir de quelle ressource il sagit. Le problme reste
toutefois de dfinir quel type de fonction utiliser pour mesurer la-dite
complexit.
f

Ces fonctions doivent toutes tre de type f : N


N . De plus elles
doivent
tre
uniformment
croissantes,

savoir
f (n + 1) f (n) n N . La complexit (cest--dire, la valeur prise par
la fonction) ne doit dpendre que de la taille de la donne dentre.
Des points de vue thorique et pratique, ce qui est intressant pour un
algorithme ou un problme, cest sa complexit asymptotique, cest--dire
la fonction reprsentative de la variation de la complexit lorsquon fait
tendre la taille de la donne vers linfini.

11.9

La classe N P Co N P

Les problmes de N P sont tels que toute squence de lalphabet


extrieur candidate tre solution peut-tre accepte ou rejete en
temps polynomial. Les problmes de CoN P sont tels quon peut vrifier
nadmet pas de solution.
en temps ou espace polynomial que
N P};
co N P = {|
Soit, en termes de langage :
co N P = { L|L langage sur lalphabet et L N P
Il est vident, comme not ci-dessus que P N P Co N P. Par
contre la rciproque est fausse.

Chapitre 11. Modles de calcul, classes de complexit

11.9.1

163

Dualit

Un problme comme celui du flot maximal (voir 9.3 page 113) fait
partie de N P CoN P en effet, il est dans P, les algorithmes bien connus
de Ford-Fulkerson ([FF56, FF62]) dabord, de Dinic-Karzanov ensuite
([Din70, Kar74]) donnent des algorithmes polynomiaux. Le thorme de
Ford-Fulkerson qui snonce comme suit :
Flot maximum = Coupe minimale
exprime en fait un principe dit de dualit. Le problme dit du Flot
maximal et celui de la coupe minimale sont polynomialement rductibles lun lautre et tous deux dans N P, on dit quils sont duaux. Il
en est de mme du problme de la Programmation linaire qui scrit :

PL

x1


 x

Maximiser c1 , c2 , . . . , cn 2

xm

sous les contraintes

xi

a1,1
a2,1

am,1
R

...
...

...

a1,n
a2,n

am,n

x1
x2

xm

b1
b2

bm

soit plus simplement en notation matricielle :

PL

Maximiser C.X sous les contraintes

A.X B

m
XR

Le dual 1 en est alors :

PL

Minimiser B.Y sous les contraintes


e
A.Y
C

Y Rn

signifie transpose de A.
1. La notation matricielle A

164

Complexit et Algorithmique avance

La filiation entre les deux problmes, programmation linaire et flot


maximal, vient du fait que le problme du flot maximal peut facilement
se poser sous forme dun programme linaire (mais ce nest pas efficace en
termes de performances, cest pourquoi on a mis au point des algorithmes
spcifiques).

Exercices
Exercice 5 En partant du schme de la machine dcrit en 11.2.1, le
modifier pour que la machine reconnaisse :
1. si la chane binaire inscrite sur le ruban comprend deux zros dans
ses bits les plus droite ;
2. si la chane de bits contient au moins un bit la valeur "un".
Exercice 6 crire un schme dune machine de Turing reconnaissant
si une chaine de digits binaires forme un palindrome, en prenant pour
position de dpart le dernier bit droite de la chane dinstance. On
pourra sappuyer sur lexemple donn dans le chapitre. Position de
dpart :

1
q0

Exercice 7 crire un schme dune machine de Turing reconnaissant


si une chaine de digits binaires forme un palindrome, sans dtruire la
chaine initiale.
Exercice 8 crire le schme de laddition de deux nombres unaires
spars par une astrisque :

1
q0

Ici, on est en position de dpart pour laddition 2 + 3 code unaire.


Attention, il y a plusieurs solutions cet exercice dont une ne ncessite
que max(x, y) + 1 itrations si x et y sont les nombres additionner.

Chapitre 11. Modles de calcul, classes de complexit

165

Exercice 9 Sachant que la multiplication est une succession dadditions, modifier le schme prcdent pour obtenir celui de la multiplication
dentiers cods unaires.
Attention, cest assez difficile, il ne faut pas hsiter rajouter des
symboles dans chaque alphabet.
Exercice 10 crire un schme dune machine de Turing effectuant
la soustraction de deux nombres unaires, la position de dpart tant le
dernier batonnet droite du nombre de gauche qui est soustraire de
celui de droite. Position de dpart :

1
q0

Il sagit l de soustraire le nombre deux (2) trois(3)


Exercice 11 partir de la solution de lexercice prcdent, crire le
schme de la division euclidienne.
Exercice 12 partir de la solution de lexercice prcdent, crire le
schme du calcul du PGCD 1 de deux nombres comme donns comme
lexercice prcdent.
Exercice 13 Imaginez un algorithme programmable sur un ordinateur
classique permettant de construire un cycle hamiltonien sur un graphe
quelconque.
Exercice 14 Le problme du VRP est pos comme tant celui de
la recherche dun circuit hamiltonien de valeur minimale sur un graphe.
Imaginez un algorithme programmable sur un ordinateur classique permettant de rsoudre ce problme.
Exercice 15 partir de la solution de lexercice prcdent, crire
un programme permettant de savoir sil existe -ou non- un circuit
hamiltonien sur un graphe donn.
Exercice 16 [carr dun mot]
1- On considre lalphabet = {0, 1}. Soit w un mot dentre sur
. Dterminer une machine de Turing un seul ruban qui remplace
1. Plus Grand Commun Diviseur

166

Complexit et Algorithmique avance

alternativement le symbole 0 ou 1 le plus droite par A ou B (0 sera


remplac par A, 1 sera remplac par B) puis le symbole 0 ou 1 le plus
gauche par a ou b (0 par a, 1 par b). Par exemple, si le mot dentre
est 0101110, les excutions successives vont donner A101110, A10111a,
AB0111a, AB011ba, ABA11ba, ABA1bba, ABABbba.
2- En dduire une machine de Turing un seul ruban qui reconnat
le langage L = {ww/w }.
3- Vrifier votre calcul pour w=011
Exercice 17 [Reconnaissance de langage]
1. Soit L un langage rgulier. Montrez quil existe une machine de
Turing reconnaissant L en temps polynomial.
2. Soit A un automate pile dterministe. Montrez quil existe une
machine de Turing reconnaissant le langage de A en temps polynomial.
3. Montrez quun langage dfini par une grammaire LR(k) est reconnu
en temps polynomial par une machine de Turing.
Exercice 18 [Conversion unaire-binaire]
Ecrire une machine de Turing un ruban (bi-infini) ralisant la
conversion dun entier crit en unaire en binaire.
Vous expliquerez au pralable de manire succincte la stratgie de
votre machine, le rle de chaque tat utilis.
Excuter votre machine sur le mot dentre . . . B111111B. . . . Vous
devez obtenir . . . B110B. . . .

Chapitre 12

Compltude N P
12.1

Le monde de N P

ous nous intressons ici aux relations existant entre problmes


polynomiaux et problmes de la classe N P. Nous allons tre amens
introduire une nouvelle classe de problmes que nous nommerons N PC
pour problmes N P Complets.
Dans un premier temps nous allons nous donner une mthode permettant de comparer des problmes entre-eux, eu gard leur complexit.
En effet, la question se pose de savoir si lintroduction du concept de
classe N P a un sens, cest dire de savoir sil existe des problmes qui
sont dans N P et qui ne sont pas dans P.

12.1.1

La transformation polynomiale

Si la classe P est diffrente de N P, alors la distinction entre P et


N P P revt une signification primordiale. Tous les problmes de P
peuvent tre rsolus par des algorithmes en temps polynomial alors que
pour les problmes qui sont dans N P P , on ne connat pas dalgorithme
polynomial le permettant, et nombre de chercheurs conjecturent quil ne
peut y en avoir.
Dans ce qui suit nous supposerons que P =
6 N P et mme plus
prcisment que :
P NP
Nous allons donc nous intresser des problmes de N P P en

168

Complexit et Algorithmique avance

supposant quil y en a. Lide principale que nous allons tre amens


utiliser est celle de transformation polynomiale partir de laquelle on se
munit de loutil correspondant.
En effet, dans la mesure o nous nous intressons au caractre
polynomial -ou non polynomial- une telle transformation conserve le
dit caractre. On sait quun polynme de polynmes est un polynme,
par consquent le caractre polynomial sera conserv. De mme, un
polynme de fonctions non-polynomiale reste non-polynomial. Les caractristiques qui nous intressent sont donc conserves.
Lide, puisquon utilise ici le terme de "classe" polynomiale ou de
classe N P est donc de mettre en vidence une relation dquivalence qui
gnrera la classe qui nous intresse.
Dfinition 12.1.1 Une transformation polynomiale dun langage
f
L1 1 en un langage L2 2 est une fonction f : 1
2 qui
satisfait aux conditions suivantes :
1. il existe un programme de MTU qui peut calculer f ;
2. x 1 , x L1 ssi f (x) L2 ;
3. le programme de la transformation est polynomial en temps.
La transformation polynomiale entre deux langages, L1 et L2 , quand
elle existe, se note L1 L2
Lemme 12.1.1 Si L1 L2 , alors on a
{L2 P = L1 P};
et rciproquement :
{L1 6 P = L2 6 P}.
Si 1 et 2 sont des problmes de dcision, avec les schmes dencodage associs e1 et e2 , on crira 1 2 (avec respect des schmes
donns) lorsquil existe une transformation polynomiale de L(1 , e1 ) en
L(2 , e2 ).
Si on parle en termes de problme, on peut regarder une transformation polynomiale du problme de dcision 1 en un problme 2 comme
f
une fonction f : D1
D2 satisfaisant aux deux conditions suivantes :

Chapitre 12.

Compltude N P

169

1. f est calculable en temps polynomial par un algorithme


dterministe ;
2. I D1 , I Y1 ssi f (I) Y2
La relation de transformabilit polynomiale est transitive, ce qui la
rend oprationnelle pour ce qui nous intresse.
Lemme 12.1.2 {{L1 L2 }et {L2 L3 } = {L1 L3 }}
La dmonstration est assez facile pour quon puisse la laisser au
lecteur.

12.2

La classe N PC des problmes N P-complets

Dans le chapitre prcdent, on a entrevu de faon intuitive quil existe


des problmes plus difficiles que dautres. Nous allons maintenant nous
employer les caractriser.
La classe des problmes N P complets est une classe dquivalence
de problmes qui sont les plus difficiles de N P. Informellement, on dira
quun problme de dcision est N P complet si N P et que,
pour tout autre problme de dcision 0 N P, on a 0 . Ce qui
formellement snonce :
Dfinition 12.2.1 Un langage L est dit N P complet si L N P et,
pour tout autre langage L0 N P, on a L0 L.
Ainsi, si un problme fait partie de la classe N P complet, tous les
problmes de la classe N P sont transformables en par une transformation polynomiale. Par ailleurs, les problmes de la classe N P complet
sont les problmes rputs pour tre les plus difficiles de la classe N P.
Cela signifie que si on sait dmontrer quun des problmes de la classe
N P complet est rsoluble en temps polynomial sur une MTU, alors ils
le sont tous, et tous les problmes de la classe N P sont alors rsolubles en
temps polynomial sur une MTU, et donc, on aurait en ce cas dmontr
que P = N P. Pour ce qui nous concerne ici, et jusqu plus ample
information, on conjecture que :
P 6= N P.

170

Complexit et Algorithmique avance

Et mme plus prcisment :


P N P.
On a ainsi une vue plus prcise de la classe N P quon peut visualiser
par un dessin comme suit :

NPComplets

P-Polynomiaux

NP

Figure 12.1 Visualisation des classes lmentaires de complexit

Dans ce qui suit, nous allons introduire la classe des problmes de dcision dits N P complets quon notera galement N PC .
La figure 12.1 peut conduire penser que :
1. P

N PC = ;

2. et aussi N P {P

N PC} =
6

Or, la vrit, on nen sait rien. Tout ce quon sait faire, cest dmontrer
quun certain nombre de problmes sont quivalents entre eux eu gard
leur complexit en temps, par transformation polynomiale, et quon ne

Chapitre 12.

Compltude N P

171

possde pas dalgorithme polynomial en temps dans le pire des cas pour
en rsoudre au moins un, mais cest tout. Par ailleurs on connat dautres
problmes pour lesquels on dispose dalgorithmes polynomiaux dans le
pire des cas. Sagissant des problmes pour lesquels on ne possde pas
dalgorithme polynomial, on ne sait pas dmontrer non plus quil nen
existe pas. Il est dja arriv que pour un problme rput non polynomial
on trouve un algorithme polynomial (cela a t le cas par exemple de la
Programmation Linaire pourtant largement pratique et pour laquelle
on utilise lalgorithme dit du simplexe d Kantorovitch et Tolsto en
1939 [KAN39] et [TOL39] et popularis en 1956 par Dantzig 1 ). De mme
pour le test de primalit dun nombre dont on a longtemps pens quil
ny avait pas dalgorithme polynomial pour le rsoudre (voir [AKS04]).
Toutefois, la classe de problmes auxquels nous allons maintenant nous
intresser est telle que si on trouvait un algorithme polynomial en temps
pour lun dentre eux, alors tous seraient rsolubles en temps polynomial,
et tous donc appartiendraient P et en consquence, on aurait de plus :
P = N P.

12.2.1

Un problme N P complet, la satisfiabilit

De faon littrale, pour quun problme de N P soit dit N P- complet


(i.e. N PC), il faut (mais il ne suffit pas) que tout problme de N P puisse,
6 N P,
par transformation polynomiale, sy ramener. Si on admet que P =
la rciproque nest pas vraie, les problmes de la classe N PC ne peuvent
tre, par transformation polynomiale, transforms en tout autre problme
de la classe N P. De plus un problme auquel tout autre problme de
N P peut se ramener par transformation polynomiale doit, pour faire
partie de la classe N PC, se prter une vrification de solution qui soit
faisable en temps polynomial (resp. espace).

12.2.2

Le problme de la satisfiabilit

Le problme dit de satisfiabilit (voir [Coo71, Lv73a]) que nous avons


dj rencontr, snonce comme suit :
1. Dans des cas extrmes cet algorithme est non-polynomial en temps, il est mme
exponentiel, cest pourquoi on a pens longtemps que le problme lui-mme tait de
nature non-polynomiale, mais en 1974, Khatchiyan (voir[Kha79] a fourni un algorithme
polynomial pour rsoudre ce problme et de nombreux autres on suivi (Karmarkar
[Kar84a, Kar84b], Murty [CM89]).

172

Complexit et Algorithmique avance

Etant donnes des littraux boolens 1 x1 , x2 , . . . , xi , . . . xn (donc


prenant leurs valeurs dans {vrai, f aux} ou dans {0, 1}), quelles sont
les valeurs assigner ces variables pour que lexpression, aussi appele
FNC pour Forme Normale Conjonctive :
F = (xi xj . . . xk ) (xl xm . . . xp ) . . . (xq . . . xt ) 2
i, j, k, l, m, p, q, t

{1, ..., n} ; i, j, k, l, m, p, q, t

{1, . . . , n}
prenne la valeur vrai ou 1. Les termes de base (les monmes) en sont
aussi appels des mintermes. Les termes clause et monme tant plutt
utiliss en algbre de Boole et les termes minterme, maxterme en logique
et lectronique.
Exemple 12.2.1 (FND) Une forme normale disjonctive serait :
F0 = (xi xj ... xk ) (x1 xm ... xp ) (xq ... xt ) ;
i, j, k, l, m, p, q, t {1, ..., n} ; i, j, k, l, m, p, q, t {1, . . . , n}
et la question devient : quelle doit tre une assignation de valeurs vrai
(resp. 1) ou f aux (resp. 0) aux variables pour que F0 prenne la valeur
vrai ou 1 ?
Les expressions du type (xi xj . . . xk ) ou du type (xq . . . xt ),
respectivement dans les cas de forme conjonctive et de forme disjonctive,
seront appeles respectivement clauses et monmes.
Remarque 12.2.1 Pour quune FNC soit satisfaite il faut que chacune
de ses clauses le soit. Pour quune FND soit satisfaite, il suffit quun
seul de ses monmes le soit.
Dfinition 12.2.2 Une expression boolenne est dite satisfiable si il
existe une assignation de valeurs ses variables (une instanciation de
celles-ci) telle que lexpression prenne la valeur vrai (ou 1 en algbre de
Boole) 3 .
1. Lexpression littraux boolens dsigne ici des variables boolennes indpendamment du fait quelles apparaissent nies ou non dans les clauses, cest--dire que
"littral x" dsigne x
(ou x) ou x.
2. RAPPEL : Cette fonction est dite crite sous forme normale conjonctive et
chaque terme entre parenthses (clause) est aussi appel un maxterme. Lcriture
duale est une forme normale disjonctive .
3. On ne fera pas la diffrence ici

Chapitre 12.

Compltude N P

173

Dfinition 12.2.3 Une expression boolenne est dite valide si pour


toute assignation de valeurs ses variables (toute instanciation de cellesci) lexpression prend la valeur vrai. (on dit aussi alors que lexpression
est une tautologie).
Exemple 12.2.2 lexpression ((x1 x2 ) x2 ) est satisfiable.
En effet, elle prend la valeur vrai pour f (x1 ) = f (x2 ) = f aux. Par contre,
lexpression (x1 x2 ) (x1 x2 ) x1 x2 ne peut tre satisfaite. Lexpression (x1 x2 ) (x1 x2 ) est quant elle, une tautologie. Le lecteur le
dmontrera facilement par utilisation des formules de De Morgan.
La situation de lexemple 12.2.2 ressortit un cas plus gnral :
Proprit 12.2.1 Une expression boolenne est satisfiable si et seulement si sa ngation nest pas une tautologie (i.e. est valide).
Dans le cas gnral, en ltat actuel de nos connaissances, pour trouver
une assignation de valeurs satisfaisant la condition de satisfiabilit, il
ny a pas dautre solution que dessayer, dans le pire des cas, toutes les
combinaisons possibles ou presque, de valeurs pour toutes les variables
jusqu en trouver une qui satisfasse lgalit F = vrai.
Un autre problme trs proche est :
tant donne une fonction boolenne quelconque, lcrire sous forme
normale conjonctive (respectivement : disjonctive) en minimisant le nombre de mintermes (resp. de maxtermes). Ce problme, de mme nature
que celui de la satisfiabilit sy ramne directement (voir [Lav74] pour
lalgorithmique qui sy rapporte). Ce problme sappelle aussi problme
du recouvrement dun ensemble par un sous ensemble de ses parties (Set
covering problem en anglais).

12.3

SAT, problme N P complet

Le premier problme de dcision avoir t considr comme N P


complet est prcisment celui de la satisfiabilit. La raison du choix de
SAT vient du fait quil sagit dun problme central, sur lequel maints
mathmaticiens et informaticiens se sont penchs sans jamais en exhiber
une solution en temps polynomial. Par consquent nombre de chercheurs

174

Complexit et Algorithmique avance

conjecturent que pour ce problme, il nexiste pas dalgorithme permettant de le rsoudre en temps polynomial dans le pire des cas. Par facilit
dcriture, nous nommerons dsormais, dans ce qui suit, ce problme :
SAT. Une autre raison qui a conduit prendre SAT comme problme
central est lie lalgbre de Boole qui est lalgbre de la logique. Pratiquement tous les problmes classiques de mathmatique peuvent sexprimer
en expressions de la logique formelle (ce qui ne signifie en rien que ce soit
facile faire) et toute fonction boolenne peut se ramener une forme
normale conjonctive (l non plus, pas facilement). La forme normale
conjonctive (ou FNC), cest--dire SAT est donc centrale.
Pour introduire la classe N PC des problmes, il nous faut donc
maintenant mener la dmonstration en deux temps.

12.3.1

Le thorme de Lvine-Cook

Thorme 12.3.1 (Thorme de Lvine-Cook) :


SAT est N Pcomplet.
La dmonstration se mne donc en deux parties (voir [Coo71, GJ79]),
une premire, brve, pour laquelle il faut montrer que SAT fait partie
de N P ; lautre beaucoup plus longue et difficile, qui consiste montrer
que tout problme de N P peut, par transformation polynomiale, scrire
sous forme dune instance de SAT.
12.3.1.1

Premire partie : SAT est dans N P

Lemme 12.3.1 SAT N P


Soit C lensemble des clauses dun problme SAT ; on a videmment :
SAT N P,
tant donne une assignation de valeurs (un vecteur boolen) aux
variables dune instance de SAT, une MTU vrifie en temps polynomial
si cette assignation (ou instanciation relle) valide -ou non- linstance
gnrique en question. La machine vrifie en effet en temps polynomial
que chacune des clauses de C prend la valeur vrai pour cette assignation
de variables. La vrification se fait videmment en temps polynomial. En
effet si la proposition est vraie, la vrification prend un nombre de pas de

Chapitre 12.

Compltude N P

175

calcul sur une MTU qui sexprime linairement en le nombre de variables


et le nombre de clauses du problme SAT considr. Si la proposition est
fausse galement.
En fait cela revient dire que la vrification, sur une MTU, du fait
que la fonction boolenne, instance de SAT, prend la valeur vraie pour
laffectation de valeurs aux variables prend un temps polynomialement
born.
Cest vident, il suffit pour ce faire que la MTU remplace dans
linstance gnrique, chaque variable par sa valeur, ce qui entrane un
calcul dont la complexit en temps est de lordre dun polynme "en n"
o n est le nombre de variables instancier.
12.3.1.2

Seconde partie

Lemme 12.3.2 Tout problme


transformable en SAT

dans

NP

est

polynomialement

Pour la deuxime partie de la dmonstration, qui consiste montrer le lemme, savoir que tout problme dans N P est transformable
polynomialement en SAT, nous utiliserons la forme langage. SAT est
alors reprsent par le langage LSAT = L[SAT, e], e tant un schme
dencodage raisonnable au sens o nous lavons prcdemment dfini :
Rappel : On appelle codage raisonnable tout codage qui induit une
taille de donne qui est fonction polynomiale de la taille de linstance
code.
Le passage la forme langage vient de ce quil nous faut pouvoir
parler de tout problme de N P. Lutilisation des langages permet par
abstraction de parler de tout langage et donc de ramener le problme
gnral sa forme gnrique, laquelle est dautant plus facilement manipulable quon ne connat pas de mthode gnrique formelle autre pour
caractriser "tout problme" de N P (sinon SAT).
Il nous faut donc montrer maintenant que tout langage de N P peut
tre transform polynomialement en LSAT , soit formellement :
L N P, L LSAT
Une faon standard de pouvoir traiter de tous les problmes de N P
de faon gnrique, cest de considrer tous les langages de N P et de
donner une transformation fL polynomiale du langage associ en LSAT .

176

Complexit et Algorithmique avance

En dautres termes, il faut pouvoir poser tout problme de N P


sous forme de rsolution dune instance SAT. De plus il faut que cette
transformation se fasse en temps polynomial (cest le rle de fL ). Notre
propos ici est donc de construire, de faon gnrique, le programme de
MTU capable deffectuer cette transformation.
Soit M un programme reconnaissant en temps polynomial le langage
L = LM spcifi par :
, Q, , , q0 , qY , qN ,
avec :
Q espace des tats de la machine (appel aussi alphabet intrieur).
Ltat q0 tant ltat initial de la machine ;
alphabet extrieur de la machine restreint la donne de dpart,
cest dire lensemble des symboles disponibles pour crire la
donne sur le ruban 1 . Le symbole en faisant partie, qui symbolise
le blanc ou absence de symbole ;
qY et qN tant les tats darrt de la MTU associs aux tats OUI
et NON respectivement, qY tant associ OUI et qN NON.
pour la gnralit du propos, on distinguera et , avec
o est lensemble, fini, de tous les symboles de lalphabet extrieur
et lensemble des symboles utiliss pour coder la donne dentre ;
(ou t) est la fonction de transition :
: (Q (qY , qN )) Q {G, D, N}).
Soit p(n), avec n N et p(n) n n ; un polynme , bornant la
fonction de complexit en temps :
TM (n).
La fonction fL peut tre vue comme une application des squences de
sur les instances de SAT. Cest dire que sil existe une affectation de
valeurs {vrai, f aux} aux variables boolennes satisfaisant SAT, fL doit
tre telle que, chaque squence x de doit correspondre un mot du
langage L si et seulement si SAT prend la valeur vrai. Il sagit donc ici
1. Attention, on est ici dans un contexte de MTU (Machine de Turing Universelle)
cest--dire que la donne en question est lnonc dun problme donn sous sa forme
gnrique.

Chapitre 12.

Compltude N P

177

de construire fL , ce qui consiste montrer comment faire correspondre


un ensemble de clauses une squence x acceptable par le programme
M de la MTU, cest dire lorsque x L.
Si x est accept par M, cela signifie quil y a un calcul de M
(pour la commodit de lexpos, on confond ici le programme M et la
machine qui lexcute) sur x tel que tant le temps de calcul de vrification
de la squence 1 que la longueur de la squence elle-mme (peu importe
comment elle a t obtenue) sont borns par un polynme p(n) avec
n = |x|.
Sachant que la tte de lecture/criture de la MTU dmarre, par
convention, sur la case 1, et ne peut chaque tape que lire/crire dans
une des cases contige (voir chapitre 2 le fonctionnement dtaill dune
MTU) un tel calcul de la MTU ne peut concerner, sur la bande, au plus,
que les cases p(n) p(n) + 1 .
La phase du calcul de vrification peut alors tre compltement dcrite
en trois points, savoir :
la donne du contenu des cases concernes ;
ltat correspondant de la machine (la lettre de lalphabet intrieur) ;
la position de la tte de lecture/criture.
La construction de fL va donc consister affecter des clauses vraies qui
spcifient clairement ces trois lments chaque tape du calcul. De plus,
comme il doit y avoir au plus p(n) tapes, on na considrer au plus
que p(n) + 1 itrations (i.e. temps) diffrentes.
Soit lespace (i.e. lalphabet intrieur) des tats dcrit par :
Q = {q0 , q1 = qY , q2 = qN , q3 . . . qr }; avec r = |Q| 1
et lalphabet extrieur
= {s0 = , s1 , s2 , . . . , st }; avec t = || 1
.
Soit U lensemble des variables de fL permettant de dcrire une
itration particulire ; U est compos de trois parties permettant donc de
spcifier ltat qk de M, lindice de la case en jeu, le contenu de celle-ci.
1. rappel : il sagit dun problme de dcision, donc ici il sagit de vrifier si la
rponse est OUI.

178

Complexit et Algorithmique avance

U = {Q[i, k] H[i, j]} S[i, j, k] o i caractrise litration (litem de


temps).
Q[i, k] caractrise le fait qu litration (i.e.temps) i la machine M
est dans ltat qk , et on a alors P(n) i 0 ainsi que r k 0 ;
H[i, j] caractrise la case j lue par la tte litration (i.e.temps)
i. On a alors P(n) i 0 ainsi que P(n) + 1 j P(n) ;
S[i, j, k] caractrise le contenu k de la case j litration (i.e.
au temps) i. On a alors P(n) i 0 ; P(n) + 1 j P(n)
et t k 0.
ce qui peut se rsumer dans le tableau suivant (voir aussi [GJ79]) :
Variable

Rang

Signification

Q[i, k]

P(n) i 0; r k 0

Au temps i, M est
dans ltat qk

H[i, j]

P(n) i 0 ;
P(n) + 1 j P(n)

Au temps i la tte lit


la case j

P(n) i 0 ;
P(n) + 1 j P(n) ; t
k0

Au temps i la case j
contient k

S[i, j, k]

La position de dpart est constitue de deux grandes parties, la


premire est le codage de linstance particulire du problme considr,
elle consiste en la donne de la squence x de , langage dcrivant les
problmes de N P, crite dans les cases 1 n et la squence candidate
tre solution une fois linstance paramtre instancie en instance
numrique 1 , w crite dans les cases 1 |w|, toutes les autres cases
1. Il y a l une difficult dinterprtation due aux niveaux auxquels on se place.
Pour bien faire, dans certains cas, on peut tre amen distinguer trois niveaux
dinstanciation,
1. l instance gnrique qui est reprsentative de TOUS les problmes dune
classe ;
2. une instance particulire ou encore instance paramtre qui dfinit une
sous classe, souvent une topologie ;

Chapitre 12.

Compltude N P

179

tant vides. La transformation fL construit un ensemble de clauses


impliquant ces variables de telle faon quune affectation vrai soit une
affectation satisfaisante (i.e. satisfaisant SAT) si et seulement si cest une
affectation dont le nombre ditrations de la phase de vrification de la
squence candidate et la longueur de w sont borns suprieurement par
p(n). Ainsi, on a :
xL
Il existe un calcul de M sur x en p(n) itrations au plus pour
ltape de vrification et une longueur w exactement gale p(n) ;
Il existe une affectation vrai satisfaisant SAT pour lensemble
des clauses dans fL (x).
Ainsi, fL satisfait une des deux conditions de la transformation
polynomiale. Lautre condition, savoir que fL doit calculer en temps
polynomial va tre vrifie par la suite. Les clauses de fL peuvent tre
divises en 6 groupes imposant chacun des types spars de contraintes
chaque affectation vrai satisfaisant SAT. Ces contraintes sont en fait
celles, classiques, associes au fonctionnement de toute machine de Turing.
Groupe

Clauses du groupe

G1

A toute itration i correspond un et un seul tat de M

G2

A toute itration i la tte de lecture/criture lit une case


et une seule

G3

A toute itration i, chaque case contient un et un seul


symbole de

G4

A litration 0, le calcul est dans ltat initial de vrification


de x

G5

A litration p(n), M est dans ltat qY et x est accept

3. une instance numrique dans laquelle on a attribu une valeur aux paramtres.

180

Complexit et Algorithmique avance

A toute itration i, p(n) > i 0, la configuration au temps


i + 1 est obtenue par simple application de la fonction de
transition la configuration i.

G6

Groupe

Clauses du groupe

La question qui se pose maintenant est de savoir comment sont


constitus ces groupes. Ainsi, G1 est constitu des clauses :
{Q[i, 0]; Q[i, 1]; . . . ; Q[i, r]}, p(n) i 0
et
{Q[i, j]; Q[i, k]}p(n) i 0, r k > j 0
Les p(n) + 1 premires de ces clauses peuvent tre simultanment
satisfaites si et seulement si, a chaque itration i, M est dans un tat de
Q au moins. Les clauses suivantes (il y en a (p(n) + 1).(r + 1).(r/2)) sont
videmment satisfaites puisque M ne peut tre en plus dun seul tat.
On construit pareillement les groupes G2 et G3 .Les groupes G4 et G5
consistent chacun en une seule clause.
Le nombre de clauses dans chaque groupe, ainsi que le nombre de
littraux dans chaque clause sont borns par une fonction polynomiale
en n.
Le groupe G6 est constitu de deux sous-groupes de clauses, G6,1
et G6,2 . Le premier garanti que si la tte de lecture/criture nest pas
en cours de lecture de la case j au temps (i.e. litration) i, alors le
symbole dans la case j ne doit pas changer entre les itrations i et i + 1.
Ces clauses sexpriment comme suit :

G6,1 = {{S[i, j, l]; H[i, j]; S[i + 1, j, l]}, p(n) > i 0;


p(n) + 1 i p(n), t l 0}.
Pour toute itration i, case j, symbole sl , si la tte de lecture nest pas
entrain de lire la case j au temps i et que la case j contient sl litration
i mais plus litration i + 1, alors la clause ci-dessus dpendante de

Chapitre 12.

Compltude N P

181

i, j, et l ne peut tre satisfaite. Dans le cas contraire, elle doit tre


satisfaite.
Dans G6,2 lorsque qk Q {qY , qN }, les valeurs de , k 0 et l0 sont
telles que d(qk , sl ) = (qk0 , sl0 , ) et pour qk {qY , qN }, D = 0; k 0 = k
et l0 = l.
On gnre ainsi 6(p(n)).(p(n) + 1).(r + 1).(t + 1) clauses permettant
G6 de gnrer des affectations satisfaisant SAT et cohrentes avec les
contraintes.
On a ainsi montr comment construire un ensemble de clauses permettant de gnrer fL . Si x L , alors il existe un calcul acceptable par
M sur x de longueur au plus p(n) qui impose une affectation de valeur
vrai satisfaisant au clauses de G = .G1 G2 G3 G4 G5 G6 .
Inversement, la construction de G est telle que toute affectation
satisfaisant SAT de G doit correspondre un calcul acceptable de M sur
x.
Il sensuit que fL possde une affectation vrai satisfaisant SAT si et
seulement si x L.
Il reste toutefois dmontrer que pour tout langage L, fL (x) peut
tre construit sur x en temps polynomial de n = |x|.
Rcapitulons :
Groupe
G1

Clauses du groupe
{Q[i, 0]; Q[i, 1]; . . . ; Q[i, r]}, p(n) i 0;
{Q[i, j]; Q[i, k]}p(n) i 0, r k > j 0
{H[i, p(n)]; H[i, p(n) + 1]; . . . ; H[i, p(n) + 1]},

G2

p(n) i 0 ;
{H[i, j]; H[i, k]};
p(n) i 0, p(n) + 1 k > j p(n)}.
{S[i, j, 0]; S[i, j, 1]; . . . ; S[i, j, t]};

G3

p(n) i 0; p(n) + 1 j p(n);


{S[i, j, k]; S[i, j, k0 ]};
p(n) i 0; p(n) + 1 j p(n), t k0 > k 0
{Q[0, 0]}; {H[0, 1]}; {S[0, 0, 0]},

G4

{S[0, 1, k1 ]}; {S[0, 2, k2 ]}; . . . ; {S[0, n, kn ]},


{S[0, n + 1, 0]}; {S[0, n + 2, 0]}; . . . ; {S[0, p(n) + 1, 0]}
avec x = sk1 sk2 . . . , skn

G5

{Q[p(n), 1]}

182

Complexit et Algorithmique avance

G6,1 = {{S[i, j, l]; H[i, j]; S[i + 1, j, l]},


p(n) > i 0; p(n) + 1 i p(n), t l 0}.
G6

G6,2 = {{H[i, j]; Q[i, j]; S[i, j, l]; H[i + 1, j + ]}


{H[i, j]; Q[i, j]; S[i, j, l]; Q[i + 1, k0 ]}
{H[i, j]; Q[i, j]; S[i, j, l]; S[i + 1, j, l0 ]}}

Groupe

Clauses du groupe

tant donn L, on choisit un programme particulier M qui reconnat


L en temps polynomial. Une fois acquis le programme M, le polynme p,
la construction de lensemble U des variables de fL , et la collection G des
clauses, le caractre polynomial du calcul sensuit ds lors quon montre
que la longueur |I| du codage dune instance I est elle mme polynomial,
cest dire quil sagit dun codage raisonnable . De cette faon, on
obtient une fonction de SAT exprime de faon raisonnable, par exemple,
de longueur |U|.|G|. Une clause ne peut contenir plus de 2.|U| littraux, et
le nombre de symboles requis pour dcrire un littral nexcde pas log |U|,
ce qui conduit une taille dau plus 2.|U|.|G| log |U|. On peut ngliger
le facteur logarithmique puisquil naffecte pas le caractre polynomial.
Puisque k et t sont fixs davance, ils ninterviennent quen qualit de
constantes facteurs de|U| et |G| , on a :
|G| = O(p(n)2 )

et |U| = O(p(n)2 ).

Comme |fL | = |U|.|G|, on a par consquent :


|fL | = O(p(n)4 ) et il sagit bien dune borne polynomiale.
Pour chaque L N P, fL est une transformation polynomiale de L
en SAT, ou plus exactement de L en LSAT . Par consquent, SAT est
N P-complet.
On peut donc noncer :
Thorme 12.3.2 SAT est N P -complet.
Ce qui serait intressant maintenant serait de dmontrer que la rciproque est fausse, cest un problme ouvert, une conjecture dont la
dmonstration ventuelle est laisse la sagacit du lecteur.

Chapitre 12.

12.3.2

Compltude N P

183

quilibre

Soit R une relation binaire sur des chanes de caractres


construites sur lalphabet . R est dite polynomialement
reconnaissable (ou dcidable) si le language {x; y : (x, y) R} est
reconnaissable polynomialement sur une MTU. On dira de plus que R
est polynomialement raisonnable (i.e quilibr) si et seulement si
{(x, y) R} = {|y| |x|k k 1}.
En dautres termes, la longueur du second terme est toujours borne par
un polynme dont le mnome de plus haut degr sexprime en fonction
de la longueur du premier terme.
Proposition 12.3.1 : Soit un langage L ; L N P si et
seulement si il existe une relation polynomialement reconnaissable raisonnable possdant la proprit :{L = x : (x, y) R y}.
Preuve 12.3.1 Supposons quexiste une telle relation R. Dans ce cas L
peut tre obtenu par une machine de Turing de la faon suivante :
Soit une entre x (codage dune instance paramtre dun problme),
et une squence y (squence candidate tre solution) de longueur au plus
|x|k , cest dire la borne raisonnable pour R, et alors la MTU calcule
en temps polynomial sur x; y pour tester si (x, y) R. Si tel est le cas,
lalgorithme rpond oui sinon, il rpond non, il accepte ou rejette. Il est
donc flagrant quil existe un calcul acceptable raisonnable si et seulement
si x L.
linverse, supposons maintenant que L N P, alors L est
reconnaissable en temps |x|k k.
Dfinissons la relation R : (x, y) R si et seulement si y est le
codage dun calcul acceptable sur la MTU effectu sur lentre x. La
MTU tant polynomialement borne, la relation R est donc raisonnable
et reconnaissable polynomialement puisque elle peut tre teste en temps
linaire lorsque y code un calcul acceptable de la MTU. De plus, puisque
nous avons suppos que la MTU reconnat L, on a :
L = {x | (x, y) R y}
Cette proposition est une faon trs intuitive daborder la signification
de N P. Tout problme de N P a une proprit remarquable, savoir que

184

Complexit et Algorithmique avance

toute instance oui du problme possde une reconnaissance polynomiale 1


y qui est linstance oui elle mme. videmment, les instances non ne
possdent pas ncessairement de tels reconnaissances.
On ne sait en gnral pas comment exhiber une telle reconnaissance 2 en temps polynomial, mais au moins on sait quelle existe lorsque
linstance considre est une instance oui.
Pour SAT par exemple, une telle reconnaissance dune expression
boolenne est une assignation T de valeurs aux variables (i.e. une
instanciation "numrique" des variables) qui satisfait (cest--dire qui
confre la valeur 1, ou vrai si on parle en termes logiques). T est
court relativement et nexiste que si lexpression est satisfiable. Dans
le problme de recherche dun circuit hamiltonien dans un graphe, la
reconnaissance du graphe G considr se fait prcisment par construction
dun circuit hamiltonien.
Revenons N P. Cette classe comprend normment de problmes
de calcul ressortissant divers domaines, on pourrat presque dire quelle
contient tous les problmes intressants tels la recherche des plus courts
chemins dans un graphe valu, assignations de valeurs vraies des
propositions logiques, minimisation de fonctions boolennes, chemin et
circuit hamiltoniens, placements de transistors dans les VLSI, etc. La
difficult des calculs dpend de ce quon veut. Parfois il sagit de trouver
un optimum dans un ensemble de possibles, dautres fois on pourra
se contenter dun reprsentant de la solution, dautres fois encore de
solutions approch
ees, dautres fois encore la solution sexprime en
termes de satisfaction de contraintes...

12.3.3

Lappartenance N PC

Tout problme de calcul peut tre tendu de telle faon quil finisse
par appartenir N PC, voire pire. De mme, tout problme de N P
prsente des cas particulier ou des formulations particulires qui sont
dans P. Mais la question est de savoir o est la frontire entre P ; N P
et N PC pour peut quelle existe.
Il y a plusieurs faons daborder la question et de prouver quun
cas particulier dun problme entrane lappartenance dudit problme
1. Ce que certains auteurs nomment certificat.
2. Cest alors, quen introduisant le concept de certificat, certains auteurs avancent
celui de Machine de Turing non Dterministe pour justifier lobtention dudit certificat.

Chapitre 12.

Compltude N P

185

N PC. La plus utilise, nous lavons vu, cest la rduction polynomiale,


quand on a juste constater quon obtient des instances appartenant au
cas particulier considr.
Pour dmontrer que SAT est dans N PC nous avons d dmontrer
que tout problme de N P pouvait se rduire polynomialement SAT.
Dsormais, et puisque N PC est une classe dquivalence, pour dmontrer quun problme fait partie de N PC il ne sera plus ncessaire de
refaire toute cette dmonstration. Il suffira de dmontrer que le problme
considr est quivalent SAT. Pour ce faire, il faudra dmontrer que
la problme considr se rduit polynomialement SAT et inversement,
que SAT se rduit polynomialement au problme considr. Cest--dire
quon doit avoir pour un problme (i.e. langage) L considr :
SAT L

et

L SAT.

En fait, puisque TOUT problme de N P est rductible polynomialement


SAT, on a N PC N P, (en supposant quils sont diffrents) donc,
pour montrer quun problme P fait partie de N PC il suffira de montrer
que SAT P ou, puisquil y a transitivit quun problme Pi : SAT Pi
est tel que Pi P.
12.3.3.1

Le cas de k-SAT

Proposition 12.3.2 : 3-SAT est dans N PC.


Preuve 12.3.2 Supposons quon ait un ensemble de variables boolennes X = x1 , x2 , . . . , xn et des clauses C = c1 , c2 , . . . , cm de cardinalit
quelconque. On est alors dans le cas gnrique de SAT. Nous allons
montrer comment construire une instance gnrique de 3-SAT
quivalente cette instance gnrique de SAT.
3-SAT est compos alors de lensemble X de variables boolennes
et dun ensemble de clauses C tel que ci C ; |ci | = 3. Le problme
est alors de construire X et C . X contient a minima les variables de
X ; on a donc :
X = X

m
[
j=1

Xj0

et

C =

m
[

C0j

j=1

La notation X0 reprsente des ensembles de variables dont la composition


sera explicite ci-aprs. La construction de C savre un peu plus dlicate,

186

Complexit et Algorithmique avance

et cest celle-ci qui va permettre de dterminer ce que sont les Xj0 et


combien il convient den introduire.
Nous serons amens considrer quatre cas suivant que les clauses
considres contiennent 1, 2, 3 ou plus de variables boolennes.
Soient z1 , z2 , . . . , zk les littraux issus de X.
1. Lorsque la clause de SAT ne contient quune seule variable, il
convient alors den rajouter 2 pour atteindre 3 variables dans une
nouvelle clause correspondante pour 3 SAT on a alors :
Xj0 = {yj1 , yj2 } et
C0j = {{z1 , yj1 , yj2 }; {z1 , yj1 , y 2j }; {z1 , y 1j , yj2 }; {z1 , y 1j , y 2j }} ;
2. lorsque la clause ne contient que 2 variables, il faut alors en rajouter
une seule, on a alors :
Xj0 = {yj1 } et :
C0j = {{z1 , z2 , yj1 }; {z1 , z2 , y 1j } ;
3. lorsque la clause considre contient exactement 3 variables,
il ny a rien changer, on a
Xj0 = et :
C0j = {{cj }} ;
4. lorsque la clause contient plus de 3 littraux, alors il faut lclater
en plusieurs clauses quivalentes de 3 variables exactement. Dans
ce cas, si le nombre de littraux dans la clause de SAT concerne
est k, on peut oprer de la faon suivante :
Xj0 = {yji : 1 i k 3}, et :
C0j = {{z1 , z2 , yj1 }} {{y ij , zi+2 , yji+1 :
1 i k 4}{{y k3
, zk1 , zk }} .
j
Il nous faut prouver maintenant que lensemble des clauses de C nest
satisfiable que si lensemble des clauses de C lest et rciproquement.
En reprenant les 4 cas ci-dessus point par point, on voit que :
Pour le cas 1 lquivalence est vidente, les rles respectifs des
variables yj1 et yj2 sannulant rciproquement grce leurs ngations, elles ne font que du "remplissage" ;
idem pour le cas 2, le cas 3 ne posant pas de problme particulier ;

Chapitre 12.

Compltude N P

187

dans le cas 4, on opre un "chanage" des clauses introduites par


un jeu sur les variables et leurs ngations. La structure obtenue est
de la forme :
{., ., yi1 } {y i1 , ., yi2 } . . . {., .yil } {y il , ., .}
qui est une systmatisation de 1.
On remarque que dans chacun des cas, le nombre de littraux nouveaux
introduits est une fonction linaire du nombre initial de variables. Pour ce
qui est des clauses, la transformation, lorsque toutes les clauses initiales
de SAT on plus de 3 variables, induit au plus n.m clauses supplmentaires. On peut donc toujours transformer SAT en 3-SAT par rduction
polynomiale et donc aussi en temps polynomial.

12.3.4

Couverture dun graphe

(voir aussi [GJ79, Pap95])


Thorme 12.3.3 (Ensemble stable, maximal) La recherche dun
ensemble stable maximal 1 (dsormais on ne prcisera pas intrieurement)
dans un graphe est N PC.
Rappel : Un ensemble stable S dans un graphe G = (X, ) est un
ensemble de sommets tel quil ny ait pas darte les joignant deux
deux.
S X|xi , xj S; (xi , xj )
/
Un tel ensemble S est dit maximal, quon notera S si on ne peut y
ajouter un sommet sans violer la dfinition :
{S |y X S , x S : (x, y) }
. Un tel ensemble stable maximal est aussi un ensemble couvrant, ainsi,
on notera le problme SETST pour la suite.
Dans un ensemble stable maximal, chaque sommet appartient une
clique 2 . Pour associer le problme de la recherche dun ensemble stable
une instance SAT, il faut dcomposer le graphe en cliques disjointes.
1. Dans la littrature anglo-saxonne, on utilise le terme densemble indpendant
(independent set).
2. Un graphe complet, cest--dire quil y a toujours une arte entre deux sommets.

188

Complexit et Algorithmique avance

Le plus simple de ce type de graphes est un graphe dcomposable en


cliques formes de trois sommets, cest--dire en "triangles". Cest pourquoi nous nous rfrerons par la suite 3-SAT, sachant que cest le cas
le plus simple.
Preuve 12.3.3 La preuve se mne en trois parties :
1. SETST est un problme de N P Ce rsultat est vident, tant
donn un ensemble S0 de sommets dun graphe, on peut vrifier en
temps polynomial que :
il nexiste pas darte joignant deux sommets de S0 ;
tout autre sommet du graphe qui nest pas dans S0 est extrmit
dune arte dont lautre extrmit est dans S0 .
2. Transformons 3-SAT en SETST : On sait que k-SAT est dans
N PC et plus particulirement, 3-SAT. Donc, si on sait rduire
polynomialement 3-SAT SETST, on aura montr que SETST est
de mme nature que 3-SAT du point de vue de la complexit, cest-dire ici que SETST est dans N PC. Il nous faut donc transformer
3-SAT polynomialement en SETST.
soit donc formellement une instance gnrique de 3-SAT :
= C1 , . . . , Cn et |Ci | = 3

(12.1)

Considrons les clauses de 3-SAT, on peut assimiler chacune des


clauses un triangle dun graphe dont les sommets seraient tiquets par les variables composant les clauses. Par ailleurs si un
graphe contient un triangle, alors lun des sommets doit faire partie
de SETST et un seul, sinon il y a une arte au moins qui joint
deux sommets de lensemble (vident).
Donc, dans 3-SAT on doit faire en sorte que la solution ne puisse
contenir quune seule variable de chaque clause.
Il nest nul besoin de travailler sur toutes les topologies possible
de graphes, puisque ce qui nous intresse ici cest un thorme
dexistence. Il nous faut montrer dabord quon peut assimiler 3SAT un graphe et que la solution de 3-SAT est un ensemble stable
maximal du graphe, et rciproquement, il nous faut montrer quil
existe des graphes qui se rduisent polynomialement 3-SAT et
dont les ensemble stables maximaux sont des solutions de 3-SAT.

Chapitre 12.

Compltude N P

189

Il suffit donc de considrer une classe de graphes reprsentative de


ces proprits.
Considrons donc les graphes composs de triangles au sens
ci-dessus.
Exemple 12.3.1 considrons linstance suivante de 3-SAT 4
clauses :
= (x1 x2 x4 ) (x1 x2 x4 )
(x1 x2 x4 ) (x1 x2 x4 )

Clauses

(x1 x2 x4 )

C1

(1,1 2,1 3,1 )

(x1 x2 x4 )

C2

(x1 x2 x4 )

C3

(x1 x2 x4 )

(1,2 2,2 3,2 )


(1,3 2,3 3,3 )

C4

(1,4 2,4 3,4 )

On fait correspondre un graphe construit comme suit :


A chaque clause de on fait correspondre un triangle du graphe,
tous les triangles tant disjoints, a chaque sommet de chaque
triangle, on associe un littral de la clause qui a servi crer le triangle. Ainsi, il y a un sommet par littral dans chaque clause ce qui
signifie que si un littral apparat dans deux clauses
diffrentes, il sera associ deux sommets diffrents du graphe,
dans deux triangles disjoints. On ajoute comme arte entre les
triangles des artes telles que (xi , xi ), xi Cj et xi
/ Cj , cest-dire quon ajoute des artes entre des sommets de triangles diffrents
si et seulement si les sommets extrmits de ces artes reprsentent
des littraux opposs.
La signification alors en devient plus claire. Dans lexemple 12.3.1,
choisir 1,1 = V o 1,1 est la premire variable de la premire
clause, interdit de prendre 1,2 = V et 1,3 = V.

190

Complexit et Algorithmique avance


Dans cette nouvelle formulation, il apparat clairement que la satisfaction de ne peut se faire quen donnant la valeur V une
variable et une seule dans chaque clause.
Ainsi, dune faon plus formelle, on a Ci = (1i 2i 3i ) o ij
est un littral qui peut tre une variable boolenne ou sa ngation.
Le graphe associ se construit comme suit :
Gm
= (S, A) avec

S = {si,j |i = 1, . . . , m et j {1, 2, 3}}


Ensemble des sommets
A = {[si,j , si,k ] : i = 1..m; j 6= k}
[

{[si,j , si,l : i =
6 l, i,j = i,l ]}

Ensemble des artes.


m est le nombre de clauses dans et donc de "triangles" dans Gm
.
Pour bien comprendre lexemple 12.3.1, il faut bien comprendre les
significations des littraux et leurs relations avec les variables
Lemme 12.3.3 Pour quil y ait un ensemble stable maximal dans
Gm
de taille m, il faut et il suffit que soit satisfiable.
Si un tel ensemble stable existe, appelons le E, |E| = m il est
constitu dun littral par sommet de chacun des triangles. Par
ailleurs aucune clause ne contient deux littraux de variables boolennes opposes (une nie et une non nie). Les variables boolennes
(les littraux mis la valeur V -ou 1-) de E constituent donc une
solution de . Il ne peut y avoir, par construction deux littraux,
lun ni, lautre non dans E puisque si lun lest, lautre est "couvert"
par le fait quon a pris la prcaution de crer une arte entre deux
littraux opposs. Et comme E contient un et un seul littral par
clause, est satisfaite.
3. Rciproquement Si il existe une solution satisfaisant , alors elle
contient un littral mis la valeur V (i.e 1) issu de chaque clause
et reprsente un sommet dun triangle associ cette clause. Ainsi,
la solution contient exactement m littraux.

Ce faisant, on remarquera que les problmes de clique et densembles
stables extrieurement sont troitement lis SETST et sont eux aussi

Chapitre 12.

Compltude N P

191

dans N PC. la dmonstration par rduction polynomiale SETST se fait


facilement, nous en laissons le soin au lecteur.
Lorsquon analyse la complexit dun problme de N PC, on essaie
de prciser o est la frontire entre les cas qui ressortissent la classe P
et ceux qui sont dans N PC. Ce faisant bien sr on admet implicitement
que P =
6 N P.
Essayer de "baliser" cette frontire entre N PC et N P est lobjet du
chapitre suivant.

12.3.5

La classe Co-N PC

De mme que pour la classe Co-N P, on peut dfinir la classe CoN PC.
Dfinition 12.3.1 En termes de problme :
| N PC};
Co N PC = {
en termes de langage :
Co N PC = { L | L langage sur lalphabet et L N PC}.

12.3.6

Sur lquivalence de certains problmes

Nous avons montr, pour pouvoir dmontrer lexistence de la classe


N PC que certains problmes taient quivalents SAT par rduction
polynomiale (note ) du fait que ces problmes sont tous quivalents
SAT, ils appartiennent la mme classe dquivalence, et celle-ci est
N PC lui-mme. Toutefois, ces dmonstrations dquivalence nont pas
toutes t menes de la mme faon. Tantt on dmontre directement une
-quivalence SAT, tantt une -quivalence un problme lui-mme
-quivalent SAT. mais, comme on pouvait sy attendre, on trouve le
mme rsultat en tablissant des quivalences systmatiques de problme
problme, sans passer par la rduction polynomiale.

192

Complexit et Algorithmique avance

Exercices
Exercice 19 [Le problme de Langford]
Ont considre le problme de Langford : on dispose de cubes de n
couleurs (deux cubes de chaque couleur), et on souhaite les disposer de
la manire suivante : les deux cubes de la couleur 1 sont spars par un
cube, ceux de la couleur 2 par deux cubes, . . .
Exemple : 4 1 3 1 2 4 3 2
Les mathmaticiens, et nous leur ferons confiance, montrent que le
problme de Langford admet une solution si et seulement si n est de la
forme 4k + 3 ou 4k + 4 (on voit aisment que pour n = 1 ou n = 2, il ne
saurait y avoir de solution).
1. Par convention, on va numroter les cubes de 1 2n, avec le cube
j et le cube 2n + j de couleur j On va rsoudre ce problme par
une recherche arborescente : chaque couple cube-position (i, k)
(il y a 2n positions et 2n cubes), on associe un littral pik signifiant
le cube i est en position k.
Donnez une conjonction de disjonction de littraux exprimant le
fait que les cubes j et 2n + j sont correctement placs lun par
rapport lautre (donc que leurs positions respectives sont spars
de j cubes).
2. Donnez une formule boolenne exprimant que deux cubes ne
peuvent tre la mme place.
3. Donnez une formule boolenne exprimant que tous les cubes sont
correctement positionns et quils ne se chevauchent pas.
4. Montrez que le problme de Langford est N P. On admettra que
SAT est N P.
Exercice 20 [k-SAT : les cas k = 2 et k > 2]
1. Donnez la dfinition du problme SAT.
2. Donnez la dfinition du problme k-SAT.
3. Dfinissez la rduction polynomiale.
4. Dfinissez un problme NP-complet.
5. Enoncez le thorme de Cook.

Chapitre 12.

Compltude N P

193

6. On veut montrer que 2-SAT est dans P. Lide de cette dmonstration est que si lun des deux littraux dune clause est faux,
lautre est ncessairement vrai.
(a) Proposez un codage pour une instance de 2-SAT (pensez au
codage utilis en TD).
(b) Ecrivez une machine de Turing remplaant une variable par
sa valeur, et chouant si cette substitution entrane une clause
faux.
(c) Ecrivez une machine de Turing cherchant les clauses dans
lesquelles apparat un littral faux et stockant le deuxime
littral de ces clauses sur un ruban auxiliaire.
(d) Dcrivez une machine de Turing bases sur les deux prcdentes rsolvant 2-SAT (utilisez autant de rubans que ncessaire).
(e) Calculez la complexit de cette dernire machine de Turing,
et concluez.
Exercice 21 [Cycle eulrien]
On considre un graphe G non-orient. On suppose connu que le
problme du cycle hamiltonien (trouver un cycle dans un graphe passant
une et une seule fois par chaque sommet) est NP-complet. Le problme
du cycle eulrien consiste en la recherche dun cycle dans un graphe
passant une fois et une seule par chaque arte.
Le graphe dual G dun graphe G est le graphe dont les sommet
sont les artes de G, et dans lequel une arte rejoint deux sommets si
et seulement si ils reprsentent des artes de G ayant un sommet en
commun. Par exemple, si le graphe G a quatre sommets 1, 2, 3 et 4 et les
artes 1-2, 2-3, 3-4 et 1-3, son dual aura 5 sommets, correspondant au 4
artes de G et les artes (1-2)-(2-3), (1-2)-(1-3), (2-3)-(3-4), (2-3)-(1-3)
et (3-4)-(1-3).
1. Proposez un codage pour reprsenter les graphes sur un ruban de
machine de Turing.
2. Ecrivez une machine de Turing polynomiale prenant en entre un
graphe cod selon le codage propos la question prcdente et
fournissant le graphe dual.
3. Montrez que le problme du cycle eulrien est quivalent celui
du cycle hamiltonien sur le graphe dual.

194

Complexit et Algorithmique avance

4. Quen concluez-vous ?
Le thorme dEuler nous apprend quun graphe admet un cycle
eulrien si et seulement si tous ses sommets sont de degr pair.
5. Ecrivez une machine de Turing polynomiale rsolvant le problme
de dcision du cycle eulrien.
6. Quen concluez-vous ?
Exercice 22 [Programmation linaire en nombres entiers]
La programmation linaire en nombres entiers (PLNE) consiste trouver
une
solution
entire

un
systme
du
type
Pn
/1
{mj

m},
optimale
pour
le
critre
j
i=1 ij i
P
max{ ni=1 i xi }, les mj , Mj , ij et i (1 j m, 1 i n) tant
donns ainsi que n et m.
1. Montrez que PLNE est N P.
On cherche maintenant construire une instance de PLNE partir
V
Wn
dune instance de SAT : m
j=1 i=1 li (les li tant des littraux). On
reprsentera une variable boolenne par une variable entire, la valeur
entire 1 reprsentant la valeur boolenne vrai, et la valeur entire 0 la
valeur boolenne faux.
1. Proposer une inquation imposant quune variable ait la valeur 0
ou 1.
2. Proposer une formule entire reprsentant la ngation dune variable
boolenne.
3. Proposer une inquation reprsentant les conditions que doivent
satisfaire les variables entires pour que la conjonction de dpart
soit satisfiable.
4. Proposer une instance de la PLNE satisfiable si et seulement si
linstance de SAT considre est satisfiable.
5. Aprs avoir propos des codages adapts de la PLNE et de SAT,
montrez que la transformation est polynomiale.
6. Conclure.
Exercice 23 [Coloriage des graphes] Un k-coloriage dun graphe
G = (V, E) est une application f : V [[1, k]] telle que
(a; b) E, f (a) 6= f (b). Autrement dit, chaque sommet on

Chapitre 12.

Compltude N P

195

associe une couleur, cest--dire un entier, de faon ce que deux


sommets adjacents soient toujours de couleurs diffrentes.
Nous considrons le problme de dcision Col suivant : tant donn
un graphe G et un entier k ;, existe-t-il un k-coloriage de G ?
1. Quel est le problme doptimisation associ Col ?
2. Expliquer pourquoi Col est NP.
On propose la transformation dune instance de 3-SAT en une instance
de Col suivante : chacune des n variables propositionnelles xi , on associe
trois sommets vi , si et nsi ; pour tout i, si et nsi sont relis ; si et nsi sont
relis vj pour tout i 6= j et j =
6 0 ; on introduit un sommet cj par clause ;
les ck sont tous relis un sommet v0 , et aux sommets correspondant
aux littraux nappartenant pas la clause ; les vj forment une clique.
On travaille sur un (n + 1)-coloriage.
3. Montrer que les vi (0 i n) sont tous de couleurs diffrentes.
4. Montrer que si et nsi (1 i n) sont de couleurs diffrentes, et
que leur couleur est soit f (vi ), soit f (v0 ).
5. Montrer que pour toute clause, le sommet associ est de la couleur
du sommet associ lun des littraux de la clause, et que cette
couleur nest pas f (v0 ).
6. En dduire que chaque clause contient au moins un littral dont le
sommet associ dans un (n + 1)-coloriage est dune autre couleur
que v0 .
7. En dduire que si le graphe associ est (n + 1)-coloriable, la formule
de dpart est satisfiable.
8. Montrer limplication inverse.
9. Montrer que la transformation est polynomiale.
10. Conclure.
Exercice 24
suivante :

Donner le graphe associ pour lexpression 3-SAT

(l1 l2 l3) (l1 l2 l4) (l2 l3 l5) (l3 l4 l5).


Exercice 25
Expliquer succinctement pourquoi la fonction de rduction dcrite
ci-dessus seffectue en temps polynomial.

Chapitre 13

Le pire nest pas toujours


certain
l convient de rappeler ici que cet ouvrage ne traite pour lessentiel que
de la complexit calculatoire dans le pire des cas. Or cette situation
nest pas ncessairement systmatique, il arrive mme pour certains
problmes et algorithmes quelle soit exceptionnelle (cest le cas par
exemple en programmation linaire pour lalgorithme du simplexe). Nous
allons traiter ci-aprs de cas dans lesquels "on peut faire quelque chose".
Dabord nous examinerons quelques cas particuliers de SAT, puis nous
nous intresserons au problme connu sous le nom de Problme du
sac dos qui, bien quappartenant la classe N PC prsente quelques
particularits qui permettent de le traiter de manire raliste.

13.1

Autour de SAT

13.1.1

Le cas 2-SAT

Proposition 13.1.1 2-SAT est dans P


Soit une instance de 2-SAT . Cest un ensemble de clauses contenant
chacune au plus deux littraux.
On peut dfinir un graphe G (X, ) associ ce problme comme
suit :
Les sommets de G sont associs aux variables de et leurs ngations ;
(X , X ) est un arc de G si et seulement si il y a une clause ( ) ou

198

Complexit et Algorithmique avance

( ) dans . En fait les arcs de G reprsentent les implications (=)


induites par les clauses de .
Par exemple, dans la clause (x1 x2 ) si on prend x2 = 0 ou x2 = f aux,
cest dire x2 alors pour que cette clause soit vrifie ( tant une forme
normale conjonctive 1 , chaque clause doit tre vrifie individuellement),
il faut que x1 = 1 ou vrai. Cest le sens des implications induites par
les clauses de . Ainsi, dans lexemple de la figure 13.1 aux clauses sont
associes des arcs comme suit :
Apparaissent alors des symtries dans G. Ainsi si (X , X ) est un arc
de G , alors (X , X ) lest aussi. Les chemins dans G sont donc aussi
des implications par transitivit. La figure 13.1 reprsente linterprtation
graphique de linstance :
= (x1 x2 ) (x1 x3 ) (x1 x2 ) (x2 x3 ) (x1 x3 ).
X1

X2

X2

X1

X3
X3

=(x1x2)(x1x3)(x1x2)(x2x3)(x1x3)

Figure 13.1 Interprtation graphique de 2-SAT

1. On aurait pu crire sous forme normale disjonctive, le passage dune forme


lautre se faisant par utilisation des formules dites de De Morgan
Rappel : (x y) = x y et (x y) = x y.

Chapitre 13. Le pire nest pas toujours certain

199

Les arcs de la figure sont induits par les clauses de de la faon suivante :
la clause (x1 x2 ) est reprsente par un arc (X1 , X2 ) ;
la clause (x1 x3 ) est reprsente par larc (X3 , X1 ) ;
la clause (x1 x2 ) est reprsente par larc (X1 , X2 ) ;
la clause (x2 x3 ) est reprsente par larc (X2 , X3 ) ;
la clause (x1 x3 ) est reprsente par larc (X1 , X3 ).
De plus, tout arc (X , X ), il faut ajouter son symtrique naturel
(X , X ). Ainsi, dans la figure 13.1, doit-on rajouter les arcs :
(X2 , X1 ) qui fait pendant (X1 , X2 ) ;
(X3 , X1 ) qui fait pendant (X3 , X1 ) ;
(X1 , X2 ) qui fait pendant (X2 , X1 ) ;
(X2 , X3 ) qui fait pendant (X3 , X2 ) ;
(X1 , X3 ) qui fait pendant (X3 , X1 ).
Do le thorme :
Thorme 13.1.1 : est non satisfiable si et seulement si il existe une
variable x telle quil existe un chemin de X X et de X X dans G .
Preuve 13.1.1 In absurdo : supposons quil existe un chemin de X
X et de X X dans G , et que puisse tre satisfaite par une assignation
vraie T des variables. Supposons que T(x) = vrai (le mme argument
tient pour T(x)). Puisquil existe un chemin de X X, et T(x) = vrai
tandis que T(x) = f aux, il doit exister un arc (X , X ) dans ce chemin
tel que T() = vrai et T() = f aux. Toutefois, comme (X , X ) est un
arc de G , il sensuit que ( ) est une clause de . Cette clause ne
peut tre satisfaite par T, il y a donc contradiction.
Inversement, supposons maintenant quil ny ait aucune variable avec
un tel chemin dans G . Nous cherchons une assignation de valeurs aux
variables entranant la valeur vrai, cest dire une assignation vraie
telle quil ny ait aucun arc de G qui relie vrai f aux. En itrant
la dmarche suivante : On part dun sommet X dont la valeur na
pas encore t dfinie et telle quil ny ait pas de chemin de X X .
On considre tous les sommets de G accessibles depuis X , et on leur
assigne la valeur vrai. Et on assigne la valeur f aux aux ngations des
sommets ainsi identifis. Ce sont tous les sommets partir desquels X
est accessible. Cette tape est bien fonde puisque sil y a des chemins de
X X et X , alors il y a aussi des chemins de X X et X (par
symtrie de G ), et donc un chemin de X X , ce qui est contradictoire

200

Complexit et Algorithmique avance

avec lhypothse.
De plus, sil existe un chemin de X un sommet dja marqu f aux lors
dune tape prcdente, alors X est un prdcesseur de ce sommet et
la variable associe doit aussi tre assigne la valeur f aux. On rpte
cette tape jusqu ce que tous les sommets soient assigns. Puisquon
suppose quil ny a pas de chemin de X X et inversement, tous les
sommets doivent tre assigns pour que lexpression soit satisfaite. Et
comme ces tapes sont toutes identiques, chaque fois quun sommet est
assign la valeur vrai, tous ses successeurs sont assigns vrai, et
inversement pour f aux, il ne peut y avoir darc de vrai f aux. Cette
assignation satisfait . CQFD.
Corollaire 13.1.1 2SAT P.
Preuve 13.1.2 Sachant que le thorme 13.1.1 nous dit quune condition
ncessaire et suffisante pour que soit non satisfiable est de trouver une
variable x telle quil existe un chemin allant du sommet X associ x
dans G au sommet X associ la variable x, la recherche dun tel chemin
peut-tre faite en temps polynomial. Par consquent la non-existence dun
tel chemin pour chaque sommet peut galement tre prouve en temps
polynomial. CQFD.

13.2

Cas particuliers de SAT

Certaines conformations de SAT permettent dobtenir des rsultats en


temps polynomial. En particulier, loccurence -ou non- de littraux sous
certaines formes (nie ou non nie) permet dlaborer des algorithmes
particuliers.

13.2.1

SET et SAT

Ainsi en est-il par exemple du problme dit du recouvrement (SET


covering problem en anglais). Ce problme est un cas particulier de
SAT pour lequel il napparat aucun littral ni dans les clauses. Une
faon simple de rsoudre est alors dassigner la valeur 1 une variable
dans chaque clause. Plus difficile est le problme de couverture minimale
qui se dcline en deux problmes. La minimalit peut tre comprise au
sens de linclusion. Il sagit alors de construire un monme constitu de

Chapitre 13. Le pire nest pas toujours certain

201

littraux exclusifs, savoir si on enlve un seul des littraux, il ny a plus


couverture. La minimalit peut aussi sentendre au sens du cardinal du
monme. Il sagit alors de trouver la couverture minimale (au sens de
linclusion comme prcis ci-dessus) mais comprenant un nombre minimal
de littraux, on lappelle couverture de cardinal minimal.
Exemple 13.2.1 Considrons la FNC suivante :
F = (x2 x3 x5 x6 ) (x1 x2 x4 ) (x3 x6 x7 )
Une couverture minimale au sens de linclusion serait par exemple :
x4 x5 x7 ; et une couverture de cardinal minimal : x2 x3
On peut remarquer quon dispose l dun algorithme de transformation
dune FNC en FND quivalente. Il sagit alors dnumrer toutes les
couvertures minimales dune FNC et de les utiliser comme monmes dans
la FND. Il sagit l dun algorithme qui est de complexit exponentielle,
et qui est "plus" que N PC puisque sa vrification nest elle-mme pas polynomilae, on nen connat pas dautre (voir [Lav74] pour lalgorithmique
affrente).

13.2.2

Validation, tautologie et non-satisfiabilit

On sait, par un thorme gnral dalgbre de Boole, que toute fonction boolenne f peut se mettre sous forme de FNC ou sous forme de
FND. On tend donc le vocabulaire propre SAT aux fonctions boolennes en gnral. Ainsi, on dit quune fonction boolenne est satisfiable
si il existe une assignation de valeurs A(xi ) {0, 1}n ; i = {1..n} aux
variables qui la composent de telle faon quon ait : f = 1. Cette situation
se note A |= f on dit aussi en logique que A est un modle pour f . Si
toute assignation est telle que A |= f , alors f est dit tre une tautologie
et on note |= f ; on dit aussi que f est valide. Ainsi, une tautologie est
satisfiable.
Proprit 13.2.1
{f {0, 1}n :|= f } = {f est non satisfiable}
Cette proprit est vraie pour toute expression boolenne. Ainsi lensemble des expressions boolennes prsente, par rapport la non-satisfiabilit, une certaine symtrie,

202

Complexit et Algorithmique avance

Exemple 13.2.2 Lexpression boolenne (x1 x2 ) x2 est satisfaite par


lassignation x1 = 1, x2 = 0 ou encore par lassignation x1 = x2 = 0.
De mme, considrons lexpression :
f = (x1 x2 x3 ) (x1 x2 ) (x2 x3 )
(x3 x1 ) (x2 x3 ) (x1 x2 x3 )
Il sagit dune FND, forme normale disjonctive. Il suffit quune assignation donne la valeur 1 lun des monmes pour quon ait f = 1.
Ici, quelle que soit lassignation de valeur quon donne aux variables, on
a toujours f = 1, il sagit donc dune tautologie : |= f . Lexpression
inverse f scrit :
f = (x1 x2 x3 ) (x1 x2 ) (x2 x3 )
(x3 x1 ) (x2 x3 ) (x1 x2 x3 )
Elle est contradictoire, cest--dire non-satisfiable. Quelle que soit une
assignation de valeurs {0, 1} chacune des variables, on aura f = 0.
Une tautologie donne sous forme FNC ou FND est reconnaissable sa
structure et cette proprit fournit donc un algorithme polynomial pour
identifier certains cas de non-satisfiabilit.

13.2.3

Clauses de Horn

Un autre cas particulier de SAT pour lequel on peut exhiber un


algorithme polynomial est celui des clauses de Horn (voir [Hor51]).
Il sagit l dune forme trs importante de SAT qui peut se rsoudre non
seulement polynomialement, mais en temps linaire.
En logique, et en particulier en calcul propositionnel, une clause de
Horn est une proposition du type :
(x1 x2 x3 ... xi ) = y,

(13.1)

o le nombre de propositions combines par est aussi lev que dsir


(et peut tre nul). Ces propositions jouent un rle fondamental, dans la
programmation logique par exemple et dans la conception des systmes
experts. Les formules de De Morgan font quon peut rcrire ces clauses
de Horn sous forme normale conjonctive -FNC- comme suit :
(x1 x2 ... xi ) y.

Chapitre 13. Le pire nest pas toujours certain

203

Lintrt des clauses de Horn rside dans la preuve logique de thorme


par calcul des prdicats du premier ordre. On peut rduire deux clauses
de Horn une clause de Horn. En preuve automatique des thormes,
on peut atteindre ainsi une trs grande efficacit en reprsentant les
prdicats sous forme de clauses.
Lune des plus brillantes utilisation des clauses de Horn est le langage
de programmation Prolog qui est bas sur lutilisation systmatique de
ces clauses.
Dans une clause de Horn, tous les littraux, sauf la rigueur un
doivent reprsenter des ngations de variables.
Exemple 13.2.3 (Clauses de Horn) (x) ;
x;
(x1 x2 ) ;
(x1 x2 x3 x4 ) ; (x1 x2 x3 x4 ) sont des clauses de Horn. La
dernire ne contient que des variables nies, les autres sont en fait des
implications puisquelles peuvent tre r-crites sous la forme
{(x1 x2 x3 x4 )} {(x1 x2 x3 ) = x4 }
Sous cette forme, une fonction f SAT qui est une conjonction de clauses de
Horn est rsoluble en temps polynomial. En effet, il existe un algorithme
simple dassignation de valeurs {0, 1} aux variables qui permet de dire
si une clause Horn est satisfiable -ou non- et donc qui permet aussi de
rpondre si SAT-Horn (SAT crit sous forme de clauses de Horn) qui est
une conjonction de clauses de Horn est -ou non- satisfiable.
Le principe de lalgorithme est assez simple. Il consiste en un premier
temps travailler clause par clause. Pour chaque clause, qui donc est
une implication comme montr ci-dessus en 13.1, on initialise le calcul
en assignant la valeur 0 toutes les variables. On considre alors une
implication fausse (x1 x2 xi xp ) = y, cest--dire une clause
(x1 x2 ... xi y) dans laquelle {i {1..p} N ; xi = 1 et y = 0}
tous les xi la valeur 1, donc les xi la valeur 0. Pour que la clause
prenne la valeur 1 il faut alors quon ait y = 1.
Lalgorithme classique de rsolution est de type dit glouton ; il procde
par agrgation progressive de rsultats partiels jusqu ce que, ne pouvant
plus progresser pour cause dpuisement des cas examiner, il fournisse le
rsultat final. Ce type dalgorithme est bas sur lhypothse quon passe
dune solution une meilleure par un processus continu et progressif,
sans saut, sapparentant par sa dmarche celle de la programmation
convexe.

204

Complexit et Algorithmique avance

Toutes les variables sont initialises f aux (respectivement 0).


On considre un ensemble V qui contiendra les variables valeur
vrai (respectivement 1).
Lalgorithme dmarre en testant une une les clauses non satisfaites
contenant un littral non ni, cest dire les implications. Considrons une
telle implication non satisfaite, elle est du type ((x1 x2 ... xm ) = y).
Dans une telle clause, tous les xi ont la valeur vrai (respectivement 1),
et y = f aux (resp. 0) puisque la clause est non satisfaite. On inclut alors
y dans lensemble V et on pose y = vrai (resp. 0). On opre ainsi de
proche en proche pour toutes les implications non satisfaites. Le cardinal
de V va croissant, le nombre de variables dune instance de SAT tant
fini, lalgorithme termine en ayant satisfait toutes les implications de
linstance de SAT considre. Par ailleurs, on vrifie par labsurde que
V est unique.
En effet, supposons que tel ne soit pas le cas, alors il existe un autre
tel ensemble V1 de variables de valeurs vrai (i.e. 1) qui vrifie aussi
toutes les implications de . On aurait alors V V1 . Or il ne peut y
avoir une clause implicative de qui soit la fois vrifie pour V1 et pas
pour V, par construction. Do :
Thorme 13.2.1 Linstance de SAT constitue de clauses de Horn
est satisfiable si et seulement si la valeur de vrit des variables de
lensemble V tel quobtenu comme dcrit par lalgorithme satisfait .
Preuve 13.2.1 (In absurdo) Supposons que tel ne soit pas le cas.
Toutes les implications de tant satisfaites, la seule possibilit est
quil existe une clause de type (x1 x2 ... xm ) non vrifie. La non
vrification de cette clause implique {x1 ; x2 ; ...; xm } V. Or tout ensemble V de variables valeurs vrai satisfaisant , si il existe, est tel
que : V V . Il sensuit quaucun ensemble contenant V ne peut vrifier
(i.e. satisfaire) cette clause.
La procdure dexamen de SAT-Horn propose ci-dessus procde par
examen squentiel de chaque clause, variable par variable, sans remise en
cause des choix dans lensemble V lors de la progression de la vrification.
Il sensuit que :

Chapitre 13. Le pire nest pas toujours certain

205

Thorme 13.2.2 SAT-Horn peut tre rsolu en un nombre


polynomial 1 doprations lmentaires en fonction du nombre de
variables.
Ou encore :
Thorme 13.2.3
SATHorn P

13.3

Le sac dos

Le problme dit du sac dos se prsente de la faon suivante. tant


donns n objets i de poids respectifs entiers pi ; i {1..n} N, pi N
et de valeur vi ; i {1..n} N, vi N et un sac dos dont la charge
est borne suprieurement un poids P, le problme est demporter
un maximum dobjets (sans rptition) en respectant au plus strict la
borne suprieure de poids et en maximisant si possible la valeur totale
emporte.
Le problme se dcline comme suit : tant donn un ensemble dobjets
I = {i1 ..in }; n N, le problme est alors :
Maximiser V =

j=k
X

vij , avec vi N|i {1..n} N, k n

(13.2)

j=1

sous la contrainte
j=k
X

pij P N ; pi N|i {1..n} N, k n

(13.3)

j=1

Sous cette forme, on reconnat l un problme classique de programmation linaire en nombres entiers. Toutefois pour notre propos on peut
se ramener une forme plus simple.
Max(k) : pi1 + pi2 + pij + + pik P N ; pi N|i {1..n} N,
(13.4)
En fait cel revient considrer que valeur et poids sont identiques
pour tous les objets ce qui ne change rien quant au fond. En effet, ce
1. Et mme ici linaire.

206

Complexit et Algorithmique avance

problme tant "plus simple" que le problme initial, le problme initial


ne peut tre de complexit infrieure.
Toutefois, si on veut poser le problme du sac dos (dsormais
SAD) sous forme de problme de dcision, il faut rintroduire une borne
minimale sous la forme suivante :
Problme 13.3.1 (SAD-dcision) Instance :
un ensemble dobjets I = {i1 ..in }; n N ;
un ensemble de poids des dits objets pi ; i {1..n} N, pi N pi
tant le poids de lobjet i, et deux bornes P et V.
QUESTION : Existe-t-il un sous-ensemble Ik I tel que :
j=k
X

p ij P

j=1

et

j=k
X

pij > V.

j=1

En vertu du principe qui veut que qui peut le plus peut le moins nous
nous en tiendrons la formulation 13.4 du problme.
Nous allons montrer que le problme dit du sac dos (dsormais
SAD) est dans N PC pour ce faire il nous faut auparavant revenir sur le
problme du recouvrement.
13.3.0.1

Recouvrement

On a vu (page 120) comment poser directement un problme de


recouvrement sous forme SAT. En effet, supposons un ensemble
E = {e1 , . . . , ei , . . . , en }, n N ;
P(E) et lensemble des parties de E, et S = {s1 , . . . , sj , . . . , sm } avec
S P(E), famille de sous-ensembles de E.
On associe alors chaque lment de E, ei , une clause Ci de SAT,
soit Ci = (si1 sik sip ) telle que sik Ci ; ei sik . Ainsi, on
associe une clause chaque lment de S. Le problme est alors
SATE = C1 Ci Cn .

(13.5)

Si on se contente dune couverture de E sans exprimer de contrainte


particulire, la rsolution du problme est non seulement polynomiale,
mais linaire en temps. Par contre si on souhaite obtenir une couverture

Chapitre 13. Le pire nest pas toujours certain

207

de cardinal minimal, ou une couverture de cardinal infrieur une valeur


donne, alors, dans le pire des cas, le temps de rsolution sexprime en
le nombre de cas possibles (on peut tre amen exhiber toutes les
couvertures) et donc dans ce cas le problme est dans la classe N PC.
Bien entendu, le problme reste entier si on veut seulement recouvrir
un sous-ensemble de E donn.
De mme on a k SAT SET. En effet, considrons un problme
k SAT, chaque clause contient exactement l variables, nies ou non, et
l clauses. Considrons lensemble U : |U| = l, alors chaque clause peut
tre associe un lment de U et chaque variable un sous ensemble
(ventuellement vide) de P(U). De plus la transformation est polynomiale.

Thorme 13.3.1
k SAT SET.
13.3.0.2

Retour SAD

Rappel : Pour montrer quun problme 1 est dans N PC, il faut


montrer quil existe un problme 2 N PC tel que 2 se rduise
polynomialement 1 .
Pour montrer que le problme du sac--dos est dans N PC, il suffit
de remarquer que sous sa forme restreinte 13.4, il contient le problme
du recouvrement qui est lui dans N PC comme on vient de le voir. Une
autre faon de faire est de considrer quil sagit dun cas particulier de
partitionnement (voir [GJ79] p.60 ainsi que [Pap95] p.202-203).
Lemme 13.3.1 Le problme du sac dos est dans N P
Preuve 13.3.1 En effet, cest vident ; vrifier quune somme de nombres
entiers est infrieure un entier donn se fait en temps polynomial. 
La deuxime partie de la dmonstration consiste dmontrer que SAD
se rduit polynomialement au problme du recouvrement.
Commenons donc par modifier la faon de poser le problme. Pour
ce faire nous utiliserons la forme simplifie 13.4 : Considrons tous les
"sacs possibles" cest--dire une famille S de sous ensembles des objets ;
S = {s1 , . . . , sj , . . . , sm } P(I). chacun de ces sous ensembles, on
associe son vecteur caractristique :

208

Complexit et Algorithmique avance


Xj = [x1 , . . . , xi , . . . , xn ]; n = |I| tel que :
i, j tq i = {1..n}, j 2n ; xi = 1 i Sj ; xi = 0 sinon

Pour un vecteur X donn, caractristique dun contenu possible du


sac, la valeur associe au dit sac est donne par
Val =

i=n
X

xi p(i); xi {0, 1}.

i=1

Et on doit avoir de plus pour chaque sous-ensemble sj dobjets


P
considr : Val = i=n
i=1 xi p(i) P. Si on ajoute comme contrainte :
Pi=n
x

p(i)

V
signifiant
en fait quon emporte un maximum dobjets,
i=1 i
on est revenu sur le problme classique du recouvrement aux notations
prs.
W
Il sagit alors de trouver un monme de la FND j=K
j=1 Cj avec
Vi=n
Cj =
i=1 xi ou une couverture de la FNC (SAT) obtenue par
application des formules de De Morgan, avec la contrainte supplmentaire
portant sur le cardinal infrieur ou gal P de la couverture. 
Do le thorme :
Thorme 13.3.2 SAD N PC
Ce problme prsente une particularit. Il est bien dans N PC mais
dune faon particulire sur laquelle nous revenons ci-aprs.

13.3.1

Pseudo-polynomialit

Supposons, dans SAD, sans que cela ait une rpercussion quelconque
sur la gnralit du problme, que tous les objets ont mme poids.
Considrons V(Pd, k) comme tant la valeur maximale atteinte en
mettant dans le SAD les k premiers objets dont la somme totale est
exactement Pd. Cela nous donne une faon de rsoudre le problme
SAD. En effet, il suffit dessayer toutes les sommes qui satisfont cette
contrainte, il y en a n.P. Le nombre doprations (additions de nombres
entiers) par essai est born suprieurement. Ceci nous donne un schma
dalgorithme qui consiste calculer chaque itration :
V(Pd, k + 1) = Max{V(Pd, k), pi+1 + V(Pd Pdi+1 , k)}

(13.6)

Chapitre 13. Le pire nest pas toujours certain

209

En initialisant le calcul par :V(Pd, 0) = 0Pd


Il serait fallacieux den dduire que SAD est dans P car le polynme
dpend de la valeur maximale du sac--dos et pas du nombre de variables
du problme. Il reste l une question rsoudre. tel que nous lavons pos,
SAD nest pas un problme de dcision. On sy ramne en considrant
une instance oui si on trouve une valeur V lensemble obtenu qui est
suprieure une valeur plancher donne.
On trouvera dans [HS74] une mthode de rsolution du problme
SAD qui est drive de la rsolution du problme du partitionnement
dont SAD est une variante. Une mthode plus gnrale de rsolution de
problmes dextrema en nombres entiers est donne par [Dan57].

13.4

Conclusion

Il faut faire trs attention avec les problmes de N P et les algorithmes.


En effet, considrons le problme bien connu de la programmation linaire
qui snonce comme suit :
Problme 13.4.1 (Programmation linaire)
Max C.X

(13.7)

A.X B
Avec
X = (x1 , x2 , , xj , xn ), xj R ;
A = [ai,j ], i = {1..m}, j = {1..n}, ai,j R ;
B = (b1 , b2 , , bi , bm ), bi R
Lalgorithme le plus utilis pour rsoudre ce problme, le simplexe 1 ,
est d Kantorovitch [Kan60, KM49] et Tolsto [Tol39] en 1939 et est
sans aucun doute le plus performant lheure actuelle pour les "cas
courants" (voir [KM72]). Pourtant dans le pire des cas, cet algorithme
est exponentiel et on en connat pourtant de polynomiaux (voir [Kha79,
Kar84a, Kar84b, CM89]) mais qui dans les cas "courants" sont moins
performants.
1. Le nom simplexe est d G. Dantzig qui a redcouvert lalgorithme en 1956
et la popularis sous ce nom. Rappelons pour mmoire quun simplexe de Rn est le
polytope form de n faces de Rn1 non dgnr.

Chapitre 14

Complexit et efficacit
usquici nous avons tudi la complexit thorique des algorithmes,
eu gard un modle abstrait, celui de la machine de Turing, ou
plus gnralement de la thorie des automates finis.
Malheureusement, il y a parfois (souvent ?) loin de la coupe aux
lvres. En particulier, en ltat actuel de la technologie, les algorithmes
sont cods en des langages qui permettent des ordinateurs dexcuter
les calculs induits par lesdits algorithmes. Lorganisation des calculs en
machine induite par la forme prise par lalgorithme peut jouer un rle
important dans lefficacit relle du programme dordinateur. Nous en
prendrons ici pour exemple un algorithme dont la complexit thorique est
trs bonne, marquant ainsi une avance significative sur les algorithmes
dja connus en la matire, mais dont lefficacit relle en machine laisse
dsirer. Il sagit de la multiplication matricielle, problme aux enjeux
majeurs pour le calcul.

14.1

Le produit matriciel

La problmatique du produit matriciel est bien connue de tous les


tudiants des matires scientifiques. En machine, multiplier entre elles
deux matrices A et B n lignes et n colonnes ncessite un programme
trois boucles imbriques du type :

212

Complexit et Algorithmique avance

...
Pour i de 1 n Faire
Pour j de 1 n Faire
Pour k de 1 n Faire
C(i,j)= A(i,k)*B(k,j)+C(i,j)
Fin_Faire;
Fin_Faire;
Fin_Faire;
...
Ce programme scrit simplement avec une complexit en O(n3 ) tant
pour les multiplications que pour les additions, soit un total de
2 n3
oprations arithmtiques scalaires.
Or depuis 1969 il existe un algorithme en O(nlog2 7 ) d Straen
[Str69]. La question qui se pose alors est de savoir quelle limite, ou
borne, on peut obtenir pour la complexit de la multiplication matricielle.
Si on considre deux matrices (n n), il sagit de deux tableaux de
nombres comportant chacun n2 lments. Par consquent, la multiplication matricielle ne peut tre de complexit infrieure O(n2 ), mais
lalgorithme de Straen montre que cette complexit est infrieure
O(n3 ), Winograd [Win70] amliore encore lgrement cette borne mais
en jouant uniquement sur les additions et soustractions. La question sest
donc naturellement pose de savoir si on pouvait encore descendre en
dessous du rsultat de Straen. On sait par les travaux de Pan que la
multiplication de deux matrices n n est de complexit suprieure ou
gale O(n2+ ) ;  tant lheure actuelle estim la valeur 0, 32 voir
[Pan78, Pan80, Pan81].
Malheureusement il sagit l de rsultats thoriques, totalement inapplicables en ltat cause du caractre rcursif 1 des algorithmes. Nous
allons nous intresser ici la mthode de multiplication de matrices de
Straen (voir [Str69]).
1. Il sagit ici de la rcursivit au sens informatique du terme, cest dire au sens
de procdure informatique, et non au sens mathmatique de ensemble rcursif ou
fonction rcursive.

Chapitre 14. Complexit et efficacit

14.2

213

La multiplication de Straen

Soient A et B deux matrices carres dordre 2.


On dcoupe les matrices A, B et la matrice rsultat C en quatre
quarts :
A=

a11 a12

B=

a21 a22

b11 b12

(14.1)

b21 b22
c11 c12

C=AB=

(14.2)

c21 c22
on calcule les 7 produits mi , i = 1 7

comme suit :

m1 = (a12 a22 ) (b21 + b22 )

m5 = a11 (b12 b22 )

m2 = (a11 + a22 ) (b11 + b22 )

m6 = a22 (b21 b11 )

m3 = (a11 a21 ) (b11 + b12 )

m7 = (a21 + a22 ) b11

m4 = (a11 + a12 ) b22

;
(14.3)

ensuite on value les cij en utilisant les relations :

14.3

c11 = m1 + m2 m4 + m6 ;

c12 = m4 + m5 ;

c21 = m6 + m7 ;

c22 = m2 m3 + m5 m7 ;
(14.4)

Complexit de la mthode de Straen

Pour deux matrices carres dordre N, avec N = 2n , la


complexit sexprime alors en :
O(Nlog2 7 )

(14.5)

O(N2,81 ).

(14.6)

cest dire
En effet ; la multiplication de 2 matrices deux lignes deux colonnes
ne ncessite que 7 multiplications scalaires au lieu des 8 habituelles. La
diffrence peut sembler mince, nous allons voir que tel nest pas le cas

214

Complexit et Algorithmique avance

ds lors que la taille des matrices augmente.


Puisquil y a 7 multiplications chaque niveau, si on note f (N) la fonction
reprsentative du nombre de multiplications, on a la relation 1 :
f (N) = 7 f (N 1) et f (0) = 1 = f (N) = 7N = Nlog2 (7)

(14.7)

Ces Nlog2 (7) sont infrieurs aux N3 classiques de la multiplication matricielle, mais le nombre dadditions est lui de 10, ce qui est suprieur aux 4
habituelles. Les 7 quations de prcompilation qui permettent de calculer
les produits ncessitent 10 additions/ soustractions scalaires. Les calculs
des ci,j ncessitent quant eux 8 additions/soustractions scalaires, soit
au total 18 additions/soustractions.
Si on raisonne non plus en termes scalaires mais en termes matriciels,
alors, ce sont 18 additions/soustractions de matrices (2n1 2n1 ) qui
sont effectues. En effet, les ai,j ; bi,j ; ci,j sont alors des matrices et non
plus des scalaires, chacune reprsentant un quart de la matrice dont
elle est issue, est donc de dimension (2n1 2n1 ). Laddition de deux
matrices n n ncessite n2 additions scalaires. Donc ici pour effectuer les
10 additions/soustractions de matrices (2n1 2n1 ), il faut pour chaque
addition/soustraction 22n2 additions. Sachant que pour additionner
deux matrices vides il faut 0 addition scalaire.
Notons T(n1) le nombre dadditions/soustractions effectues une
tape du calcul. Alors T(n1) est compose de deux parties. La premire
pour chacun des 7 produits, la deuxime pour les additions finales. Afin
de considrer le rle du nombre dadditions finales qui est susceptible
dvoluer par la suite, on le notera a. On en dduit :
T(n) = 7 T(n1) + a.22.(n1)

(14.8)

7.T(n1) = 72 T(n2) + 7.a.22.(n2)

(14.9)

7n1 .T(1) = 7n .T(0) + 7n1 .a.22.(nn)

(14.10)

soit pour n 1 ;

et pour n = 1 ;

soit encore
T(n) = 7

i=n1
X
i=1

1. rappel : 2log2 7 = 7

T(ni) + a.22.(n1)

(14.11)

Chapitre 14. Complexit et efficacit

215

Ce qui donne ici en rintgrant les 7n multiplications :


a
a
T(n) = (1 + ) 7n 22n
3
3

(14.12)

et en repassant en N, avec N = 2n ,La complexit totale en nombre


doprations arithmtiques scalaires de la mthode de Strassen est donc :
a
a
Tot(N) = (1 + ) Nlog2 7 n2
3
3

(14.13)

En notations de Landau, la complexit de la mthode de Strassen est en


O(nlog2 7 ) soit environ O(n2,807 ).

14.3.1

De la complexit lefficacit

Si on ne fait pas de diffrence entre multiplication et addition, en


considrant les formules initiales de Straen, on a a = 18 et donc une
complexit qui sexprime en :
7 Nlog2 7 6N2 .
Cherchons dterminer pour quelle dimension de matrice le nombre
total doprations scalaires, tous types confondus, devient plus petit par
la mthode de Strassen que par la mthode classique. En fait, il y faut :
2.N3 = 7 Nlog2 7 6N2

(14.14)

Si on ne distingue pas les multiplications des additions, il faut donc


atteindre des matrices de dimensions
1024 1024
pour que la mthode de Strassen devienne plus intressante que la
mthode classique. Par la mthode classique, en 2 N3 il y faut alors :
2 10243 = 2147483648 oprations scalaires et :
7 10242,807 6 10242 = 1966176780 oprations scalaires indiffrencies
pour la mthode de Straen. partir de cette dimension la mthode de
Strassen est donc plus conome en nombre doprations.
Cest le cas lorsque les scalaires constituant les matrices sont des
entiers.

216

Complexit et Algorithmique avance

Dans le cas de nombres rels, la multiplication cote beaucoup plus


cher en temps machine que laddition, et la mthode de Strassen savre
plus intressante beaucoup plus tt, en particulier dans le cas courant o
les scalaires constituant les matrices sont reprsents en virgule flottante.
Dans ce cas, en affectant trois units de temps calcul (trois cycles
dhorloge) une addition et cinq units une multiplication, la convergence est beaucoup plus rapide. Elle est obtenue pour N = 128, si de
plus, on utilise la version de Winograd (voir [Win70]) pour la mthode de
Straen, faisant passer le nombre a de 18 15, la convergence est obtenue
pour N = 110 avec respectivement 10648000 et 10672717 oprations
scalaires pour la mthode classique et lalgorithme de Straen.

14.3.2

La programmation rcursive

La programmation de cette mthode ne pose pas de problme particulier.Toutefois elle est rcursive et dun facteur de branchement de 7
(voir [Baa98] ainsi que [Ha04]).
Dans ces conditions, toute machine est rapidement sature, ce qui
interdit lutilisation pratique de cette mthode.
Par une dmarche analogue celle que nous avons eu en [Lav82,
Lav85] sur le problme dit des tours de Hano, nous allons montrer
comment gnrer automatiquement les formules de Straen pour toutes
les matrices carres dordre n. La mthode conduit, dune part, librer
la machine de cette gestion de la rcursivit tout en gardant les avantages
intrinsques de lalgorithme et, dautre part, donner la possibilit
de travailler sur des rgions non forcment contigus. Cette remarque
permet daccrotre potentiellement les avantages de la mthode de Straen,
et ouvre la voie une paralllisation massive en grain fin de celleci
[Ha04, LN05b, LN05a].
La gnration automatique des formules de Straen prsente un
double avantage :
1. elle permet daffranchir le systme dexploitation de la machine de
la gestion de la rcursivit inhrente la formulation de Straen ;
2. elle permet de plus, dexploiter au maximum le paralllisme des
machines mmoire distribue.
Lexprimentation a montr quen ltat actuel de la technique,il est
impossible de continuer par la mme mthode sur des matrices dordre

Chapitre 14. Complexit et efficacit

217

32. Cest ce qui a pouss Roch et Trystram [RT82] utiliser une mthode
composite pour multiplier des matrices de grandes tailles.
Nous donnons ci-aprs une version nouvelle de la mthode de Straen en liminant la rcursivit. Nous fournirons un moyen dobtenir
systmatiquement les formules de straen pour toute valeur de n.

14.4

Reformulation de la mthode de Straen

On donne ci-aprs une mthode itrative [BL01] permettant dobtenir


lexpression de tout scalaire cij en fonction des coefficients aij et bij des
matrices A et B. La marche suivre repose sur un rsultat que nous
noncerons la proposition (14.4.2). Nous tablissons, dans un premier
temps, la correspondance entre les lments cij de la matrice rsultat C
et les termes scalaires . Ensuite, nous dduisons pour chacun des n2
littraux () son expression en fonction des termes m conformment
la relation (14.18) ; et, du moment que ces derniers termes reprsentent
des produits des scalaires par , nous proposons enfin une mthode
iterative simple qui nous fournit lexpression des termes et en
fonction des lments aij et bij . Mais, avant tout, nous passons en revue
les diffrentes hypothses et, surtout, les notations que nous utiliserons
ultrieurement.

14.4.1

Hypothses et notations prliminaires

Nous ne considrons ici que des matrices carres de taille n gale


une puissance de 2 (i.e. n = 2k ). Nous dirons que n est lordre de la
matrice et k est son degr. Dans [Baa98], on montre comment ramener
un systme de matrices de tailles quelconques celui nonc cidessus.
Dans le schma du produit matriciel A B = C donn par Straen,
les expressions nonces par la relation (14.3) suivent toutes le mme
format :
mi = i i i {1, . . . , 7}
o le terme i (respect. i ) est une combinaison de certains quarts de
la matrice A (respect. B). Ainsi, si a est une matrice de degr k, pour
= {11, 12, 21, 22}, alors on note [a] la matrice de degr k 1 gale
au quart adquat de a. Lorsque p 6 k, on note [a]1 2 ...p
la matrice [ [[a]1 ]2 ]p de degr k p.

218

14.4.2

Complexit et Algorithmique avance

Proposition de Straen

Soient a et b deux matrices de degr k.


On note, pour tout = {1, . . . , 7} :
(a) =

, [a] , , {1, 0, 1}

(14.15)

la matrice de degr k 1 obtenue en combinant certains quarts de


la matrice a. Cette combinaison dpend de lindice pour lequel un
coefficient , {1, 0, 1} va permettre de retenir les quarts de la
matrice a necessaires lexpression de (a).
De mme pour :
(b) =

, [b] , , {1, 0, 1}

(14.16)

qui est une matrice de degr k 1 qui combine, moyennant lindice


et le coefficient , {1, 0, 1}, certains quarts de la matrice b. Il en
rsulte que les sept produits de Straen scrivent tous selon un mme
schma : m (a, b) = (a) (b) et qui sont des matrices de degr k 1.
Enfin, en combinant les sept produits, nous obtenons lexpression des
quatre quarts de la matrice rsultat, lesquels ont tous le mme format.
Ainsi pour , on pose :
(a, b) =

7
X

, m (a, b), , {1, 0, 1}

(14.17)

=1

qui est aussi une matrice de degr k 1 et qui correspond un des


quatre quarts de la matrice rsultat enonc par la relation (14.4), do
la proposition suivante que nous gnraliserons ensuite :
Proposition 14.4.1 Pour tout , [a b] = (a, b)

14.4.3

Gnralisation

Afin de gnraliser les formules de Straen (les relations (14.15)


(14.17)), notons m[] (a, b) le produit de [] (a) par [] (b) avec
i [1, 7] i [1, k], o [] (a) (respectivement [] (b)) est obtenu
en additionnant et/ou soustrayant certains lments de la matrice a
(respectivement b).

Chapitre 14. Complexit et efficacit

1 ...p1 p (a) =

p p ,p

219

p1 p1 ,p1

...

1 1 ,1 [a]1 ..p1 p ,

1 ...p1 p (b) =

p ,p
P

p1

p1 ,p1 . . .

1 ,1 [b]1 ..p1 p ,

m1 ..p1 p (a, b) = 1 ..p1 p (a) 1 ..p1 p (b)


qui sont des matrices de degr k p. On dduit de ces dfinitions que :
1 ...p p+1 (a) = p+1 (1 ...p1 p (a)),
1 ...p p+1 (b) = p+1 (1 ...p1 p (b)).
On pose aussi, pour 1 , 2 , . . . , p p ,
1 2 ...p (a, b) =

1 ,1

2 ,2 . . .

p ,p m1 2 ...p (a, b)

qui est aussi une matrice de degr k p.


Proposition 14.4.2 [a b]1 2 ...p = 1 2 ...p (a, b)
Preuve 14.4.1 Par induction sur p.
Pour p = 1, cest la proposition de Straen.
Par hypothse dinduction,
[a b]1 2 ...p p+1

= [[a b]1 2 ...p ]p+1


= [1 2 ...p (a, b)]p+1 ;

Soit aussi :
[a b]1 2 ...p p+1 = [

1 ,1

2 ,2 . . .

p ,p m1 2 ...p (a, b)]p+1

X
1

1 ,1

2 ,2 . . .

X
p

p ,p [m1 2 ...p (a, b)]p+1

220

Complexit et Algorithmique avance


Par la proposition de Straen,
= [1 2 ...p (a) 1 2 ...p (b)]p+1

[m1 ...p (a, b)]p+1

= p+1 (1 2 ...p (a), 1 2 ...p (b))


=

P7

p+1 =1 p+1 ,p+1

mp+1 (1 ...p (a), 1 ...p (b))


Mais
mp+1 (1 ...p (a), 1 ...p (b)) = p+1 (1 ...p (a))
p+1 (1 ...p (b))
= 1 ...p p+1 (a)
1 ...p p+1 (b)
= m1 ...p p+1 (a, b)
On a donc
[m1 2 ...p (a, b)]p+1

7
X

p+1 ,p+1 m1 2 ...p p+1 (a, b)

p+1 =1

et
[a b]1 2 ...p p+1

1 1 ,1

=
P

p p ,p

2 2 ,2

...

p+1 p+1 ,p+1 m1 ...p+1 (a, b)

= 1 2 ...p p+1 (a, b)

14.5

Lalgorithme

14.5.1

Ide de base

De cette tude, on dduit, une procdure itrative qui fournit lexpression de tout scalaire cij en fonction des coefficients aij et bij des matrices a
et b. Lide de la mthode repose sur le rsultat de la proposition (14.4.2).
On peut ainsi tablir, dans un premier temps, la correspondance entre les

CONCLUSION

221

lments cij de la matrice rsultat C et les scalaires (a, b). Ensuite, nous
dduisons pour chacun des n2 littraux () son expression en fonction
des termes m (a, b) conformment la relation (14.18) ; et du moment
que ces derniers termes reprsentent des produits des scalaires (a) par
(b), nous donnons, enfin, lexpression des termes (a) et (b) en
fonction des lments aij et bij .

14.5.2

Obtention des produits de Straen

Lalgorithme procde en trois phases. La premire phase va ncessiter


k tapes. A chaque tape p, 1 p k, nous dterminons le p me lment
p dun littral tel que le terme (a, b) soit associ un coefficient
cij = [a b] . A la deuxime phase, chaque littral est examin en k
tapes, afin de lui associer la liste des littraux . Alors que la troisime
et dernire tape va affecter chacun des littraux sa liste dlments
aij et bij . Le nombre des tapes de cette dernire phase varie dun littral
un autre ; nanmoins elles restent bornes suprieurement par kn2 .

14.6

Rgles dobtention des termes

En appliquant lalgorithme prsent par la figure , nous sommes en


mesure de fournir lexpression de nimporte quel lment cij de la matrice
rsultat dune manire singulire.

Conclusion
On obtient ainsi systmatiquement les coefficients dun produit matriciel de Straen. La programmation cependant se heurte de nombreuses
difficults. Lutilisation du paralllisme permet den renouveler la problmatique [HL03, LN05b, LN05a] Cette nouvelle formulation, tout comme
la mthode itrative directe (cest--dire, ne devant rien la drcursivation) de rsolution du problme des Tours de Hano [Lav82, Lav85],
est libre de la rcursivit. Ces rsultats posent de manire nouvelle
le problme de lcriture itrative systmatique de tous les algorithmes
donns de faon rcursive lorsquune telle drcursivation est possible (ce
qui nest pas toujours le cas, du moins sans pile intermdiaire), et une
amlioraton des conditions dexcution lorsquon ne peut liminer toute
la rcursivit. Le lecteur intress consultera avec beaucoup de profit la
thse de M. Ha Quoc Trung (voir [Ha04]).

Cinquime partie

Rsoudre quand mme les


problmes difficiles

Chapitre 15

Des algorithmes pour


problmes N PC
a plupart des problmes de la classe N PC sont des problmes
combinatoires. Il sagit le plus souvent de trouver une configuration
particulire dans une multitude de possibles.

15.1

Lexhaustivit des procdures

Ainsi, dans un problme dit de voyageur de commerce (V.R.P.) 1


n villes, il y a (n 1)! possibilits, et pour faire jouer un ordinateur
aux checs en examinant toutes les combinaisons possibles, on sait quil
y en a de lordre de 10110 ce qui, trs vite dpasse tout ce quon peut
imaginer (Le nombre dlectrons dans lunivers est de lordre de 1090 ) et
nest pas accessible quelque machine actuelle ou venir que ce soit par
des mthodes exhaustives, les seules dont on soit sr quelles donnent
une solution exacte. On est confront ce quon appelle "lexplosion
combinatoire" des possibles.
Dans ce contexte, on a mis au point des mthodes destines lutter
contre lexhaustivit des procdures, des mthodes dites dnumration
implicite. Lide en est de ne pas numrer tous les cas possibles, cest-dire de se donner des critres qui, dans la progression du calcul permettent
dabandonner des branches entires de larbre des calculs possibles.
1. VRP signifie Voyageur Reprsentant Placier

226

Complexit et Algorithmique avance

Il en est ainsi de nombre dalgorithmes, tous bass sur des heuristiques.


Le critre de choix est le plus souvent une fonction dvaluation.

15.1.1

La mthode PSEP

La premire et sans doute la plus ancienne de ces mthodes est la


mthode dite par sparation et valuation progressive, PSEP, elle est
due Bernard Roy et Michel Simmonard en 1961 [RS61] et est expose
systmatiquement dans louvrage [Roy70]. Elle est connue sous le nom
amricain de Branch and Bound , redcouverte en 1963 voir [LMSK63] et
expose dans [LW66]. On en trouvera un exemple facilement accessible
et pdagogique dans [FRT76]. Ce type de mthode est aussi trs utilis
en programmation linaire en nombres entiers.
Nous allons prsenter la mthode partir dun exemple tir du tome
3 de [R+ 85] p. 241.
Exemple 15.1.1 Soit rsoudre un problme de VRP cinq villes dont
les cots de transit, non symtriques, dune ville lautre sont donns
par le tableau suivant :

C=

11

13 11

13 15 23 11

13

13 15 15

(15.1)

Le cot de transfert de la ville 3 la ville 2 est de 15 et celui de 2 3


est de 13, et ainsi de suite.
Le problme exprim en termes de thorie des graphes consiste ici
trouver un circuit hamiltonien de cot minimal, le cot tant obtenu en
faisant la somme des valuations des arcs composant ledit circuit. Dans le
cas prsent, le nombre de circuits diffrents possibles est 4!, cest dire
ici 24.
15.1.1.1

Le principe de sparation

La mthode procde dabord par sparation de lensemble des possibles. Ici, le principe de sparation porte sur : "on prend un arc ou

Chapitre 15. Des algorithmes pour problmes N PC

227

non" dans le circuit hamiltonien. Ainsi, supposons quon prenne larc


(2, 1), lensemble des circuits hamiltoniens possibles est spar en deux
sous ensembles, savoir le sous-ensemble de circuits qui contiennent
larc (2, 1) et ceux qui ne le contiennent pas. Le choix de larc sur lequel
sparer est guid par le calcul de la fonction dvaluation.
15.1.1.2

Lvaluation

Si un circuit hamiltonien contient larc (2, 1), il sera de valeur ncessairement suprieure 5. On a choisi un des arcs de valuation minimale.
Larc (4, 5) de valuation 3 pourrait paratre un meilleur choix, mais le
choix des arcs se fait en tenant compte -dans la mesure du possibledes choix induits par la suite. Si on considre lensemble des circuits ne
contenant pas larc (2, 1), il est toutefois ncessaire que les sommets 2
et 1 fassent partie du circuit, sinon il ne serait plus hamiltonien. Ledit
circuit aura donc pour valeur une quantit suprieure ou gale celle du
chemin de valeur minimale reliant les deux sommets et ne contenant pas
larc (2, 1).
Fonction dvaluation : En fait, pour les deux sous ensembles de
circuits possibles, on borne infrieurement les valeurs espres pour les
circuits. Cest la fonction dvaluation qui permet ce bornage . Ici,
on procde par normalisation de la matrice en faisant apparatre un zro
par ligne et par colonne en retranchant tous les plus petits lments en
ligne puis en colonne de faon aboutir un zro au moins par ligne et
colonne.
Ainsi en appliquant ce procd la matrice initiale, on obtient :
.

C=

00

02

06

10

00

00

02

00

00

02

04

C(2,1) = 3

00

00

02

00

02

(15.2)
On a fait apparatre l la matrice C(2,1) de choix associe au sous ensemble
de circuits tels quils contiennent tous larc (2, 1). les nombres en exposant

228

Complexit et Algorithmique avance

sont des "regrets", savoir le cot supplmentaire ajouter celui du


circuit en cours de construction si on ne fait pas ce choix l. Ici, sur
la matrice C, si on ne choisit pas larc (2, 1), le cot est au moins
de 6 units supplmentaires. La somme des valeurs retranches pour
normaliser la matrice C donne la valeur qui y est associe, soit ici 37. La
valuation associe lensemble des circuits qui ne contient pas larc (2, 1)
est donc 37 + 6 = 43, la valeur 6 tant le "regret" associ au non-choix
de larc (2, 1). On recommence le mme raisonnement partir de C(1,2) .
Cette matrice comporte un zro par ligne et colonne, elle na donc pas
tre normalise, et le choix de larc (1, 3) est celui qui entrane le moins
de "regret". Ne pas choisir larc (1, 3) augmenterait la valeur du circuit de
4 units, soit une valuation de 37 + 4 = 41 pour ce choix. do la nouvelle
matrice C(2,1);(1,3) aprs calcul des nouveaux regrets et celle dduite du
choix de larc (3, 5) qui prsente ici le regret maximum.

C(2,1);(1,3) =

08

06

06

08

C(2,1);(1,3);(3,5) = 4

(15.3)
La matrice C(2,1);(1,3);(3,5) ncessite une normalisation en retranchant
6 la ligne repre 4, ce qui amne le cot du choix correspondant
37 + 6 = 43. Or, on a un sous ensemble valu 41 (celui ne contenant
pas larc (1, 3)). Il nous faut donc repartir de la matrice correspondante
et faire le choix de NE PAS prendre larc(1, 4), cest un saut dans larbre
des solutions ; soit :
.

02

00

00 C(2,1);(1,4) =

C(2,1);(1,3) = 3

02 00

00

00

00 00

02

00

02

(15.4)
Le choix se porte alors sur larc (1, 4) qui prsente le regret maximal,
do la matrice C(2,1);(1,4) de (15.4). La matrice C(2,1);(1,4) prsente un
zro par ligne et par colonne, elle na pas besoin dtre normalise, de

Chapitre 15. Des algorithmes pour problmes N PC

229

plus il existe un choix cot nul, celui de larc (4, 3) qui conduit la
matrice C(2,1);(1,4);(4,3) :
.

C(2,1);(1,4);(4,3) = 3

(15.5)

Ce qui conduit au circuit [5, 2, 1, 4, 3, 5].


Larborescence dveloppe est donne par la figure 15.1 :

Matrice C

37

(2,1)

C(2,1)

non (2,1)

37
C(2,1)!;(1,3)

43

(1,3)

non (1,3)

37

(3,5)

C(2,1)!;(1,3)

41

(1,4)
non (3,5)

non (1,4)
C(2,1)!;(1,4)

43

45

41

(4,3)
C(2,1)!;(1,4)!;(4,3)

41

43

non (4,3)
43

Figure 15.1 Arborescence PSEP

Lintrt de la mthode est explicite lorsquon examine larborescence


de la figure 15.1, on y examine 11 choix possibles alors quun examen
exhaustif de tous les choix possibles nous conduit au mieux 24. Des

230

Complexit et Algorithmique avance

mthodes utilisant une fonction dvaluation plus sophistique (en combinant borne suprieure et borne infrieure par exemple, ou en calculant
demble une bonne solution ralisable) peuvent permettre de limiter
encore lnumration. Lune de ces mthodes consiste, partir dune
"bonne" heuristique, construire ds le dpart un cicuit hamiltonien dont
la valeur va servir de borne "dlagage".

15.2

Le cas des jeux

En ce qui concerne certains jeux comme le jeu dchecs, le tic-tac-toe,


le jeu dit de nim ou de Marienbad , on peut reprsenter les diffrentes
situations de jeu par un arbre. Au lieu dexaminer l aussi toutes les
situations possibles et doprer un choix de stratgie gagnante, on peut
utiliser les mmes ides que dans la mthode PSEP.
Exemple 15.2.1 Considrons pour illustrer le propos, une variante du
jeu de nim. Deux joueurs prennent alternativement des lments sur une
pile. Chaque joueur est oblig de prendre au moins un lment et au plus
trois chaque tour. Le gagnant est celui qui prend le dernier lment
de la pile, cest dire celui qui laisse la pile vide. De plus, le gain du
gagnant est proportionnel au nombre dlments quil a pris au dernier
tour.
Supposons quil y ait n lments au dbut. Le premier joueur a trois
choix possibles, et trois seulement ; prendre un, deux ou trois lments
sur la pile. De mme, le second joueur a les mmes possibilits de choix en
fonction de ce qui reste dlments dans la pile. Les choix associs peuvent
tre reprsents par un arbre ternaire (voir figure 15.2, on suppose quil
y a 6 lments dans la pile).

On a fait figurer en ovale les rsultats des choix du joueur qui dmarre
et en carrs ceux du suivant. Ainsi le joueur qui commence est sr de
gagner sil ne prend quun seul lment chaque tour, il est alors sr de
gagner au moins 1 dans le pire des cas, quoi que joue son adversaire. On
considre toujours dans ce genre de jeu que les deux adversaires jouent
de faon optimale.

Chapitre 15. Des algorithmes pour problmes N PC

6
A

Niveau Max

E 1

Niveau Max

1
4

F 2

G 3

H 4

3
Niveau Min

231

2
L

Niveau Min

3
I 3

J 2

1
2

Figure 15.2 Arbre partiel du jeu de nim


Dans cet exemple, appelons les joueurs Max pour celui qui commence
et Min son adversaire. Le joueur Max cherche maximiser la fonction
"gain" et le joueur min la minimiser, ou linverse, suivant la nature du
jeu.
Recalculons les "gains" de Max de la faon suivante :
on suppose que Min joue de faon optimale pour lui ;
on calcule dans chaque sommet le gain espr pour Max sachant
que Min joue de faon optimale ;
en B, il reste 3 objets dans la pile, Min va donc prendre les 3 objets
et son gain sera de 3 et ce sera la perte de Max ; le "gain" de Max
en B est alors 3 ;
en C, il reste 4 objets, Min ne peut en prendre au plus que 3 ce qui
est sa stratgie optimale, Max ne pouvant plus alors quen prendre
1 et ne gagner que 1. Le "gain" de Max est alors 1 au mieux ;
et ainsi de suite, larborescence de jeu se trouve alors value comme
dans la figure 15.3.

232

Complexit et Algorithmique avance

6
A
2

3
B

-3

Niveau Max

E 1

Niveau Max

1
1

F 2

G 3

H -1

3
Niveau Min

-1

-1

2
L

-2

Niveau Min

3
I 3

J 2

1
M

-3

Figure 15.3 Arbre partiel du jeu de nim r-valu

Le jeu de Max consiste alors prendre 2 objets au premier coup, cest


dire de jouer en C dans larborescence. Alors Min jouera en E, cest
dire prendra 3 objets et au coup suivant, Max ne pourra plus en prendre
quun, mais il est assur de gagner sil joue en C au premier coup, quoi
que fasse son adversaire.
Cest cette faon de faire qui va nous guider dans lalgorithme. Supposons quun arbre de jeu soit celui de la figure 15.4.

15.2.1

La mthode alpha/bta

Le raisonnement va utiliser les mmes principes que dans la mthode


PSEP. Lide est de limiter autant que faire se peut lnumration des

Chapitre 15. Des algorithmes pour problmes N PC

233

A
Niveau Max
1

Niveau
Min

-3

M
6

F
Niveau Max

-3

C
4

N
-1

L
6

-2

K
-6

-3

-3

Niveau
Min

D
1

-3

-3

Figure 15.4 Arbre de jeu valu pour alpha/bta

situations possibles. Ainsi, dans le jeu dchec, si on considre toutes


les pices en position de dpart, le nombre total de parties possibles est,
comme nous lavons not ci-dessus, de lordre de 10110 , ce qui est suprieur
au nombre dlectrons dans lunivers (environ 1090 ). Dans ces conditions,
il est exclu, pour faire jouer un ordinateur aux checs, quelle que soit sa
puissance, dnumrer tous les cas possibles et de choisir celui qui nous
intresse. Plusieurs algorithmes existent pour limiter lnumration, /,
SSS , Scout qui est une combinaison des deux prcdents. Nous allons
nous intresser lalgorithme dit / en ce quil est dans la filiation
directe du prcdent et nest pas propre au jeu dchecs contrairement
aux algorithmes SSS et Scout.
Dans la figure 15.4, lvaluation des situations de jeu a t faite du
point de vue du joueur Max. Ainsi au dmarrage, tant quon na pas
atteint un sommet pendant (une feuille de larbre), on ne peut rien
valuer.
valuation de C, coupe Alpha dans un premier temps, lalgo-

234

Complexit et Algorithmique avance


rithme va dcrire la branche [A,B,C,D], comme dans une PSEP
quand on opre une descente en profondeur au dbut pour obtenir
une premire borne. Ici, en D, on value les deux cas possibles, soit
4 et 1. Comme D est un nud Min, on prend le minimum, soit 1
ici, valeur qui est "remonte" en C. De C, on explore E qui est sur
le niveau Min. De E on value une feuille de valeur -3. Ce nest
pas la peine de continuer ; la valuation de E ne peut tre qugale
ou infrieure 1 -3, y aurait il un grand nombre dautres feuilles
pendantes E, ce ne serait pas la peine de les valuer puisquau
nud C qui est un niveau Max, on a dja une valeur 1 qui est
suprieure -3, les feuilles pendantes E ne joueront donc plus de
rle dans lvaluation de la racine de larbre, on peut les "laisser
tomber". Cest une coupe ALPHA marque sur la figure 15.5 par
un double trait bleu. Le nud C est alors compltement valu ;
valuation de B, coupe Bta C tant valu, on "remonte" la
valeur trouve en B, au niveau suprieur qui est un niveau Min. Le
nud F de niveau Max est gnr et valu provisoirement 1. Le
nud G de niveau Min est gnr et valu lui aussi provisoirement
1. Les deux feuilles pendants G sont de valuations 2 et 4,
G tant de niveau Min, la valeur pertinente est 2, donc F, qui
est de niveau Max prendrait la valeur au moins 2, valeur qui ne
saurait influer sur celle de B puisque B est de niveau Min et que
Min(1, 2) = 1. Par consquent lexploration de F est termine, il
est inutile dexplorer les autres sous-arbres de racine F il sagit
l dune coupe Bta. Lvaluation de B est dfinitive, et elle est
remonte A qui est sur un niveau Max.
valuation de I et coupe Alpha le nud I de niveau Min est
provisoirement dot de la valuation 1 de A, et gnre le nud J de
niveau Max qui est galement provisoirement dot de la valuation
1. J gnre le nud K de niveau Min qui est galement dot de la
valuation 1 laquelle correspond un nud de niveau Max.
valuation de K Le nud K gnre une feuille de valeur 3
(ou 0, suivant). Par consquend K qui est de niveau Min ne peut
pas gnrer une valeur suprieure 1, lexploration de K peut

1. Il en irait tout autrement si on commenait par explorer le nud de valeur 2,


comme cette valeur est suprieure celle de B (qui est 1), et que B est sur un niveau
max, il faudrait continuer lexploration de E.

Chapitre 15. Des algorithmes pour problmes N PC

235

donc cesser et il est inutile de gnrer tous les sous arbres de


racine K 1 ;
valuation de J Le nud J gnre la feuille L de valeur 6, J
tant sur un niveau Max, on laisse la valeur 3 J qui est ainsi
compltement examin et valu, cette valeur est remonte en I ;
le nud I tant sur un niveau Min, sa valeur dtermine par les
autres sous arbres de racine I ne peut tre quinfrieure 3 et ne
peut donc influer sur la valeur de A (qui est 1) et qui est de niveau
Max. Le sous arbre de racine M ne sera donc pas gnr ni valu,
cest une coupe Alpha.

A
Niveau Max
1

Niveau
Min

-3
J

M
6

F
Niveau Max

-3

C
2

N
-1

L
6

-2

K
-6

-3

-3

Niveau
Min

D
1

-3

-3

Figure 15.5 Arbre de jeu et coupes alpha/bta


La racine A de larbre est donc value, elle a la valeur 1 qui est le gain
que peut esprer Max sil "joue" B (puis D si Min joue C) 2 .
1. Ici on a pris un exemple simple pour les besoins de lexpos, mais larbre pourrat
tre beaucoup plus important, quon pense par exemple au droulement dun arbre de
jeu dchecs sur 7 niveaux comme cela se fait dans certains programmes dchecs.
2. Si, par inadvertance Min joue F, alors le gain sera suprieur, mais on suppose
ici que Min aussi joue de faon optimale.

236

Complexit et Algorithmique avance

Sur la figure 15.5, dduite de la figure 15.4 on a fait figurer en noir


les nuds non gnrs, donc "conomiss" dans lnumration implicite
et en bleu (deux traits courts forts) les coupes Alpha, et en rouge les
coupes Beta (un seul trait court fort).
On remarquera que les coupes dpendent du parcours de larbre des
solutions. Lobtention, ds le dbut dune bonne borne est dcisif. Toutes
les amliorations qui ont t apportes la mthode PSEP cherchent
obtenir ds le dpart une bonne borne, la plus proche possible de
loptimum car cest ce qui guide la recherche et limite lnumration.
Dans la mthode PSEP, en gnral, on peut obtenir une bonne borne en
oprant une "descente" directe dans larbre de faon obtenir une bonne
solution partir dune heuristique. Il nen va pas de mme dans le cas des
jeux. Pour le jeu des checs par exemple, il est hors de question doprer
pareillement, on est oblig de limiter la profondeur de larborescence et
cette profondeur participe la puissance du programme mis en jeu. Dans
ce cas, il est dcisif davoir une bonne fonction dvaluation dun coup,
ce qui est du ressort des joueurs.

15.3

En guise de conclusion

Comme on peut le voir ci-dessus, on nest pas totalement dsarm


lorsquil sagit de rsoudre des problmes de la classe N PC. Dans le
cas de lexplosion combinatoire, ces mthodes et dautres qui en sont
inspires (A , AB , ...) peuvent rendre de grands services. Toutefois,
elles ne modifient pas la complexit thorique des problmes abords
et ne permettent que trs rarement daborder des grands problmes
(du moins en squentiel), cest dire plusieurs centaines de variables.
Dautres mthodes existent pour dautres contextes en programmation
mathmatique par exemple, mthodes TABOU ou mthode dite de
RECUIT SIMUL lorsque la fonction optimiser nest pas convexe.
dautres mthodes encore sont spcialises pour des cas particuliers de
problmes. Dans le chapitre 16 nous prsentons une autre mthode plus
gnrale pour aborder la rsolution des problmes de NPC, mais aussi
pour amliorer les performances des algorithmes plus classiques, voire
pour rsoudre des problmes quon ne sait pas rsoudre autrement.

Chapitre 16

Introduction
lalgorithmique probabiliste
ourquoi les algorithmes probabilistes ou comment lalatoire
apporte un plus ?
Lalatoire est une ressource algorithmique des plus intressantes dun
point de vue oprationnel. Il est donc naturel dexplorer certaines techniques dveloppes par lalgorithmique avance. Lanalyse de complexit
(au sens mesure de performances) peut cependant tre plus dlicate. On
examinera certaines techniques danalyse (e.g. dfinir la bonne variable
alatoire en est lexemple le plus concret).
Les algorithmes probabilistes sont souvent plus simples que les algorithmes dterministes analogues qui traitent le mme problme. Cest
donc lopportunit de discuter dalgorithmes astucieux. Le plan du chapitre sera de suivre ces remarques. On sattachera illustrer les techniques
les plus importantes en tudiant des algorithmes-exemples et on passera
en revue diffrents domaines ou champs dapplications o les algorithmes
probabilistes se montrent les plus efficaces.

16.1

Des algorithmes aux parfums de casinos

Les algorithmes probabilistes ont pour caractristique de mettre le


hasard profit en faisant des choix alatoires. Il convient toutefois de
prciser que la dfinition dalgorithme ncessite dtre revue. En effet,
une consquence de lutilisation du hasard est que deux excutions dun

238

Complexit et Algorithmique avance

algorithme probabiliste avec les mmes donnes dentre peut prendre


un temps dexcution diffrent et ventuellement donner des rsultats
diffrents.
On autorisera donc quun algorithme puisse, avec une faible probabilit, renvoyer une mauvaise rponse ou ne jamais terminer.
Un algorithme probabiliste sera donc, analogue un algorithme dterministe, une suite finie dinstructions prcises qui rsoud un certain
problme mais pour lequel son excution pour un jeu de donnes dentres
sera mene plusieurs fois jusqu ce que lexcution termine ou bien que
la solution soit considre comme correcte.
Ceci nous amne dfinir trois types dalgorithmes probabilistes :
les algorithmes numriques probabilistes ;
les algorithmes de type Monte Carlo ;
les algorithmes dits de Las Vegas.
Les deux premiers types dalgorithmes se caractrisent par le fait quils
terminent, les algorithmes de type Las Vegas se caractrisent par le fait
quil fournissent toujours une rponse correcte (sils terminent).
Exemple La Coupe de Monde de Foot.
Afin dillustrer le comportement des diffrents types dalgorithmes, on
peut illuster leur caractristique sur la rponse la question suivante :
Q En quelle anne la France a-t-elle accueilli la Coupe du monde de
Foot ?
R (numrique probabiliste) entre 1994 et 1998, entre 1995 et 1999,
entre 1997 et 2001, entre 1992 et 1997, entre 1996 et 2000 ;
R (Monte Carlo) 1998, 1998, 1998, 1998, 1998, 1994, 1998, 1998, 2002,
1998 ;
R (Las Vegas Carlo) 1998, 1998, 1998, Dsol, 1998, 1998, ...,
bus error, 1998, 1998.
Comme nous pouvons le constater, lalgorithme numrique probabiliste
fournit des rponses approximatives (i.e. intervalles contenant la bonne
rponse) avec une probabilit derreur. Lalgorithme de type Monte Carlo,
quant lui, donne une rponse prcise mais qui peut parfois tre errone.
Enfin, lalgorithme de type Las Vegas trouve toujours la bonne rponse
mais il est parfois incapable de finir le calcul.

Chapitre 16. Introduction lalgorithmique probabiliste

16.1.1

239

Algorithmes numriques probabilistes

Un algorithme numrique probabiliste produit toujours une rponse


approximative, mais sa prcision est dautant meilleure en moyenne que
le temps dont lalgorithme dispose est grand.
Exemple 16.1.1

1. Techniques de simulation ;

2. Estimation dune valeur numrique (valeur dune intgrale, nombre


dobjets dans un ensemble trs grand, nombre dobjets distincts
dans un ensemble trs grand, etc.) ;
3. Interpolation, extrapolation.

16.1.2

Algorithmes de Las Vegas (deux cas distinguer)

Ces algorithmes ne retournent jamais de rponse inexacte mais ils


peuvent ne pas trouver de rponse.
La probabilit de succs dun tel algorithme est dautant plus
grande que temps dont il dispose est grand ;
La probabilit dchec peut tre rduite arbitrairement.
Exemple 16.1.2 a) problme des 8 reines ;
b) factorisation dun entier.
Les algorithmes dits Sherwood ou Las Vegas de deuxime ordre
sont une classe dalgorithmes de Las Vegas qui retournent toujours une
rponse et qui est toujours exacte. En effet, ces algorithmes exploitent
la remarque suivante : sil existe un algorithme dterministe dj connu
pour rsoudre un problme donn, beaucoup plus rapide en moyenne
que dans le pire des cas, alors lutilisation du hasard permet de diminuer
cette diffrence entre bons et mauvais exemplaires pour les configurations
de donnes dentre.
Exemple 16.1.3 le tri de Hoare prend un temps moyen de O(n log n)
et un temps de (n2 ) dans le pire des cas.

16.1.3

Algorithmes de Monte-Carlo

Ces algorithmes donnent toujours une rponse, mais celle-ci nest


pas toujours exacte. Il est difficile de dterminer si la rponse obtenue

240

Complexit et Algorithmique avance

est correcte. Comme pour les algorithmes de Las Vegas, la probabilit


de succs (cest--dire ici de rponse correcte) dun tel algorithme est
dautant meilleure que le temps dont il dispose est grand.

16.2

Probabilits versus dterminisme

16.2.1

Le problme

Nous voulons vrifier lexactitude des rsultats dun calcul de faon


efficace, rapide et sans refaire le calcul. En effet, le procd de vrification
consistant refaire le calcul est lent dune part et inefficace si lerreur
est dans le programme dautre part.
Un algorithme probabiliste du type Monte Carlo peut effectuer trs rapidement cette mme opration de vrification avec une probabilit aussi
proche de 1 que lon veut. Nous prendrons pour exemple ici une vrification des identits polynomiales et nous allons comparer les performances
des deux algorithmes.
Supposons que nous voulions vrifier lexactitude de lquation
suivante :
(x + 1)(x 2)(x + 3)(x 4)(x + 5)(x 6) = x6 7x3 + 25

Lalgorithme dterministe
Un algorithme dterministe classique procderait de la faon suivante :
Transformer le premier membre F(x) de sa forme multiplicative
Qd
Pd
i
i=1 (x ai ) la forme canonique
i=0 ci x ;
Les deux expressions sont quivalentes si et seulement si les ci sont
gaux.

Lalgorithme probabiliste
Voici maintenant un algorithme probabiliste pour effectuer cette
mme vrification :
Prendre alatoirement et uniformment r {1, ..., 100d} ;
Calculer les deux membres F(r) et G(r) ;
Lalgorithme dcide en fonction du rsultat si F(r) = G(r) ou
F(r) 6= G(r).

Chapitre 16. Introduction lalgorithmique probabiliste

241

La probabilit dchec de lalgorithme probabiliste est P(echec) 6


1/100. La complexit de cet algorithme dterministe est (d2 ) alors
que celle de lalgorithme probabiliste est O(d). Mme si lalgorithme
probabiliste est trs rapide il prsente une certaine probabilit derreur.
Cependant, comme nous allons le voir dans ce qui suit, il est possible de
rduire cette probabilit derreur un niveau insignifiant, garantissant
ainsi une probabilit dexactitude du rsultat trs proche de 1.

Dmonstration
Il y a erreur si lalgorithme dcide que F(r) = G(r) alors que
F(r) 6= G(r).
Cette erreur peut arriver si r est une racine de lquation
F(r) G(r) = 0. Mais une quation dordre d ne peut avoir plus de d
racines.
Donc : il existe au plus d valeurs {1, ..., 100d} | F(r) G(r) = 0
On peut amliorer lefficacit de cet algorithme, en choisissant un intervalle de valeurs plus grand {1, ..., 10k d} on a alors
P(echec) 6 10k , mais on est limit par les capacits des ordinateurs.
Cest l ou laspect probabiliste vient notre secours, car en exploitant les
proprits multiplicatives de la probabilit des vnements indpendants,
il suffit de ritrer lalgorithme pour obtenir une probabilit dexactitude du rsultat aussi proche de 1 que lon voudra sans augmenter
significativement la complexit de lalgorithme.
Commenons tout dabord par un rappel cette proprit :
Un ensemble dvnements E1 ,..., Ek sont dits indpendants si et
seulement si :
P(E1 E2 ... Ek ) =

k
Y

P(Ei )

i=1

Ceci signifie quen ritrant lalgorithme k fois (avec remise)


P(echec) 6

Qk

i=1 1/100

= (1/100)k

242

Complexit et Algorithmique avance

16.3

Les probabilits pour rduire la complexit

Exemple de lArbre Couvrant Minimum Probabiliste


16.3.1

Gnralits

Soit G = (V, E) un graphe connexe avec n sommets et m artes


values valeurs relles wij R pour tout couple de sommets
(i, j) E.
Un arbre couvrant de G est un sous-graphe acyclique T qui
inclut chaque sommet de G et est connexe. Un arbre couvrant a
exactement n 1 artes. Le poids dun arbre est dfini comme la
somme des poids des artes. Un arbre couvrant minimum est un
arbre couvrant de poids minimum.
16.3.2

Le Problme

tant donn un graphe G valu, dterminer un arbre couvrant


minimum de G.
Nous nous proposons dtudier un algorithme probabiliste qui
exploite lentrelacement dune technique de rduction du nombre
de sommets avec la rduction du nombre dartes retenir pour
la construction de larbre couvrant minimum par chantillonnage
probabiliste.
La particularit de cet algorithme est quil fonctionne de faon
rcursive et opre sur des (sous-)graphes non ncessairement connexes. Quand le graphe soumis en entre la procdure nest
pas connexe, il ny a pas dArbre Couvrant (dsormais AC) et on
gnralise aisment la notion darbre couvrant minimum celle de
fort couvrante minimale.
Le problme de larbre couvrant minimum a fait lobjet de nombreuses tudes en optimisation combinatoire et on renvoie le lecteur
aux nombreux ouvrages dalgorithmique traitant ce sujet. On citera
notamment les algorithmes de Borkva ([Bor26]) (Sollin), Kruskal
([Kru56] ou Prim ([Pri57].
Une varit dalgorithmes a t dveloppe pour ce problme,
la plupart dentre eux sont bass sur une stratgie gloutonne et

Chapitre 16. Introduction lalgorithmique probabiliste

243

sexcutent en temps presque linaire O(m log n) (tels les algorithmes


de Borkva, Kruskal ou Prim).
A lheure actuelle, le meilleur algorithme dterministe sexcute
en temps O(m log (m, n)) o (m, n) = min {i| log(i) m/n} et
log(i) n dnote la i-me application du logarithme (cf. [DRT92])
Bien que cela soit un algorithme en temps presque linaire pour
toute application pratique, les structures de donnes sont suffisamment compliques pour que lon prfre utiliser des algorithmes en
temps O(m log n).
Dans tous les cas il reste cet aspect thorique de la conception
dun algorithme probabiliste dont le temps dexcution moyen est
O(m) avec une forte probabilit.
Lalgorithme probabiliste combine des tapes de Borkva, une
procdure dchantillonnage des artes permettant dliminer des
artes "lourdes" et une phase de vrification permettant de conserver
les artes pertinentes pour la construction de larbre couvrant minimum. On dispose en effet dalgorithmes dterministes de vrification
en temps linaire, ([DRT92], [KRT93]) et on retiendra tout particulirement la caractristique suivante de ces algorithmes qui, si T
nest pas un arbre couvrant minimum, alors lalgorithme retourne
une liste dartes dont nimporte laquelle peut amliorer T.
16.3.3

Lalgorithme de Borkva

Le principe de lalgorithme de Borkva (voir [Bor26]) qui est un


algorithme glouton pour larbre couvrant minimum dont le temps
dexcution est en O(m log n).
Les artes bleues
Une arte bleue est une arte de poids minimum incidente un
sommet.
On montre aisment quun arbre couvrant minimim de G
contient uniquement des artes bleues
(P1 )
Lide de lalgorithme de Borkva est de contracter les artes
bleues incidentes chaque sommet de G
(P2 )

244

Complexit et Algorithmique avance

Lorsquon contracte une arte bleue, cela implique la fusion des


deux extrmits en seul sommet qui runit toutes les artes incidentes
de deux sommets, les boucles formes devant tre limines. Par
ailleurs, une contraction peut crer des artes multiples entre les
paires de sommets mais seules les artes de poids minimum doivent
tres retenues.
Le processus de contraction sur larte bleue pour chaque sommet
du graphe sera appele une tape de Borkva.
Une implmentation dune phase de Borkva est donne par
lalgorithme suivant :
Algorithm 16.3.1 Algorithme de Borkva
1. Marquer les artes bleues devant tre contractes.
2. Dterminer les composants connexes formes par les artes marques
3. Remplacer chaque composante connexe par un sommet
4. Eliminer les boucles et les artes multiples cres par les contractions sauf
larte de poids minimum.

16.3.3.1

Complexit de la phase Borkva

Etant donn un graphe G avec n sommets et m artes, montrons


quune phase de Borkva simplmente en temps O(m log n).
On remarque que lensemble des artes marques pour une
contraction durant une phase de Borkva induit une fort. Le graphe
G0 obtenu aprs une phase de Borkva a au plus n/2 sommets. Ceci
cause du fait que chaque arte sur laquelle sopre la contraction
est larte minimale dau plus deux sommets. Le nombre dartes
slectionnes est au moins n/2.
Puisque chaque sommet choisit exactement une arte marquer,
il est ais de vrifier que chaque arte marque doit liminer un
sommet. Le nombre dartes dans G0 est dau plus m puisquaucune
nouvelle arte nest cre durant ce processus.
Examinons le bnfice de la ralisation dune phase de Borkva.
Daprs la remarque (P1 ), chacune des artes contractes appartient

Chapitre 16. Introduction lalgorithmique probabiliste

245

larbre couvrant minimum de G.


Soit G0 le graphe obtenu par une phase de V sur G. Il est ais
de voir que larbre couvrant minimum de G est lunion des artes
marques pour contraction durant cette phase avec les artes de
larbre couvrant minimum de G0 .
Lalgorithme de Borkva rduit donc le problme de larbre
couvrant minimum sur un graphe n sommets et m artes au
problme de larbre couvrant minimum sur un graphe au plus n/2
sommets avec au plus m artes.
Le temps ncessaire la rduction est O(m + n). Il sensuit que
le temps dexcution en pire des cas est O(m log n).
16.3.4

Artes "lourdes" et vrification darbre couvrant


minimum

Soit F une fort de G, et considrons une paire quelconque de


sommets (u, v) V. Si les deux sommets se trouvent dans la mme
composante connexe de F, il existe un chemin unique P(u, v) entre
eux dans le graphe F. Notons par wF (u, v) le poids maximum dune
arte du chemin P(u, v) sil existe et posons wF (u, v) = si u et v
ne sont pas relis dans F.
16.3.4.1

Dfinition dune arte F-lourde

Une arte (u, v) E est dite F-lourde si w(u, v) > wF (u, v).
Larte (u, v) est dite F-lgre si w(u, v) wF (u, v).
Une arte (u, v) est F-lourde si la fort F contient un chemin
de u vers v utilisant seulement des artes dun poids plus petit que
celui de (u, v) lui mme.
Remarque Soit F une fort quelconque dans G. Si une arte
(u,v) est F-lourde, alors elle ne se trouve pas dans larbre couvrant
minimum de G.
16.3.4.2

Vrification

Une arte "amliore" une fort si en lajoutant une fort soit elle
rduit le nombre darbres dans cette fort, soit en enlevant larte

246

Complexit et Algorithmique avance

de poids le plus grand dans lunique cycle cre par son ajout, donne
une fort de poids infrieur ou gal celui de F.
Une arte F-lgre peut tre utilise pour amliorer la fort F,
alors quune arte F-lourde ne peut pas. Il est possible de concevoir
un algorithme glouton qui commence avec une fort vide F et
considrant les artes de G de manire augmenter le poids vrifie
si chaque arte successive est F-lgre auquel cas larte est utilise
pour amliorer la fort courante.
Un algorithme de vrification pour un arbre couvrant minimum
peut tre vu comme prenant en entre un arbre T dun graphe G et
vrifiant que les seules artes T-lgres sont artes dans T lui-mme.
Il est assez clair que cela est quivalent vrifier que T est un arbre
couvrant minimum.
De tels algorithmes de vrification sont aisment adapts pour
vrifier des forts couvrantes minimales. En fait, il existe des algorithmes de vrification en temps linaire qui peuvent tre utiliss
pour faire une tape de plus, et identifier toutes les artes F-lourdes
et F-lgres par rapport nimporte quelle fort F.
On ne dtaille pas ici ces algorithmes et on indiquera simplement
leurs performances.
Thorme 16.3.1 Etant donn un graphe G et une fort F, toutes
les artes F-lourdes dans G peuvent tre identifies en O(m + n).
16.3.5

chantillonnage alatoire pour les arbres couvrants


minimum

Avant dtudier comment lalatoire peut tre utilis pour acclrer lalgorithme de Borkva, on dveloppe un lemme technique
sur lchantillonnage alatoire dartes de graphe G.
Le seul usage de lalatoire dans lalgorithme darbre couvrant
minimum est lutilisation de lchantillonnage alatoire pour identifier et liminer les artes dont on est certain quelles ne peuvent
appartenir larbre couvrant minimum.
Considrons un graphe (alatoire) G(p) obtenu en ajoutant indpendamment chaque arte de G dans G(p) avec probabilit p.

Chapitre 16. Introduction lalgorithmique probabiliste

247

Le graphe G(p) a n sommets et un nombre dartes estim n/p.


On na pas de garantie que G(p) soit connexe.
Soit F la fort couvrante minimum pour G(p). Pour de grandes
valeurs de p, la fort F doit tre une bonne approximation de larbre
couvrant minimum de G. Plus prcisment, nous nous attendons
ce que il y ait trs peu dartes de G qui soient F-lgres.
Un rappel de quelques rsultats de probabilit lmentaires.
Rappelons quune variable alatoire X a une distribution binomiale ngative avec paramtres n et p si il correspond au nombre
de tentatives indpendantes requises pour n succs quand chaque
tentative a une probabilit de succs p. De plus, lesprance de X
est donne par n/p.
Une variable alatoire X domine stochastiquement une autre
variable alatoire Y si
z R, Pr[x>z] Pr[y > z]
Si X domine stochastiquement Y alors E[X] E[Y].
Lemme 16.3.1 Soit F une fort couvrante minimale dans le graphe
alatoire G(p) obtenu en incluant indpendamment chaque arte
de G avec la probabilit p. Alors le nombre dartes F-lgres dans
G(p) est stochastiquemet domin par une variable X ayant une
distribution binomiale ngative de paramtres n et p. En particulier,
le nombre attendu dartes F-lgres sera au plus n/p.
Preuve 16.3.1 Nous prouvons en donnant ici une faon de construire en mme temps le graphe H et sa fort couvrante mimimale
F. Supposons que les artes de G soient ranges en ordre croissant.
Initialement, H et F sont vides.
Traitons les artes dans cet ordre.
Pour une arte e traite, considrons si elle est F-lourde ou Flgre. Aprs, lanons une pice de monnaie avec probabilit de pile
p. Si cette pice est pile, ajoutons e H. Si e est F-lgre, ajoutons
e F. Nous constatons aisment que la fin F est la fort couvrante
minimum de H dont H est construit par selection de chaque arte
de G avec probabilit p.
Maintenant, nous allons calculer lesprance du nombre dartes
F-lgres. Car une arte est ajoute dans F si et seulement si elle est

248

Complexit et Algorithmique avance

F-lgre, nous ne considrons pas des cas des F-lourdes. Supposons


que nous lancions une pice de plomb dans le cas o larte traite
est F-lgre et celle de cuivre dans le cas o larte traite est Flourde. Alors le nombre de F-lgres est gal au nombre de pices
de plomb que nous avons lances. Pour une fois que nous lancions
la pice de plomb, elle est pile avec probabilit p, et avec ce pile-l,
nous ajoutons larte dans F. Donc, lesprance de nombre de pices
de plomb lances est |F|/p. Avec G ayant n sommets, |F| (n 1).
Cela implique que le nombre attendu dartes F-lgres est au plus
n/p.

16.3.6

Algorithme darbre couvrant minimum linaire

Lalgorithme probabiliste entrelace des phases de Borkva qui


rduisent le nombre de sommets avec des phases dchantillonnage
alatoires qui rduisent les artes.
Aprs la phase dchantillonnage, la fort couvrante minimale
F est calcule en utilisant la rcursivit, et puis lalgorithme de
vrification est employ pour liminer toutes les artes qui ne sont
pas F-lgres.
Larbre couvrant minimum par rapport aux artes restantes, qui
sont F-lgres , est calcul en utilisant nouveau une invocation
de lalgorithme. Mme si cet algorithme est appel arbre couvrant
minimum, il peut traiter des graphes non connexes, auquel cas il
tablit une fort couvrant minimale.
Nous allons montrer ci-aprs que lesprance mathmatique du
temps dexcution de cet algorithme est linaire. Toutefois, dans le
pire des cas, il sexcute avec une complexit quivalente celle de
lalgorithme de Borkva.
16.3.7

Algorithme probabiliste de construction dun arbre


couvrant minimal

Thorme 16.3.2 Le temps dexcution moyen de lalgorithme


arbre couvrant minimum est O(m + n).
Dmonstration

Chapitre 16. Introduction lalgorithmique probabiliste

249

Algorithm 16.3.2 Algorithme de Borkva


Input : G=(V,E) ; |V| = n, |E| = m ; non orient, pondr
Output : arbre (ou fort) couvrant de poids minimum F
1. En utilisant 2 applications de Borkva, entrelaces avec la simplification
des graphes quotients, calculer le graphe G1 ayant au plus n/4 sommets
et considrons C, lensemble des artes slectionnes durant ces 2 phases.
Si G est vide alors stopper et renvoyer FC.
2. Soit G2 = G1 (p) un graphe obtenu par chantillonnage alatoire partir
de G1 avec la probabilit p = 1/2
En appliquant rcursivement lalgorithme, calculer la fort couvrante
minimale F2 du graphe G2
En utilisant un algorithme de vrification en temps linaire, identifier
des artes F2 -lourdes de G1 , et les liminer pour obtenir le graphe G3
3. De manire rcursive, appliquer lalgorithme et calculer la fort
couvrante minimale F3 pour le graphe G3 .
Renvoyer F = C F3

Soit T(n, m) lesprance mathmatique du temps dexcution


de lalgorithme darbre couvrant minimum sur des graphes n
sommets et m artes. Examinons le cot des diffrentes tapes de
cet algorithme.
1. Elle utilise 2 applications de lalgorithme de Borkva, ce qui
fait O(m+n) et donne un graphe G1 avec au plus n/4 sommets
et m artes.
2. on ralise un chantillonnage alatoire pour donner le graphe
G2 = G1 (1/2) avec n/4 sommets et un nombre dartes moyen
gal m/2 et qui sexcute aussi en O(m + n).
3. Trouver la fort couvrante minimale de G2 a un cot moyen
T(n/4, m/2) par induction et grce la linarit de lesprance
mathmatique.
4. La vrification de ltape 4 sexcute en O(m + n) et donne un
graphe G3 avec au plus n/4 sommets et un nombre dartes
moyen dau plus n/2.
5. Trouver la fort couvrante minimale de G3 a un temps moyen

250

Complexit et Algorithmique avance

T(n/4, n/2).
6. O(n) itrations suffisent pour ltape 6.
Au total, on obtient donc
T(n, m) T(n/4, m/2) + T(n/4, n/2) + c(n + m)
pour une certaine constante c.
Une solution de cette relation de rcurrence est 2.c.(n + m), ce
qui donne le temps dexcution en moyen de lalgorithme arbre
couvrant minimum gal O(n + m).


16.4

Rsoudre SAT de manire probabiliste

16.4.1

Rappel

Le problme gnral de satisfiabilit est une formule boolenne


donne sous la forme dune conjonction (ET) dun ensemble de
clauses, o chaque clause est la disjonction (OU) de littraux et
o un littral est une variable boolenne ou sa ngation.
Une solution une instance dune formule SAT est une affectation
de valeur V ou F aux variables de faon ce que toutes les clauses
soient satisfiables.
Le problme gnral SAT est NP-difficile.
Nous allons tout dabord tudier un algorithme probabiliste
pour 2-SAT, un cas particulier du problme qui se rsout en temps
polynomial. A partir de cette solution nous allons dduire une
solution pour 3-SAT, problme plus difficile et nous montrerons la
pertinence de lutilisation dun algorithme probabiliste.
Pour le problme de la k-satisfiabilit (k-SAT), la formule de satisfiabilit est restreinte de faon ce que chaque clause ait exactement
k littraux. Ainsi, la donne dun problme 2-SAT a exactement
2 littraux par clause. Par exemple, lexpression suivante est une
instance 2-SAT.
= (x1 x3 ) (
x1 x2 ) (x1 x3 ) (x4 x2 ) (x4 x1 )

Chapitre 16. Introduction lalgorithmique probabiliste

16.4.2

251

Analyse dune solution probabiliste 2-SAT

Une approche assez immdiate pour trouver une solution pour


une formule 2-SAT est de commencer avec une affectation, chercher
une clause qui nest pas satisfaite, et modifier les affectations des
valeurs aux variables de manire ce que la clause devienne satisfaite.
Sil existe deux littraux dans la clause, alors il y a deux changements possibles de laffectation qui satisferont la clause (sur 4 au
total). Lalgorithme 16.4.3 propos dcide lequel de ces changements
essayer de faon alatoire.
Notations
n : nombre de variables boolennes de la formule
m : paramtre entier qui dtermine la probabilit que
lalgorithme termine avec une rponse correcte.
Considrons la formule SAT exemple
= (x1 x3 ) (
x1 x2 ) (x1 x3 ) (x4 x2 ) (x4 x1 )
si on commence avec toutes les variables F alors la clause (x1 x3 )
nest pas satisfaite. Lalgorithme peut slectionner cette clause et
mettre le littral x1 V. Dans ce cas, (x4 x1 ) sera non-satisfaite
et lalgorithme peut changer la valeur dune variable de cette clause,
etc.
Si lalgorithme termine avec une affectation des valeurs aux
variables telle que la formule soit satisfiable alors on a rsolu le
problme. Le cas o laffectation ne donne pas une formule satisfiable
retiendra notre attention plus tard. Considrons pour linstant que la
formule est satisfiable et que lalgorithme sexcutera aussi longtemps
que ncessaire pour trouver une affectation satisfaisante pour rendre
la formule satisfiable.
Portons notre attention sur le nombre ditrations de la boucle
Rpter jusqu ... de lalgorithme. Nous appellerons tape
chaque fois que lalgorithme modifie une affectation de variable.
Puisquune formule 2-SAT a O(n2 ) clauses distinctes, chaque tape
peut tre excute en O(n2 ).

252

Complexit et Algorithmique avance

Algorithm 16.4.3 2-SAT PROBA


Input :
1. Dmarrer avec une affectation quelconque de valeurs aux variables
x = (x1 , . . . , xn )
2. Rpter jusqu 2 m n2 fois
(a) Sil existe une clause c non satisfaite
(b) Choisir (uniformment) au hasard une des deux variables et
changer sa valeur
3. Si une instance satisfiable est trouve, renvoyer la valeur de cette
affectation
4. sinon retourner formule insatisfiable

Soit S une affectation satisfaisante pour les n variables et Ai


reprsentant laffectation de variables aprs la i-me tape de lalgorithme.
Soit Xi le nombre de variables dans laffectation courante Ai qui
ont la mme valeur que laffectation satisfaisante S.
Quand Xi = n, lalgorithme termine avec affectation satisfaisante.
En fait, lalgorithme peut terminer avant que Xi natteigne n si il
trouve une autre affectation satisfaisante mais pour notre analyse,
le pire cas est lorsque lalgorithme sarrte quand Xi = n.
En dmarrant avec Xi < n, nous examinerons, comment Xi
volue au cours du temps, combien de temps il faut pour que Xi
atteigne n.
Dabord si Xi = 0 alors pour tout changement dans la valeur
de variable de ltape suivante, on a Xi+1 = 1
Pr(Xi+1 = 1|Xi = 0) = 1
Supposons que 1 Xi n 1. A chaque tape, nous choisissons une clause qui est insatisfaite. Puisque S satisfait la
clause, cela signifie que Ai et S se diffrencient sur la valeur
dau moins une des variables de cette clause.
Comme la clause na pas plus de 2 variables, la probabilit
daugmenter le nombre de correspondances (entre Ai et S) est

Chapitre 16. Introduction lalgorithmique probabiliste

253

au moins 1/2.
La probabilit peut tre gale 1 si Ai et S se diffrencient
sur la valeur des 2 variables de cette clause.
il sensuit que la probabilit de faire dcrotre le nombre de
correspondances est au plus 1/2, donc pour 1 j n 1
Pr(Xi+1 = j + 1|Xi = j)
1/2Pr(Xi+1 = jl1|Xi = j) 1/2
Nous avons affaire un processus stochastique (Xi )i mais qui
nest pas ncessairement une chane de Markov.
Nous allons introduire une chane de Markov afin de destimer
le nombre maximum ditrations pour notre algorithme.
Le processus stochastique X0 , X1 , X2 ... nest pas ncessairement
une chane de Markov, puisque la probabbilit de Xi augmente et
peut dpendre du fait que Ai et S se diffrencient sur une variable
ou deux dans la clause non satisfaite que lalgorithme choisit cette
tape. Ceci de plus, dpend sur les clauses qui ont t considres
auparavant.
Dfinissons le processus stochastique (Yi ) = Y0 , Y1 , Y2 , ...
Y0 = X0
Pr(Yi+1 = 1|Yi = 0) = 1
Pr(Yi+1 = j + 1|Yi = 1) = 1/2
Pr(Yi+1 = j 1|Yi = j) = 1/2
que lon vrifie aisment comme tant une chane de Markov.
Cette chane de Markov Y0 , Y1 , Y2 , ... est une version pessimiste
du processus stochastique X0 , X1 , X2 , ... car lorsque Xi augmente
lors du passage ltape suivante avec une probabilit dau moins
1/2, Yi augmente avec une probabilit exactement gale 1/2.
Il est donc assez clair que le temps moyen pour atteindre la
valeur n partir de nimporte quelle configuration est plus grande
pour la chane de Markov Y que pour le processus X. On exploitera
donc cette proprit.

254

16.4.3

Complexit et Algorithmique avance

tude de la chane de Markov permettant destimer la complexit en temps de lalgorithme

La chane de Markov modlise une marche alatoire sur un graphe


non-orient G. Les sommets de G sont reprsents par les entiers
0, 1, 2, ..., n et pour 1 i n 1, le sommet i est connect aux
sommets i 1 et i + 1.
Soit hj le nombre dtapes pour atteindre n en partant de ltat
j. Pour lalgo 2-SAT, hj est une borne suprieure du nombre moyen
dtapes pour que linstance S soit en concordance totale avec
laffectation de dpart o j variables concident avec les affectations
de linstance S.
De manire vidente,
hn = 0
h0 = h1 + 1 puisque de h0 on se dplace vers h1 en une tape. On
utilise la linarit de lesprance mathmatique pour dterminer une
expression pour autres valeurs de hj .
Soit Zj , une variable alatoire reprsentant le nombre dtapes
pour atteindre n de ltat j.
Considrons que partant de ltat j o 1 j n 1
Avec proba 1/2, ltat suivant est j 1 et donc Zj = 1 + Zj1
Avec proba 1/2, ltat suivant est j + 1 et donc Zj = 1 + Zj+1
donc,


1
1
E[Zj ] = E (1 + Zj1 ) + (1 + Zj+1 )
2
2
comme E[Zj ] = hj on a par linarit
hj1 + 1 hj+1 + 1
hj1 hj+1
hj =
+
=
+
+1
2
2
2
2
On obtient donc le systme dquations
h0 = 0
hj1 hj+1
hj =
+
+ 1, pour 1 j n 1
2
2
h0 = h1 + 1
La rsolution de ce systme peut se faire de deux faons quivalentes, la premire consiste rsoudre un systme de n + 1 quations n + 1 variables linairement indpendantes.

Chapitre 16. Introduction lalgorithmique probabiliste

255

Lautre faon de faire consiste raisonner de manire inductive,


on montre que, pour 0 j n 1, on a
hj = hj+1 + 2j + 1
vrai quand j = 0 car h1 = h0 1
de hj = hj1
+ hj+1
+ 1 on obtient
2
2
hj+1 = 2hj + hj1 2
= 2hj (hj + 2(j 1) + 1) 2
= hj 2j 1
En utilisant lhypothse dinduction, nous pouvons conclure que
h0 = h1 + 1
= h2 + 1 + 3
= hj 2j 1
=

n1
X

2i + 1

i=0
n1
X

= 2

i=0

= ...
= n2

i+1

n1
X

i=0

Considrons quune formule 2-SAT avec n variables est satisfiable et que lalgorithme 2-SAT soit en mesure de sexcuter jusqu
lobtention dune affectation satisfaisante. Alors, lesprance mathmatique du nombre dtapes pour trouver une telle affectation est
au plus O(n2 ).
16.4.3.1

Cas o la formule est ventuellement insatisfiable

Thorme 16.4.1 Lalgorithme 2-SAT retourne toujours une rponse correcte si la formule est insatisfiable.
Si la formule est satisfiable, avec probabilit dau moins 1 2m
lalgorithme renvoie une affectation satisfaisante, sinon il renvoie
incorrectement que la formule est insatisfiable avec probabilit 2m .

256

Complexit et Algorithmique avance

Preuve 16.4.1 Il est clair que sil ny a pas daffectation satisfaisante alors lalgorithme retourne correctement le fait que la formule
est insatisfiable.
Supposons que la formule soit satisfiable. Dcoupons lexcution
de lalgorithme en segments de n2 tapes. Etant donn quaucune affectation satisfaisante nest trouve dans les i 1 premiers segments,
la question qui se pose est de savoir quelle est la probabilit conditionnelle que lalgorithme ne trouve pas daffectation satisfaisante
au segment i.
Par le lemme nonc prcdemment, lesprance mathmatique
du temps pour trouver une affectation satisfaisante quelque soit la
configuration de dpart est n2 .
Soit Z le nombre dtapes du dpart du segment jusqu lobtention
dune affectation satisfaisante. En appliquant lingalit de Markov 1
Donc, la probabilit que lalgorithme ne trouve pas daffectation
satisfaisante aprs m segments est borne par ( 12 )m
16.4.4

Gnralisation 3-SAT

Lobjectif est prsent de gnraliser la technique employe


pour 2-SAT afin dobtenir un algorithme probabiliste 3-SAT. Ce
problme est NP-Complet, il serait par consquent surprenant
qu un algorithme probabiliste puisse rsoudre ce problme en temps
polynomial en n (i.e. lesprance mathmatique du temps).
Nous proposons un algorithme probabiliste qui rsout 3-SAT
en un temps qui est exponentiel en n mais qui est beaucoup plus
1. Soit une variable alatoire positive X et a > 0 alors
E(X)
a
Exemple 1 : jeu de pile ou face La borne suprieure de la probabilit dobtenir plus
de 3n/4 face dans une squence de n essais est :
P(X > a) 6

P(X > 3n/4) 6

E(X)
n/2
2
=
=
3n/4
3n/4
3

,
Pr(Z > 2n2 )

n2
1
=
2n2
2

Chapitre 16. Introduction lalgorithmique probabiliste

257

efficace que lapproche exhaustive et nave reposant sur le test


de toutes les affectations possibles. Considrons en premier lieu,
la performance dune variante de lalgorithme utilis pour 2-SAT,
quand il est appliqu 3-SAT. La premire approche est identique
celle prsente prcdemment. Dans cet algorithme, m est un
paramtre qui contrle la probabilit de succs de lalgorithme.
16.4.4.1

Lalgorithme

Algorithm 16.4.4 3-SAT PROBA


1. Dmarrer avec une instance quelconque
2. Rpter jusqu m fois, terminer si toutes les clauses sont satisfaites
(a) Choisir arbitraitement une clause qqc qui nest pas satisfaite
(b) Choisir uniformment au hasard un des littraux de la clause et
changer la valeur de la variable dans laffectation courante
3. Si une instance satisfiable est trouve, retourner le rsultat
4. sinon retourner que la formule est insatisfiable

Concentrons nous sur la dtermination de la borne suprieure


en temps (i.e. lesprance mathmatique du temps) pour obtenir
une affectation satisfaisante, sil en existe une.
Supposons que linstance soit satisfiable et que S est une affectation satisfaisante. Soit Ai laffectation aprs i tapes et Xi le
nombre de variables (i.e. littraux) dans laffectation courante qui
correspondent avec S. Par la mme dmarche que pour lalgorithme
2-SAT, pour 1 6 j 6 n 1
P(Xi+1 = j + 1|Xi = j) > 1/3

P(Xi+1 = j 1|Xi = j) 6 2/3


Les quations sexpliquent aisment parce qu une tape donne une ou plusieurs clauses sont non satisfaites, et donc les Ai

258

Complexit et Algorithmique avance

doivent tre en contradiction sur au moins une variable de cette


clause. Avec une probabilit dau moins 13 , on augmente le nombre de
correspondances entre laffectation courante et S. De faon analogue
on obtient une borne suprieure du nombre moyen dtapes jusqu
ce que Xi = n en analysant une chane de Markov Y0 , Y1 ,.. telle que
Y0 = X0
P(Yi+1 = 1|Yi = 0)
=
1
1
P(Yi+1 = j + 1|Yi = j)
=
3
2
P(Yi+1 = j 1|Yi = j)
=
3
Dans ce cas, la chane est plus encline dcrotre qu crotre. Soit
hj le nombre dtapes pour atteindre n en partant de j, on obtient
le systme dquations suivant :
hn = 0
hj =

2hj1 hj+1
+
+ 1, 1 6 j 6 n 1
3
3
h0 = h1 + 1

Ces quations ont une solution unique qui est donne par
hj = 2n+2 2j+2 3(n j)
Lalgorithme ici dcrit prend (2n ) itrations (i.e. units de
temps) en moyenne pour dterminer une affectation satisfaisante. Ce
rsultat nest pas trs convaincant car il y a 2n affectations possibles
tester. Cependant, avec un peu de perspicacit on peut amliorer
significativement le processus. Il y a pour cela deux observations
faire :
1. Si on choisit une affectation satisfaisante uniformment au hasard, alors le nombre de variables qui correspondent S ont une
distribution polynomiale avec une esprance mathmatique
de n2 . Avec une distribution de probabilit exponentiellement

Chapitre 16. Introduction lalgorithmique probabiliste

259

faible (i.e. n ) mais non ngligeable, le processus dmarre avec une affectation initiale qui correspond S en plus
de n2 variables de faon significative.
2. Lorsque lalgorithme dmarre, il a tendance se dplacer vers 0
plutt que n. Plus lexcution de lalgorithme se prolonge, plus
on a tendance aller vers 0. On a donc plutt intrt redmarrer le processus chaque fois pour un nombre ditrations
rduit plutt que dexcuter le processus sur de nombreuses et
longues priodes sur la mme affectation.
16.4.5

Proposition dalgorithme modifi

Lalgorithme 3-SAT bis prend jusqu 3n tapes pour atteindre


une affectation satisfaisante en partant dune affectation quelconque.
Sil choue, il recommence la recherche avec une nouvelle affectation
choisie au hasard. Nous cherchons ici dterminer combien de fois le
processus doit recommencer avant datteindre une affectation satisfaisantes. Soit q la probabilit que le processus 3-SAT atteigne S (ou
toute autre affectation satisfaisante) en 3n tapes en dmarrant avec
une affectation choisie uniformment au hasard. Soit qj une borne
infrieure de la probabilit que notre algorithme modifi atteigne S
(ou toute autre affectation satisfaisante) quand il dmarre avec une
affectation qui inclut exactement j variables qui ne concordent pas
avec S.
Considrons une particule se dplaant sur une ligne indexe
par des entiers avec une probabilit de 31 daller vers le haut et une
probabilit de 32 daller vers le bas.
Remarquons que :
2 1
Ckj+2.k ( )k ( )j+k
3 3
est la probabilit de k dplacements vers le bas et (k + j) dplacement vers le haut dans une squence de (j + 2.k) dplacements.
Cest donc une borne infrieure sur la probabilit que lalgorithme
atteigne une instance satisfiable en j + 2k 6 3n tapes. Cest--dire
2 1
qj > maxk=0,...,j Ckj+2k ( )k ( )j+k
3 3

260

Complexit et Algorithmique avance

Algorithm 16.4.5 3-SAT+ PROBA


1. Rpter jusqu m fois, terminer si toutes les clauses sont satisfaites
(a) Dmarrer avec une instance quelconque
(b) Rpter jusqu 3 n fois, terminer si toutes les clauses sont
satisfaites
i. Choisir arbitraitement une clause qqc insatisfaite
ii. Choisir uniformment au hasard un des littraux de la clause
et changer la valeur de la variable dans laffectation courante
2. Si une instance satisfiable est trouve, retourner le rsultat
3. sinon retourner que la formule est insatisfiable

En particulier, si on considre le cas o k = j on a


2 1
qj > Cj3j ( )j ( )2j
3 3
On peut approximer Cj3j avec la formule de Stirling 1
Donc pour j > 0
Cj3j =

3j!
j!(2j)!
q

2(3j)
3j
e
e

( )3j ( )2j ( )j )
4 2j 22j e
2j
j

3 27
= ( )j
8 j 4

c 27 j
3
avec c =
= ( )
j 4
8

>

Donc, pour j > 0, on a aussi :


1. Rappel de la formule de Stirling : Pour n > 0,

m
2nCen 6 m 6 2 2m( )m
e

Chapitre 16. Introduction lalgorithmique probabiliste

261

2 1
qj Cj3j ( )j ( )2 j
3 3
c 27 j 2 j 1 2
( )( )( )j
j 4
3 3
c 1
j
j2
On notera aussi que q0 = 1.
Disposant dune borne infrieure pour qj , on peut tablir une
borne infrieure pour q, la probabilit que le processus atteigne
une affectation satisfaisante en 3.n tapes partant dune affectation
choisie au hasard.
qj

n
X

Pr(affectation au hasard ayant j diffrences avec S)qj

j=0

n
X
1
j 1 n c 1
C
( ) j
+
2n j=1 n 2
j2

n
c 1 X
1
Cjn ( )n (1)nj
( )( )n
n 2 j=1
2
c 1
1
( )( )n (1 + )n
n 2
2
c 1 3
( )( )n ( )n
n 2 2
 n
c
3
= ( )
n 4

Supposons quune affectation satisfaisante existe, le nombre daffectations testes avant de dterminer une telle affectation satisfaisante est une variable alatoire gomtrique de paramtre q.
Le nombre moyen daffectations testes est 1q et pour chaque
affectation, lalgorithme utilise au plus 3n tapes. Donc le nombre
moyen dtapes avant la dtermination dune solution est borns
par O(n3/2 ( 34 )n ).

262

Complexit et Algorithmique avance

Lalgorithme modifi pour 3-SAT correspond donc un algorithme de Monte-Carlo. Si lesprance mathmatique dtapes avant
de trouver une solution est born par a et si le paramtre m est fix
la valeur 2.a.b, alors la probabilit quaucune affectation ne soit
trouve alors que la formule est satisfiable est borne suprieurement
par 2b .

16.5

Un problme daccord

Un problme frquemment abord dans le contexte de linformatique rpartie consiste briser la symtrie qui existe au sein
dun ensemble de processus communiquants. Il est pour cela possible dutiliser lalgorithmique probabiliste. Ce problme est dans la
littrature anglo-saxonne appel choice coordination problem.
16.5.1

Un exemple issu de la Biologie

Il se trouve que la nature offre dans le domaine de la biologie


une illustration tout fait clairante de ce problme. Une classe
particulire de mites (Genus Myrmoyssus) rsident en tant que
parasites sur la membrane de loreille de papillons de la famille
Phaemidae. Ces papillons sont des proies pour les chauves-souris
et la seule dfense dont ils disposent est quils peuvent percevoir le
sonar utilis par une chauve-souris sapprochant.
Malheureusement, si les deux oreilles du papillon sont infectes
par les mites, alors la capacit de perception du sonar des prdateurs
est considrablement diminue, et donc les chances de survie des
deux espces - le papillon et la colonie de mites - sont considrablement rduites. Lintrt des mites est donc dassurer la survie de
leur hte, ce quelles peuvent raliser en infectant uniquement une
oreille. Les mites doivent donc faire face un problme daccord.
Comment des mites infectant une oreille particulire garantissentelles leur survie en obligeant les autres mites infecter la mme
oreille ? Le protocole utilis par ces mites implique le dpt de traces
chimiques autour des oreilles du papillon.

Chapitre 16. Introduction lalgorithmique probabiliste

16.6

263

Une solution synchrone

Notre intrt pour ce problme a bien sr une motivation informatique.


Considrons une collection de n processus identiques qui oprent
de manire totalement asynchrone. Il ny a pas dhorloge globale
commune accessible et aucune hypothse ne peut tre formule
concernant les vitesses relatives des diffrents processus. Les processus doivent donc atteindre le consensus sur un choix unique sur une
collection de m options identiques.
On va pour linstant adopter un modle simple pour la communication entre processus.
On dispose dune collection de m registres accessibles en lecture et
criture pour lensemble des processus. Plusieurs processus peuvent
simultanment tenter daccder ou modifier un registre. Pour grer
de tels accs qui provoquent des conflits, on considrera que les
processus utilisent un mcanisme de verrouillage par lequel un et un
seul processus obtient laccs un registre quand plusieurs processus
tentent dy accder ; de plus, tous les processus restants attendent
alors jusqu ce que le verrou soit lev et entrent de nouveau en
comptition pour accder au registre.
Les processus doivent excuter un protocole pour choisir une
option unique parmi les m choix possibles. Ceci est ralis en garantissant qu la terminaison du protocole, exactement
un seul des m
registres contient un symbole spcial dsign par .
La complexit dun protocole de coordination est mesure en
termes du nombre total doprations de lecture/criture ralises
par les n processus (Il est vident que le temps dexcution a peu
de sens dans un environnement asynchone).
On sait que tout protocole dterministe rsolvant ce problme a
une complexit en (n1/3 ). On va maintenant illustrer la puissance de
lalgorithme probabiliste dans ce contexte en exhibant un protocole
probabiliste tel que, pour tout c > 0 , on rsoud le problme en
utilisant c oprations avec une probabilit de succs dau moins
1 2 .
Pour des raisons de simplicit, on va considrer seulement le cas,

264

Complexit et Algorithmique avance

n = m = 2, le protocole et lanalyse se gnralisent dune manire


immdiate. On commencera par se limiter au cas assez simple o
deux processeurs sont synchrones et oprent en tapes synchronises
par une mme horloge globale.
16.6.1

Le protocole

Le protocole prsent ci-aprs est excut par chacun des deux


processeurs. On indexe les processeurs par Pi et les choix possibles
par Ci pour tout {0, 1}. Le processeur Pi lit initialement le registre
Ci . Ainsi, les processeurs changent-ils leurs registres aprs chaque
itration du protocole. Ceci implique qu aucun moment les deux
processeurs nexaminent le mme registre.
Chaque processus maintient galement une variable locale dont
la valeur est note Bi .
Algorithm 16.6.6 SYNCH-CCP
Input : les registres C0 et C1 sont initialiss 0

Output : exactement un des deux registres a la valeur


0. Pi initialement scanne Ci et a sa variable locale Bi initialis 0
1. Lire le registre courant et obtenir le bit Ri
2. Choisir une des 3 options

(a) si (Ri = ) alors HALT


(b) si (Ri = 0 et Bi = 1) alors crire
HALT

dans le registre courant et

(c) autrement, affecter un bit alatoire Bi , crire Bi dans le registre


courant
3. Pi change son registre courant avec P1i et retourne linstruction 1.

16.6.2

Preuve de bon fonctionnement in absurdo

Preuve 16.6.1 Pour vrifier la correction de ce protocole,il suffit


de vrifier quau plus un processeur peut avoir la valeur
crite
dans son registre. Pour ce faire, on va supposer par labsurde que

Chapitre 16. Introduction lalgorithmique probabiliste

265

les deux registres doivent avoir eu comme valeur crite


la fois
au sein de la mme itration. Dans le cas contraire, le cas (2.a)
assurera que le protocole se termine avant que cette erreur ait lieu.
Supposons que lerreur ait lieu au cours de la t-me itration. Notons
Bi (t) et Ri (t), les valeurs utilises par le processeur Pi juste aprs
ltape 1 de la t-me itration du protocole. Par linstruction (2.c),

on a R0 (t) = B1 (t) et R1 (t) = B0 (t). Le seul cas o Pi crit


durant la t-me itration est quandRi = 0 et Bi = 1 alors R1i = 1
et B1i = 0 et P1i ne peut crire
au cours de litration.

16.6.3

valuation de la complexit

Nous avons dmontr que le protocole termine correctement en


faisant un choix unique. Ceci implique cependant que le protocole
se termine en un nombre fini dtapes. Pourquoi cela se produit-il ?
Remarquons qu chaque itration la probabilit que les deux bits B0
et B1 soient les mmes est de 1/2. De plus, si chaque tape ces deux
bits prennent des valeurs distinctes alors le protocole se termine lors
des deux prochaines tapes. La probabilit que le nombre dtapes
dpasse t est O( 21t ). Le cot de calcul de chaque itration est born
donc ce protocole effectue O(t) itrations avec une probabilit gale
1 O( 21t ).

16.7

Le cas asynchrone

On gnralise maintenant ce protocole au cas asynchrone o deux


processeurs peuvent travailler des vitesses diffrentes et ne peuvent
changer le contenu de leur registres quaprs chaque itration.
En fait, on ne considre plus que les deux processeurs dmarrent
en examinant les diffrents registres. En effet, le fait de choisir un
unique registre de dpart C0 ou C1 est en lui-mme une instance du
problme de coordination de choix.
la place de cela, on suppose que chaque processus choisit son
registre initial de dpart au hasard. Ainsi, les deux processeurs
peuvent tre en conflit ds la premire tape et doivent utiliser le
mcanisme de verrou pour rsoudre le conflit. Lide fondamentale

266

Complexit et Algorithmique avance

est dassocier une estampille (voir [Lam78, AR81] pour ce mcanisme


de datation logique) ti sur le registre Ci , et Ti sur la variable locale
Bi .
On supposera quune opration de lecture sur le registre Ci opre
sur une paire < ti , Ri > o ti est lestampille et Ri la valeur du
registre. Si les processeurs fonctionnaient de manire synchrone, ces
estampilles seraient identiques au numro ditration du protocole
prcdent.
Algorithm 16.7.7 ASYNCH-CCP
Input : les registres C0 et C1 sont initialiss <0,0>
Output : exactement un des deux registres a la valeur
0. Pi initialement examine un registre choisi au hasard Il change alors son
registre courant la fin de chaque itration.
Les variables locales Ti et Bi sont initialises 0
1. Pi obtient laccs exclusif sur le registre courant et lit < ti , Ri >
2. Pi choisit une des 5 options

(a) si (Ri = ) alors HALT


(b) si (Ti < ti ) alors Ti ti et Bi Ri

(c) si (Ti > ti ) alors crire


dans le registre courant et HALT

(d) si (Ti = ti , Ri = 0, Bi = 1) alors crire dans le registre courant


et HALT
(e) sinon
Ti Ti+1 , ti ti+1 , affecter un bit alatoire Bi et crire
< ti , Bi > dans le registre courant
3. Pi libre laccs exclusif sur son registre courant, accde lautre registre
et retourne linstruction 1.

16.7.1

valuation de la complexit

Thorme 16.7.1 Pour tout c > 0, lalgorithme ASYNCH-CPP a


un cot total excdent c avec une probabilit dau plus 2(c)

Chapitre 16. Introduction lalgorithmique probabiliste

16.7.2

267

Preuve

Le seule diffrence relle avec le protocole prcdent rside dans


les instructions du cas (2.b) et (2.c). Un processus du cas (2.b) joue
cache cache avec lautre processus et le processus dans le cas (2.c)
ralise quil est en avance sur lautre processus et est ainsi libre
de faire son choix. Pour dmontrer la validit dece protocole, on
dans sa cellule
considre deux cas o un processus peut crire
courante - cest le cas (2.c) et (2.d). Quand un processus termine
une itration, son estampille
locale Ti est gale celle du registre

courant ti . Ainsi,
ne peut tre crit durant la toute premire
itration de chaque processeur.
Supposons que Pi est dans le cas (2.c) avec son estampille Ti et
la valeur courante du registre Ci avec lestampille ti o ti < Ti . Le
seul
problme possible est celui o P1i peut crire (ou a dj crit)
dans le registre C1i . Supposons que cette erreur ait eu lieu
et

soit t1i et T1i les estampilles durant litration o P1i crit


dans C1i .
A prsent Pi traite Ci avec une estampille Ti et donc, doit avoir
laiss C1i avec
une estampille de la mme valeur avant que P1i
ait pu crire dedans.
Puisque les estampilles ne peuvent dcroitre t1i Ti . De plus
P1i ne peut avoir son estampille T1i qui dpasse ti puisquelle doit
aller de C1i Ci et lestampille de ce registre ne dpasse jamais ti .
On a donc tabli que
T1i ti Ti t1i
mais P1i doit entrer dans la section
(2.b) pour T1i < t1i contre
disant lhypothse quil crit
dans C1i pour ces valeurs des
estampilles.
Le cas (2.d) peut tre analys de manire analogue except que
nous obtenons finalement que
T1i ti = Ti t1i

ceci peut amener un problme puisque permettre


T1i = t1i et le
cas (2.d) peut permettre lcriture par P1i de . Toutefois, on peut

268

Complexit et Algorithmique avance

alors invoquer lanalyse du cas synchrone et carter la possibilit de


cette erreur.
La complexit de ce protocole est simple analyser. Le cot est
proportionnel la taille de lestampillage le plus grand obtenu lors
de lexcution du protocole. Lestampille dun registre peut crotre
seulement dans le cas (2.e) et ceci ne peut se produire que lorsque
le cas 2 sapplique.
De plus, le processeur Pi qui augmente la valeur de lestampille
doit avoir sa variable Bi courante choisie lors dun accs un autre
registre. Ainsi lanalyse du cas synchrone sapplique.

Chapitre 17

De Shannon Kolmogorov
ans cette partie du livre, on aborde les thories de linformation
de Shannon et Kolmogorov. Ces thories, comme dans cet
D
ouvrage le chapitre 18 sur linformatique quantique (page 285) sont
sous-tendus par le concept dentropie, lui-mme d Boltzmann et
issu de la thermodynamique.
Nous reviendrons aussi sur les travaux de Kolmogorov qui est le
pre de la thorie moderne de linformation et des probabilits. Pour
cet expos, nous nous appuierons sur quatre textes qui exposent de
faon claire la thorie (voir [KU87, Lv76, LV97, CLN04]).
Comme on a pu le voir au chapitre 5, la complexit de Kolmogorov
est
dite
complexit
descriptionnelle,
elle
sintresse
la quantit intrinsque dinformation dun objet. En dautres
termes on cherche connatre la quantit dinformation,
exprime en nombre de bits ncessaires pour dcrire entirement
lobjet considr. La description dun objet ne prsente dintrt que dans la mesure o cette description permet de restituer
entirement lobjet. La thorie de linformation ou de la complexit
de Kolmogorov est diffrente de celle de Shannon en ce quelle
sintresse lobjet lui-mme alors que la thorie de Shannon
sintresse la communication, elle se rfre donc au mdium de
communication. Toutefois, la diffrence, si elle est conceptuelle
prsente aussi un intrt commun. Si on veut pouvoir communiquer
la description dun objet travers un mdium de communication,
il faut que le message reu, la description du-dit objet, permette de

270

Complexit et Algorithmique avance

le restituer intgralement. La thorie de Shannon, comme lannonce


le titre de son article (voir [Sha48a]) est une thorie de la communication de messages et non de linformation comme on peut le lire
trop souvent. Ceci signifie quon ne sy intresse pas au "contenu en
information" des messages transmis.
Dans cette thorie, on est seulement intress au problme envoyer/recevoir un message, dun metteur un rcepteur sous lhypothse que lunivers de tous les messages possibles est connu tant par
lmetteur que par le rcepteur, cest--dire que rcepteur comme
metteur possdent une mme mesure de cet univers.
Le cas simple est de considrer un metteur et un rcepteur. Le
rcepteur "sait" quil ne peut recevoir quune information oui ou
non, lune et lautre tant a priori aussi vraisemblables. Lorsque le
rcepteur reoit une rponse, il a reu un bit dinformation.
La mesure de Shannon est celle de la "libert de choix" de
slection dun message parmi tous ceux possibles. Dans la thorie de
linformation de Kolmogorov, dite aussi thorie de la complexit informationnelle, on sintresse la mesure du contenu en information
de chaque objet individuellement considr.

17.1

Lentropie

Lentropie est un concept cl en thorie de linformation. Intuitivement parlant, lentropie "mesure" lincertitude qui rgne dans
un systme physique. Pour ce qui nous concerne ici, nous nous y
intressons du point de vue de la thorie de linformation. Lentropie
existe en univers combinatoire, probabiliste discret, probabiliste
continu, nous ne nous intresserons pas cette dernire thorie qui
renvoie plutt au domaine mathmatique de lanalyse.
17.1.1

Entropie et information de Shannon

Supposons quon apprenne la valeur prise par une variable alatoire X ; lentropie associe mesure alors la quantit dinformation
que nous apporte cette connaissance par rapport au systme dont
est issue cette variable. Et inversement, la connaissance de lentropie

Chapitre 17. De Shannon Kolmogorov

271

de x mesure lincertitude associe la valeur prise par la variable X


avant quon connaisse cette valeur.
Ce sont ces deux aspects complmentaires qui donnent sa puissance explicative au concept dentropie. On peut en effet voir lentropie,
soit comme une mesure de lincertitude associe une variable
X avant quon en connaisse la valeur ;
soit comme la mesure de linformation acquise sur le systme
aprs connaissance de la valeur de X.
Le contenu en information associ une variable ne dpend
pas de la valeur prise par la variable, mais du fait quelle a
pris telle ou telle valeur qui avait telle ou telle probabilit dtre
prise.
Ainsi si la variable X peut prendre les valeurs , , , avec
des probabilits respectives 21 , 41 , 18 , 18 , ce qui importe ce nest pas la
valeur prise par X en tant que telle, mais bien la probabilit associe
cette valeur.
Cest ce qui fait que lentropie associe une variable alatoire
est dfinie comme fonction des probabilits des valeurs pouvant tre
prises par chaque variable alatoire. Lentropie nest pas fonction des
valeurs ainsi prises. Lentropie peut ainsi tre vue comme fonction
dune distribution de probabilits p1 , p2 , . . . , pn . La mesure dentropie de Shannon, ou information de Shannon, associe une telle
distribution de probabilits est dfinie par 1 :
H(X) H(p1 , p2 , . . . , pn )

px . logq px

(17.1)

o q exprime lunit en laquelle sexprime cette quantit dinformation. Si q = 2 lunit est le bit, si q = 3, cest le trit, . . ., si q = 10
cest le dcit. Lusage courant veut quon utilise le bit.
Lutilisation du bit est lie aux contraintes physiques de reprsentation et usage de linformation, en particulier dans les machines
lectroniques, quil sagisse dordinateurs ou dautomatismes. En
fait Shannon sest intress la transmission dinformation travers
un canal. Il se posait la question de savoir comment transmettre
1. On admettra ici que 0. log 0 0 puisque limx0 x. log x = 0.

272

Complexit et Algorithmique avance

linformation produite par une source de manire optimale de telle


faon que cette information puisse tre restitue lautre extrmit
du canal. La rponse est que H(X) bits sont ncessaires pour chaque
symbole du message, avec H(X) H(X1 ) = H(X2 ) = . . . = H(Xn ).
Ce rsultat est connu sous la dnomination de Thorme de Shannon
sur la transmission sans bruit.
Exemple 17.1.1 (Illustration du thorme de Shannon)
Ainsi supposons comme ensemble des possibles gnrs par une
source, les valeurs , , , avec les probabilits respectives 12 , 14 ,
1 1
, , comme ci-dessus. Comme il y a 4 lments, il faudrait deux bits
8 8
de mmoire pour transmettre chaque lment dans une dmarche
nave, soit au total huit bits.
Dans un souci doptimisation, on peut utiliser cette diffrence
de probabilits (un biais en terme de probabilits) pour transmettre
linformation avec moins de bits. On utilisera le moins possible
de bits pour transmettre dont la frquence dapparition est plus
importante que pour ou qui apparaissent moins souvent. On
peut ainsi dcider dassocier le seul bit 0 la survenance de ,
la squence 10 , la squence 110 et la squence 111 .
La longueur moyenne dune telle suite est alors :
1
1
1
7
1
1. + 2. + 3. + 3. = bits.
2
4
8
8
4
On remarquera que cest infrieur aux deux bits de la dmarche
nave. Lentropie associe la source est alors, conformment
la dfinition 17.1 :
1
1 1
1 1
1 1
1
H(X) = . log . log . log . log
2
2 4
4 8
8 8
8
On aurait pu amliorer cette dmarche en associant le bit 0 , le
bit 1 , les chanes de bits 01 et 10 respectivement et . On
aurait alors pour longueur moyenne du message lmentaire :
1
1
1
1
5
1. + 1. + 2. + 2. = bits.
2
4
8
8
4
Et lentropie associe serait alors :
1
1 1
1 1
1 1
1
H(X) = . log . log . log . log .
2
2 2
2 4
4 4
4

Chapitre 17. De Shannon Kolmogorov

17.1.2

273

Gnralisation

Si on reprend comme support du raisonnement, lexemple de


lmetteur et du rcepteur, on suppose qu tout instant lmetteur
envoie une lettre dun alphabet avec une probabilit p() ; lentropie est alors la quantit moyenne dinformation fournie
par chaque nouvelle lettre reue, sur lensemble des lettres
possibles. On peut aussi linterprter comme donnant une mesure
de lincertitude moyenne sur la prochaine lettre venir 1 .
On en dduit que lentropie est maximale ds lors que toutes
les probabilits sont gales. Ainsi, en fait lentropie dune loi de
probabilit est une mesure de sa dispersion.
Revenons notre transmission dinformation travers un
mdium de communication (un canal).
Le nombre de chanes de bits diffrentes de longueur l = 2.n + 1
est 2n ce qui correspond un contenu en information dans chaque
message (i.e. chane de bits) I = n et on a besoin de seulement
I1 = n bits pour coder une telle information dans le systme binaire.
Remarque 17.1.1 Alors que la variable X est considre en gnral
comme
une
chane
de
bits
issue
dun
ensemble
a1 , a2 , . . . , an ; n N , la thorie est suffisamment gnrale pour
concerner aussi les squences finies ou non, de forme
ai1 , ai2 ...aip . . . ; p N et le nombre de ces squences est non seulement infini, mais lensemble dicelles est compact.
Considrons
k
variables
alatoires
indpendantes
Xi ; (p(Xi1 Xi2 ) = p(Xi1 ) + p(Xi2 ) i, j N ) pouvant chacune
prendre ni valeurs i = 1, 2, . . . k. Le nombre de combinaisons
possibles est alors n = n1 .n2 . nk et lentropie est donne par :
H(X1 , X2 , , Xk ) = log n1 + log n2 + + log nk = log n (17.2)
Supposons maintenant que la variable alatoire X puisse prendre
valeur parmi a1 , a2 , . . . , aq et que la valeur ai apparaisse ki fois dans
le message 2 x = x1 , x2 , . . . , xk et k1 + k2 + + kq = k. Pour fixer
1. La formule 17.1 est une constante prs, celle de Boltzmann.
2. Par exemple une lettre peut apparatre plusieurs fois dans un mme message, et
statistiquement, la lettre "e" est la plus frquente dans les phrases en franais.

274

Complexit et Algorithmique avance

les ides, on peut considrer les a1 , a2 , . . . , aq comme les lettres dun


alphabet, les x comme des mots sur cet alphabet et x comme le
message transmettre, de longueur k, chaque ki tant le nombre
dapparitions dune lettre, cest--dire que la lettre ai apparat ki
fois dans le message et non dans un mot particulier, il sagit bien
du message dans son ensemble.
Les messages possibles de longueur k sont alors au nombre de :

k!
k
=
k1 !.k2 ! kq !
k1 , k2 , . . . , kq

(17.3)

et un message parmi tous ceux-ci est X


Pour caractriser le message x = x1 , x2 , . . . , xk il faut donner
lordre des mots dans lensemble (on lappelle aussi la fonction
caractristique de lensemble). Pour le reconstruire, il faut donner
lordre des ki , i = 1, . . . , q ce qui se peut faire en q. log k bits ce qui
permet de restituer le message dans son ensemble. De plus, on peut
transmettre le message en H(X) bits, de telle faon quon ait :
log

k!
k!
H(x) q. log k + log
k1 !.k2 !. . . . .kq !
k1 !.k2 !. . . . .kq !

Remarque 17.1.2 La frquence de chaque symbole ai est dfinie


ki
par i = .
k
Remarque 17.1.3 On peut faire le parallle avec la thermodynamique. Si on suppose quon a un systme compos de N particules
indiscernables, la proportion de particules dans ltat i tant pi ,
quelle est la quantit dinformation apporte par la spcification
complte de ltat desdites particules ?
Il y a :
k!
|S| =
k1 !.k2 !. . . . .kq !
faons dorganiser les N particules en respectant les proportions,
et donc la quantit moyenne par particule est donne par
I=

X
1
log |S|
pi .logpi
N

Chapitre 17. De Shannon Kolmogorov

275

en vertu de la formule de Stirling 1 . Dans le cas o toutes les probabilits sont gales 1/|S|, on retrouve la clbre formule I = log |S|
grave sur la tombe de Boltzmann. Dans ce cas, lentropie de la distribution de probabilit est gale la quantit dinformation apporte
par chaque vnement particulier, ce qui est lorigine de nombre de
confusions qui amnent parler de lentropie dun tat particulier
alors quil sagit dune notion globale dfinie sur un ensemble pour
une mesure de probabilit dtermine.

17.2

Notations

Dans tout ce qui suit dans ce chapitre, comme au chapitre 5,


et dans [LV97] on identifiera les nombres entiers et les squences
binaires affrentes obtenues par un codage binaire classique des dits
entiers comme suit :
0 ; 1 0 ; 2 1 ; 3 00 ; 4 01 ; 5 10 ; 6
11 ; 7 000 ; 8 001 . . .
On peut dfinir cette faon de coder en disant quon associe chaque
entier n la nime suite binaire dans lordre lexicographique gnr par
la taille des suites, avec les 1 les plus droite. Cest ce qui pour nous
dfinira un objet n qui suivant le contexte deviendra lentier n ou une
squence binaire. Conventionnellement, nous noterons |x| la longueur
de la squence binaire affrente (son nombre dlments). Cette
notation caractrisera aussi la valeur absolue, ainsi : |3| = 3, encore
une fois, cest le contexte qui permettra de lever toute ambigut.
Comme nous lavons vu au chapitre 5, si on considre un ensemble
D = {xi : i = (1 n)} dobjets numrs par des nombres n(x),
la complexit de lobjet x cod par la mthode S est donn par :
Ks (x) = min{|p| : S(p) = n(x)}
et si p nexiste pas, alors Ks (x) = . On appelle alors p le
programme et S le langage de programmation. Ks (x) est la
longueur minimale du programme crit en langage S permettant
1. Rappel : limn+

n!
n
2n ( n
e)

= 1 soit encore n !

2n

n n
.
e

276

Complexit et Algorithmique avance

de gnrer x. Considrons diffrents langages S1 , S2 , . . . , Sr de spcification des objets dans D, il est alors facile de construire un
nouveau langage S donnant pour chaque objet x de D, une complexit KS (x) telle quelle ne dpasse que dune constante c de
mme ordre de grandeur que log r le minimum des complexits
KS1 (x), KS2 (x), . . . , Ksr (x). On dira alors quun langage S absorbe
ou domine (linairement) un langage S0 avec une prcision de c si
on a :
x; KS (x) KS0 (x) + c
Deux langages S1 et S2 sont dits c-quivalents sils sabsorbent mutuellement par une constante c. Si on considre la hirarchie des
classes dquivalence des langages (i.e. mthodes) par rapport la
proprit de dominance linaire, lintrt est davoir une hirarchie
pour laquelle la classe minimale est unique, cest la classe dquivalence des langages de description qui domine tout autre langage de
description.
Dfinition 17.2.1 (fonction universelle) Soit K une classe de
fonctions sur N . Une fonction f est dite universelle (ou additivement optimale) sur K si f K et g K il existe une
constante cf,g telle que x; Kf (x) Kg0 + cf,g , cf,g dpend de f et
g mais pas de x.
Dfinition 17.2.2 (fonction de deux variables) Si on remplace
x par hx, yi o h.i est la fonction rcursive bijective standard 1 , alors
on dfinit ainsi une classe de fonctions deux variables.
Deux mthodes additivement optimales f, g spcifiant des objets
de k sont dites quivalentes si et seulement si :
|Kf (x) Kg (x)| cf,g x;
ou cf,g est une constante positive ne dpendant que de f et g.
On en dduit que dun point de vue asymptotique, la complexit
optimale dun objet ne dpend pas du langage dans lequel il est
exprim.
1. Cest--dire h.i : N N N applique la paire (x, y) sur un singleton hx, yi.

Chapitre 17. De Shannon Kolmogorov

17.2.1

277

Le thorme dinvariance

Le thorme dinvariance est la pierre angulaire de toute la


thorie de Kolmogorov. Soit la classe des langages ou mthodes de
description, dfinie par :
{f : f est une fonction partiellement recursive}
La dfinition 17.2.1 nous dit quil existe une fonction qui est dite
universelle (ou additivement optimale) pour une classe de fonctions.
On peut alors noncer le lemme suivant :
Lemme 17.2.1 Il existe une fonction rcursive partielle universelle.
Preuve 17.2.1 Soit f0 une fonction calcule par une machine de
Turing universelle U. Linformation entrante sur le ruban de U,
cest dire le programme que U devra effectuer sera de la forme :
hn, pi = |11 {z
11} 0 np
|n| f ois

Comme vu au chapitre 4 ce programme hn, pi est compos de deux


parties. La premire partie 11 11 reprsente le codage de la machine de Turing particulire Tn et la deuxime partie est le programme (le schme de Tn ) p proprement dit. Ainsi la machine
U simule lexcution du programme p par la machine Tn . Ceci
peut aussi scrire f0 (hn, pi) = fn (p). Par convention nous crirons
U = T0 et donc aussi U(0p) = U(p). Ainsi, si Tn excute la fonction
partiellement rcursive fn , on a alors :
Kf0 (x) Kfn (x) + cfn ,

cfn 2.|n| + 1.

Une gnralisation de ce qui prcde est la complexit conditionnelle. cest la complexit de lobjet x tant connue celle de
lobjet y. Etant donne, comme au chapitre 4, une numration
de machines de Turing particulires T1 , T2 , qui ont pour alphabet externe {0, 1, } le programme est constitu dune suite
ininterrompue de 0 et de 1 dlimite droite et gauche par

278

Complexit et Algorithmique avance

des blancs (i.e. ), ce qui permet la machine Tn considre de


dtecter le dbut et la fin du programme 1 . A lnumration des
machines T1 , T2 , doit tre associe une numration des fonctions partiellement rcursives quelles excutent f1 , f2 , de telle
manire que la machine Ti excute la fonction fi . Comme ci-dessus,
h.i : N N N est une bijection standard dune paire (x, y)
sur un singleton hx, yi. On peut gnraliser la dmarche avec des
triples, et on a alors h.h.ii : N N N N et donc finalement
(x, y, z) = hx, hy, zii = hx, y, zi.
Dfinition 17.2.3 (Complexit conditionnelle)
Soit des nombres entiers x, y, p.
Toute fonction f semi-rcursive telle que : f (hy, pi) = x est
une description de x. La complexit Kf de x par rapport y, dite
complexit conditionnelle de x eu gard y est dfinie par :
Kf (x|y) = min{|p| : f (hy, pi) = x; }
p est un programme de calcul de x tant donn y, et si p nexiste
pas, alors Kf (x|y) = .
Thorme 17.2.1 (Invariance ) Il existe une fonction rcursive
partielle f0 telle que, pour toute autre fonction rcursive partielle
f , il existe une constante cf telle que pour toutes squences x, y ;
Kf0 (x|y) Kf (x|y) + cf et cf ne dpend ni de x ni de y, mais de f .
Preuve 17.2.2 Considrons une machine de Turing quatre rubans, compose de deux rubans dentre, lun ordinaire et lautre
contenant des informations dites conditionnelles. Un ruban rsultats
et un ruban de travail. Soit n(T) le nombre associ la machine
de Turing T (voir chapitre 5). Soit f0 la fonction partiellement
rcursive universelle calcule par la machine de Turing universelle
note U. Ceci tant, U dmarre avec une entre 0n 1p; p {0, 1} ,
1. Au chapitre 4 on navait utilis que les deux symboles 0 et 1 dans lalphabet
extrieur pour montrer que cest possible. Ici, il ny a pas perte de gnralit
considrer trois symboles, on peut toujours se ramener deux, mais pour lexpos, il
est plus simple den considrer trois.

Chapitre 17. De Shannon Kolmogorov

279

sur le ruban dentre ordinaire, et y sur lautre. U sarrte avec


x sur le ruban rsultats si et seulement si T dmarrant avec une
entre p sur le ruban dentre ordinaire et y sur lautre, sarrte avec
x sur le ruban de sortie pour n(T) = n. Il suffit alors de prendre
cf = n + 1 pour terminer la preuve.

Ainsi toute fonction f0 qui satisfait au thorme dinvariance est
optimale au sens ci-dessus. Par consquent, nous pouvons dfinir une
machine de rfrence U comme dans la preuve ci-dessus et sa fonction
f0 associe et alors parler de K indpendamment de son indice.
On dfinit alors la complexit de Kolmogorov conditionnelle
K(x|y) de x sous la condition y comme tant gale Kf0 (x|y) pour
cette fonction f0 optimale fixe. La complexit de Kolmogorov
inconditionnelle de x se dfinit alors comme K(x) = K(x|) o
est la squence binaire vide (i.e. || = 0).
Exemple 17.2.1 Considrons deux langages de programmation,
par exemple ADA et Pascal. Tout programme syntaxiquement correct crit en lun ou lautre de ces deux langages peut tre considr
comme une fonction partiellement rcursive des donnes dont le
rsultat est celui obtenu par excution du programme. numrons
tous les programmes corrects syntaxiquement, crits en ADA, soit :
ADA = {ada1 , ada2 , } la liste de tels programmes. Il existe
parmi ceux-ci un programme ada qui compile tout programme
Pascal. De mme, si on numre tous les programmes syntaxiquement corrects en Pascal, soit PASC = {pasc1 , pasc2 , }, on peut
crire un compilateur ADA en Pascal, soit pasc PASC. Mais
pour excuter un programme en Pascal depuis ADA, il faut utiliser ada ADA, et on a donc du point de vue complexit :
KPascal (x) KADA (x) + 2.|pasc | ; et de mme pour excuter un
programme ADA depuis Pascal, on aura :
KADA (x) KPascal (x) + 2.|ada |.
Par consquent :
|KADA (x) KPascal (x)| = 2.(|ada | + |pasc |), x

(17.4)

o |ada| et |pasc| sont des constantes, les tailles des compilateurs,


exprimes en nombres de symboles des langages de programmation.

280

Complexit et Algorithmique avance

Le thorme dincompressibilit nous dit que si on considre la


machine de Turing universelle, tout objet x, cest--dire pour ce
qui nous concerne, toute squence binaire finie, doit tre dcrite
en un code comportant deux parties. La premire partie est "le
programme" qui code la machine de Turing lmentaire qui permet
de gnrer x, la seconde partie du code tant la donne 1 qui doit
tre traite par la dite machine de Turing lmentaire.
Pour la machine de Turing universelle de rfrence, soit U cette
machine, la longueur du plus petit programme p (au sens du nombre
de caractres de lalphabet extrieur utiliss) qui gnre x est donne
par min{|p| : U(p) = x}, mais dans la preuve du lemme 17.2.1 on a
vu que : U(0|p) = U(p). Il sensuit alors quon a :
K(x) = min{|T| + |p| : T(p) = x} 1
T tant la squence de codage de la machine de Turing lmentaire
sur U, ce qui fait quon peut r-crire la dfinition de la complexit
de Kolmogorov relativement (conditionnellement) la machine T :
K(x) = min{|T| + K(x|T) : T {T0 , T1 , }} + O()

(17.5)

Cette criture souligne le fait que la nature de la complexit de


Kolmogorov est lie un code en deux parties.
Dans lexemple suivant :
x = 1000000110000000000001

(17.6)

on peut coder x par une machine de Turing lmentaire traduisant


14 (de la base 10) en se rfrant au codage du chapitre 4 pour
lalphabet extrieur dune machine de Turing universelle.
Linterprtation de K(x) comme tant le code minimal en deux
parties de x, une partie dcrivant la machine de Turing lmentaire, aussi appele le modle pour les aspects "rguliers" de x
1. On remarquera ici que la machine de Turing lmentaire est une donne pour la
machine de Turing universelle et que la donne de la machine de Turing lmentaire
pourrait trs bien tre un programme. Ainsi dans lexemple 17.2.1, le compilateur
pascal crit en ADA est une donne pour la machine de Turing lmentaire quest le
compilateur ADA. Cest ce qui a conduit dans les ordinateurs ne pas distinguer une
mmoire pour les programmes dune mmoire pour les donnes.

Chapitre 17. De Shannon Kolmogorov

281

et la seconde partie, dcrivant les aspects "irrguliers"de x sous


forme dun programme excut par T a une signification profonde.
On peut interprter ceci en disant que la partie "modle" de x
constitue la partie signifiante de x (cest--dire celle qui contient
toute linformation) et que lautre partie est ce qui reste. Biens sr
cel signifie en fait que le "bon modle" est la machine de Turing
lmentaire T telle que :
minT {|T| + K(x|T) : T {T0 , T1 , }}

(17.7)

T contient alors toute linformation utile de x. La question restant


en suspend tant comment trouver T parmi toutes celles capables
dexcuter x ?
17.2.2

Ne pas dpasser les bornes

Le thorme 17.2.1 montre que la hirarchie Kf des mesures de


complexit de Kolmogorov en contient une qui est additivement
optimale. Cest loutil principal permettant destimer les bornes
maximales pour K(x). Ces bornes suprieures dpendent du choix
de la fonction f de rfrence et diffrent lune de lautre par une
constante additive.
Intuitivement, on admettra videmment que la complexit de
Kolmogorov (dsormais K-complexit) dune squence binaire ne
saurait tre suprieure la longueur (i.e. au nombre de bits) de la
dite squence. Do le thorme suivant :
Thorme 17.2.2
c N : x, y, K(x) |x| + c etK(x|y) K(x) + c.
Preuve 17.2.3 La premire partie du thorme, savoir
K(x) |x| + c est vidente. En effet, soit T une machine de
Turing lmentaire qui se contente de recopier la donne, on a
alors, la K-complexit pour la machine T : KT (x) = |x|. Pour la
seconde partie du thorme, considrons une machine de Turing
lmentaire T telle que pour toute donne hy, zi, elle calcule x si
et seulement si la machine universelle de rfrence U fournit le

282

Complexit et Algorithmique avance

rsultat x pour la donne hz, i. Alors, , on a KT (x|y) = K(x),


et par le thorme 17.2.1, il existe une constante c telle que :
K(x|y) KT (x|y) + c = K(x) + c.

17.2.3

Compressibilit et incompressibilit

Une application essentielle de la complexit de Kolmogorov est


lie la proprit de compressibilit, cest elle qui permet doptimiser
la compression de donnes sans pertes. Il est trivial de dire quil y
a des squences qui peuvent tre dcrites par des programmes de
longueur plus courtes quelles mmes sur une machine de Turing
universelle. En particulier, on constate couramment quil existe des
squences qui peuvent tre dcrites par des programmes plus courts
..2
2.
quelles mmes. Ainsi par exemple 22 peut scrire de faon plus
synthtique f (1) = 2 et f (i) = 2f (i1) pour i > 1.
..i
i.
Considrons f (i) = ii et les fonctions du type 2f (i) avec i N .
Pour toute fonction rcursive f de ce type, il existe une constante c
telle que , quelle que soit la valeur de n N il y a une squence
x telle que : |x| = f (n) mais avec K(x) n + c. Cest--dire, que
suivant la nature de i, f (i) le ratio de la longueur de la squence x
sur la longueur de sa description peut crotre aussi rapidement que
la fonction rcursive elle-mme. De telles squences sont dites trs
compressibles.
Il y a 2n squences binaires possibles de longueur n, et parmi
celles-ci,
i=n
X

2i

(17.8)

i=0

admettent une description plus courte, cest--dire 2n 1, et il y en


a au moins une telle que C(x) n, o C(x) est la compression de
x, et elle est alors dite incompressible. Il sensuit que pour toute
valeur n N , et toute squence binaire y, il y a une autre squence
binaire x telle que |x| = n et C(x|y) n.
Do la dfinition :

Chapitre 17. De Shannon Kolmogorov

283

Dfinition 17.2.4 (Squence c-incompressible) Pour une constante c, on dira quune squence x est c-incompressible si et
seulement si C(x) |x| c.
Une squence incompressible, cest--dire c-incompressible 1 avec c
aussi petit quon veut sera, intuitivement, dite alatoire puisquelle
nadmet pas dautre reprsentation quelle mme. Dans un premier
temps donc, on considrera comme alatoire toute squence binaire
qui nadmet dautre reprsentation quelle mme. Conformment
17.8 il y a donc 2n 2nc + 1 squences binaires c-incompressibles,
soit pour :
c= 0 ; 2n 2n0 + 1 il y a au moins une squence de longueur
n qui est 0-incompressible, cest--dire alatoire ;
c=1 ; 2n 2n1 + 1, cest--dire quune squence de longueur
n sur deux au moins est 1-incompressible ;
c=2 ; 2n 2n2 + 1 ;
...
c= n ; il ny a quune seule squence n-incompressible.
Do le thorme :
Thorme 17.2.3 (Incompressibilit)
{c N , y N , A : |A| = m} = {m.(1 2c ) + 1}
lments de A au moins sont tels que C(x|y) log m c.
Preuve 17.2.4 Le nombre de programmes de MTU de longueur
infrieure log m c est donn par la formule :
log mc1
X

2i = 2log mc 1.

i=0

Il y a donc au moins m m.2c + 1 lments de A qui nadmettent


pas de programme de longueur infrieure log m c.

1. Il faut bien comprendre ce que signifie ici c-incompressible. Ainsi dire quune squence de longueur n est 1-incompressible cest dire quil nexiste pas de reprsentation
delle-mme de longueur gale ou infrieure n 1 (voir thorme 17.2.3.)

284

Complexit et Algorithmique avance

Ainsi, considrons lensemble E form de toutes les squences de


longueur n sur un alphabet donn ({0, 1} en loccurence) ; E = {x |
|x| = n} la cardinalit dun tel ensemble est : m = 2n . On a une
estimation de la complexit K(x) n + c pour c fix quel que soit
x dans E. Le thorme ci-dessus 17.2.3 dit que cette estimation
rapide est assez bonne. La raison profonde en est que comme il y a
relativement peu de programmes courts pour gnrer une suite de n
bits, il y a peu dobjets de faible complexit.
Remarque 17.2.1 Ces trois thormes 17.2.1, 17.2.2, 17.2.3 fournissent les outils principaux pour aborder pratiquement les problmes
de compression des donnes et programmes.

Chapitre 18

Le modle quantique
18.1

Introduction

un des problmes majeurs pos la recherche en informatique


L
est de "dpasser" le modle de Turing. Cel signifie que lenjeu
est de construire un modle thorique qui "en fasse plus" que ce que
peut faire une machine de Turing, et qui fasse au moins tout ce que
fait une machine de Turing. Comme nous lavons vu, la MTU est
une machine tats discrets bien dtermins et reprsentables en
logique et algbre de Boole. Le modle de calcul MTU est un modle
totalement abstrait qui a fond linformatique comme science. Cest
partir de cette abstraction quon a construit les ordinateurs. Par
un de ces retournements dont la dialectique a le secret, on pourrait
penser que cest aujourdhui linverse qui se produit avec le modle
quantique. Cest partir de la pratique que le modle thorique
est remis en cause. Certes, mais ici il sagit de pratique thorique
car les moyens de calcul dont il est question ici nexistent pas et
on ne sait sils existeront un jour. Tout au plus peut-on lesprer
ou le redouter. En tous cas, un esprit scientifique ne saurait laisser
passer cette ventualit sans en tudier les possibles. Cest ce que
nous allons essayer de faire dans ce qui suit.

286

18.2

Complexit et Algorithmique avance

Retour sur les bits classiques - Cbits

Dans ce chapitre, nous noterons Cbits les bits classiques que


nous connaissons bien, deux tats {0, 1} et Qbits voir [Mer03] 1 les
units dinformation quantique que nous allons prsent tudier. Signalons galement un ouvrage entirement consacr linformatique
quantique [NC04].
Aux fins dhomognisation de nos notations nous allons utiliser
les notations de Dirac pour les Cbits comme pour les Qbits. Les
deux tats dun Cbits sont alors reprsentables par une paire de
vecteurs orthogonaux de dimension 2 nots :
|0i , |1i

(18.1)

Lexcution dun calcul ncessite en gnral plus dun Cbit. Il est


alors utile et naturel de systmatiser la notation prcdente pour
reprsenter les quatre tats dun systme deux Cbits par quatre
vecteurs orthogonaux forms par le produit tensoriel (ou produit de
Krnecker) de deux telles paires (on travaille alors dans un espace
de dimension 4).
|0i |0i, |0i |1i, |1i |0i, |1i |1i

(18.2)

On trouve aussi une criture quivalente plus concise, par omission


de
|0i|0i, |0i|1i, |1i|0i, |1i|1i
(18.3)
Ou encore :
|00i, |01i, |10i, |11i

(18.4)

On peut galement utiliser une notation dcimale :


|0i2 , |1i2 , |2i2 , |3i2

(18.5)

Dans lcriture ci-dessus (18.5), lindice 2 indique la dimension du


vecteur en cause. Par gnralisation de cette notation dcimale, on
1. Les notations Cbit et Qbit sont dues David N. Mermin qui les introduit de
prfrence qubit. Nous avons repris ces notations dans cet ouvrage, les trouvant la
fois plus concises et plus explicites. Nous devons ici remercier D. Mermin qui nous a
permis dutiliser son article [Mer03].

Chapitre 18.

Le modle quantique

287

reprsente ltat dun vecteur de n Cbits comme tant un vecteur


en dimension 2n , cest--dire :
|xin , 0 x < 2n

(18.6)

qui est le vecteur induit par le produit tensoriel de n paires orthogonales de vecteurs orthogonaux de dimension deux.
Ainsi, on obtient :
|18i6 = |010010i = |0i|1i|0i|0i|1i|0i =
(18.7)
|0i |1i |0i |0i |1i |0i
Le produit tensoriel est une faon bien approprie de reprsentation
des tats possibles dun systme plusieurs Cbits.
Pour revenir une notation plus classique, on peut maintenant
reprsenter ces Cbits par des vecteurs colonnes classiques 1 :

|0i

1
0
, |1i
0
1

(18.8)

Et videmment, les vecteurs correspondants dans le produit tensoriel


sont obtenus de la faon suivante :

y0 . z0

y1
z1

y0 .z0
y0 .z1
y1 .z0
y1 .z1

(18.9)

1. Il faut remarquer ici que cette notation a pour but dhomogniser la notation
avec le calcul quantique pour lequel ltat de chaque photon est en fait une superposition
dtats :
|i = cos | i + sin | i

288

Complexit et Algorithmique avance

et

z
y
x
0 . 0 . 0

z1
y1
x1

x0 .y0 .z0
x0 .y0 .z1
x0 .y1 .z0
x0 .y1 .z1
x1 .y0 .z0
x1 .y0 .z1
x1 .y1 .z0
x1 .y1 .z1

(18.10)

Par exemple le vecteur de dimension 8 reprsentant |6i3 est obtenu


par :

|6i3 = |110i = |1i.|1i.|0i =

0.0.1
0.0.0
0.1.1
0.1.0
1.0.1
1.0.0
1.1.1
1.1.0

0
0
0
0
0
0
1
0

0
1
2
3
4
5
6
7

(18.11)

Comme on peut le voir sur la formule (18.11) ci-dessus, |6i3 se note


par le vecteur de dimension 8 (i.e. de dimension 23 ) avec un 1
llment dindice 6. Cest une consquence gnrale de la notation
standard du produit tensoriel. lavantage de cette forme est dtre
homogne avec la reprsentation vectorielle du Cbit telle quelle est
donne par les formules 18.8.

18.3

Oprations sur les Cbits

En calcul quantique, toutes les oprations sur les Qbits sont


rversibles, except lopration de "mesure" que nous dcrirons plus

Chapitre 18.

Le modle quantique

289

loin. Cette opration de mesure est triviale sur les Cbits et nest
pas reconnue comme une opration part entire.
Il ny a que deux oprations rversibles portant sur un seul Cbit.
1. Ne rien faire, ou lopration identit, doprateur 1 :
1|0i = |0i, 1|1i = |1i

(18.12)

X|0i = |1i, X|1i = |0i

(18.13)

2. Flip, dfinie par :

En fait cest, pour un seul bit, linversion classique en algbre de


Boole. Lorsquil sagit de deux Cbits, les oprations rversibles sont
moins videntes. On peut dfinir lopration dchange des valeurs
(oprateur swap note S) :
S|xyi = |yxi.

(18.14)

Lors de la manipulation doprations multi-Cbits, il est recommand


davoir une bonne vision de ce qui se passe pour chacun des tats
gnrs par lopration sur chacun des Cbits.
On indexe les Cbits par les entiers 0, 1, 2, . . . , de droite
gauche en associant ces index la puissance de 2 reprsente par
chaque Cbit. Ainsi, si x scrit en extension binaire :
x = 8.x3 + 4.x2 + 2.x1 + x0
alors on a :
|xi4 = |x3 x2 x1 x0 i = |x3 i|x2 i|x1 i|x0 i = |x3 i |x2 i |x1 i |x0 i
(18.15)
Une opration qui concerne le Cbit n 2 sera note X2 et dfinie
comme suit :
X2 = 1 X 1 1
(18.16)
Et est dcrite comme :
X2 [|x3 i |x2 i |x1 i |x0 i] = |x3 i [X|x2 i] |x1 i |x0 i (18.17)

290

Complexit et Algorithmique avance

On peut laborer des oprations multi-Cbits significatives qui ne


soient pas dduites doprations sur des Cbits seuls et qui nont a
priori pas dinterprtation dans un environnement classique, mais
qui soient correctes formellement. Par exemple, on peut dfinir
lopration suivante :
Z|0i = |0i, Z|1i = |1i

(18.18)

Cette opration, qui est bien dfinie dans un espace vectoriel de


1-Cbits (voir 18.9) de dimension 2 na pas de sens dans le contexte
des Cbits. Seuls les deux vecteurs |0i et |1i ont une signification,
laquelle est la distinction entre les deux seuls tats possibles, savoir
0 et 1.
Ainsi, les tats possibles des combinaisons linaires des vecteurs
Cbits forment un espace vectoriel largement sous-utilis. De plus,
lutilisation dun espace vectoriel de dimension 2n peut sembler
superftatoire ds lors quon ne sintresse qu un seul ensemble des
2n vecteurs de la base orthonorme, en dehors de laspect pratique de
la structure ainsi introduite par la reprsentation en vecteurs colonne
du produit tensoriel. Les seules oprations rversibles signifiantes
sur n Cbits sont les (2n )! permutations des 2n vecteurs de base.
Toutefois, une opration a priori non signifiante comme Z dfinie
en 18.18 , utilise en conjonction avec une autre tout aussi a priori
non-signifiante peut permettre des oprations trs signifiantes dans
un contexte multi-Cbits. Ainsi en est-il des oprations 12 (1 + Z1 Z0 )
et 12 (1 Z1 Z0 ) portant sur des 2-Cbits.

1
x, y {0, 1}; {{x = y} { (1 + Z1 Z0 [|xi|yi] =
2
= |xi|yi} {{x =
6 y}
(18.19)
1
{ (1 + Z1 Z0 [|xi|yi] = 0}}
2
et pour 12 (1 Z1 Z0 ) :

Chapitre 18.

Le modle quantique

291

1
x, y {0, 1}; {{x 6= y} { (1 Z1 Z0 [|xi|yi] =
2
= |xi|yi} {{x = y}
(18.20)
1
{ (1 Z1 Z0 [|xi|yi] = 0}}
2
Ces deux oprateurs sont des oprateurs de projection de lespace vectoriel couvert par tous les tats possibles des 2-Cbits. Les
oprateurs de projection sont les extensions linaires des vecteurs
dans lespace, partir de la base sur laquelle ils sont dfinis. Plus
gnralement, toute opration dont laction nest dfinie que sur les
tats de base classiques peuvent tre identifis avec leur extension
linaire dans tout lespace vectoriel.
Considrons loprateur S10 :

S10

1
1
(1 + Z1 Z0 ) + X1 X0 (1 Z1 Z0 )
2
2
1
ou
S10 = (1 + Z1 Z0 ) + X1 X0 Y1 Y2
2
avec
Y = XZ.
(18.21)
=

Lopration S10 qui change les valeurs des Cbits 1 et 0 se


comporte comme lidentit si leurs tats sont |00i ou |11i et comme
loprateur X1 X0 si les tats sont |01i ou |10i .
Un autre exemple important dopration 2-Cbits est le controle-non
ou XOR rversible :
C10 |xi|yi = (X10 )x |xi|yi = |xi|y xi

(18.22)

Loprateur note laddition modulo 2.


Lopration C10 inverse (dbloque) le Cbit 0 (dit Cbit verrou), si et
seulement si le Cbit 1 (dit Cbit de contrle) est la valeur 1.
On peut tendre cette opration au-del des projections 1-Cbits.
1
1
1
C10 = (1 + Z1 ) + X0 (1 Z1 ) = (1 + Z1 + X0 X0 Z1 ) (18.23)
2
2
2

292

Complexit et Algorithmique avance

Cette opration possde une symtrie intressante ; en changeant


les oprations X et Z on change galement le rle des Cbits verrou
et contrle, on convertit C10 en C01 .
18.3.1

Transformation de Hadamard

Une opration classique et qui elle aussi semble sans signification premire vue, mais qui va savrer trs pratique, cest la
transformation dite de Hadamard qui se dfinit comme suit :

1
1
1 1
H = (X + Z) = .
2
2
1 1

(18.24)

X2 = Z2 = 1 et XZ = ZX

(18.25)

Or on a aussi :

Il sensuit que :
1
H2 = (X + Z) = 1,
2

HX = (X + Z)X = Z(X + Z) = ZH (18.26)

Et donc aussi :
HXH = Z

et

HZH = X

(18.27)

En utilisant quatre fois une opration de type Hadamard, on peut


excuter une transformation classique et trs utile, qui est dinterchanger les rles des Cbits de contrle et de verrouillage :
C01 = (H1 H0 )C10 (H1 H0 )

18.4

Les bits quantiques ou Qbits

On a reprsent ci-dessus les tats de n Cbits comme une base de


2 vecteurs orthonorms dans un espace vectoriel de dimension 2n
construit comme tant le produit tensoriel de n vecteurs de lespace
2 dimensions. Les seuls oprations signifiantes a priori sur ces
espaces vectoriels sont les permutations des vecteurs de base. Nous
n

Chapitre 18.

Le modle quantique

293

avons pu construire de telles oprations, ou mis en vidence des


relations entre elles en introduisant des oprations a priori non
signifiantes qui multiplient les vecteurs de base par des scalaires
(en particulier 0 ou 1) ou (voir 18.24) oprent des combinaisons
linaires non triviales.
Lintroduction des bits quantiques ou Qbits est en fait une extension
de la notion dtat des Cbits. Lextension consiste en lutilisation
de tout lespace des vecteurs. On passe de la base classique des 2n
tats orthogonaux des vecteurs unitaires arbitraires de lespace
vectoriel de toutes les combinaisons linaires (appeles superpositions) des tats de base classiques avec des coefficients complexes
(appels amplitudes). Ainsi, ltat gnral dun simple Qbit est-il la
superposition de deux tats de base classiques :
|i = .|0i + .|1i avec 2 + 2 = 1

(18.28)

Les amplitudes et sont des nombres complexes contraints par


la relation de normalisation. Ainsi, la forme la plus gnrale pour
ltat de n Qbits est donne par :
X

|i =

x |xin

(18.29)

0x<2n

Les amplitudes complexes tant contraintes par la condition de


normalisation gnralise :
X

|x |2 = 1

(18.30)

0x<2n

tendre ainsi lensemble des tats possibles de la base classique de


vecteurs unitaires orthonorms des vecteurs unitaires arbitraires
de lespace couvert par la base classique introduit la diffrence
fondamentale entre Cbits et Qbits.
Ltat le plus gnral possible pour deux Cbits est de la forme :
|i = |x1 i|x0 i

(18.31)

Ceci peut se comprendre comme un tat pour lequel le Cbit n1 est


dans ltat |x1 i et le Cbit n 2 est dans ltat |x0 i chaque Cbit a un

294

Complexit et Algorithmique avance

tat qui lui est propre.


De la mme faon, ltat le plus gnral pour 2 Qbits est de la
forme :
|i = 3 |3i2 + 2 |2i2 + 1 |1i2 + 0 |0i2
= 3 |1i|1i + 2 |1i|0i + 3 |0i|1i + 3 |0i|0i

(18.32)

Si chaque Qbit a un tat qui lui est propre, cet tat dun 2-Qbit
sera, conformment la rgle sur la gnralisation sur les tats des
multi-Qbits, le produit tensoriel de ceux de deux tats de 1-Qbits.
Ainsi un tat dun 2-Qbit aura la formegnrale :
|i|i = (.|1i + .|0i).(.|1i + .|0i)
= ..|1i|1i + ..|1i|0i + ..|0i|1i + ..|0i|0i
(18.33)
Mais ltat |i de lquation 18.29 ne peut avoir cette forme que si
3 0 = 2 1 .
Ainsi dans un tat dun multi-Qbit, il ne peut y avoir dtat individuel propre chaque Qbit. Cest l le distingo essentiel des Qbits
davec les Cbits.
Les tats des de n Qbits dans lesquels aucun sous-ensemble
infrieur n na dtat propre sont dits emmls ou emptrs 1 . Ainsi
les tats gnriques des n-Qbits sont emmls (imbriqus). Les tats
des n-Qbits sont obtenus par produit tensoriel dtats de moins
de n-Qbits dont les amplitudes doivent satisfaire des contraintes
comme exprim dans les expressions 18.29 et 18.30.

18.5

Oprations sur les Q-bits

Les algorithmes quantiques oprent sur les tats des n-Qbits en


respectant la condition de normalisation 18.30.
Les oprateurs qui prservent la norme sur un espace vectoriel
complexe sont les oprateurs unitaires. Les ingrdients de base
dun algorithme quantique sont les oprateurs unitaires sur lespace
1. Entangled en anglais.

Chapitre 18.

Le modle quantique

295

complexe de dimension 2n :
|i U|i,

U unitaire

(18.34)

Les oprations classiques et leurs extensions linaires, de la base sur


laquelle elles sont dfinies la totalit de lespace, les permutations
des 2n vecteurs de base classiques, sont des cas spciaux de tels
oprateurs.
Si on considre les 2n tats de n bits classiques comme les 2n
vecteurs de base orthonorms |xin dans un espace vectoriel luimme de dimension 2n , et les oprations rversibles sur les Cbits
comme de simples permutations sur ces vecteurs de base, alors la
gnralisation n bits quantiques se fait naturellement : les tats
des Qbits consistent en toutes combinaisons linaires complexes
satisfaisant la condition de normalisation et toutes les oprations
rversibles quon peut excuter sur ces Qbits consistent en toutes les
oprations unitaires. Les tats classiques et oprations reprsentent
alors un sous-ensemble (petit) des tats quantiques et des oprations
associes. Le passage des Cbits aux Qbits ouvre des perspectives
absolument nouvelles et quasi infinies. En effet, si le nombre dtats
dun Cbit est spcifi par un simple bit dinformation, 0 ou 1, ltat
dun Qbit peut prendre une infinit de valeurs conformment
lexpression dun Qbit ( voir expression 18.28), la seule condition
que les amplitudes associes, les coefficients et satisfassent
la condition de normalisation (voir 18.30). Et, alors, au lieu que
les Cbits soient limits dans une collection dtats obtenus par
permutations, on peut agir sur les Qbits par une suite continue de
transformations unitaires. Tout ceci nous amne un niveau de
possibilits de calcul insoupconn et compltement nouveau.
Tout cela serait trop beau sil ny avait une difficult majeure l
o un informaticien habitu la manipulation des Cbits ne lattend
pas. Le problme majeur est effectivement li la difficult dans
laquelle on se trouve didentifier ltat dun Qbit donn. tant
donns n Qbits dans un tat |i, on ne dispose daucun moyen pour
identifier cet tat, cest--dire pour extraire linformation qui y est
associe ; cest--dire pour connatre les coefficients x de la formule
18.29.

296

18.6

Complexit et Algorithmique avance

Extraire linformation des Qbits ?

Cest sans doute l, hors la ralisation physique dun ordinateur


quantique, lobstacle majeur auquel on est confront dans lutilisation des Qbits. Si on dispose de n Qbits en ltat |xin "lire" le
nombre x pose un problme majeur.
Sil est un problme qui ne se pose pas avec les Cbits, cest bien
celui qui consiste en lire ltat. La simple lecture dune diode, dun
cran ou dune impression sur imprimante suffit le plus souvent
connatre ltat dun Cbit, dun octet ou dun mot. Il nen va pas
de mme avec les Qbits. Ds lors que lordinateur a fini de travailler
sur des Cbits, leur tat |xin reste stable tant quon ny touche pas.
Les choses sont trs diffrentes pour les Qbits. Soient n Qbits en
ltat :
X
|in =
x .|xin
(18.35)
x

Il ny a pas moyen de connatre la valeur de lamplitude x . La seule


faon dont on dispose pour extraire linformation des Qbits, cest
de les mesurer.
Mesurer n-Qbits consiste a les confronter un appareil qui
produit un entier x : 0 x < 2n . Le rapport entre ltat |i dun
Qbit et la valeur de x fournie par la mesure est le suivant :
La probabilit dobtenir x est juste px = |x |2 , o x est lamplitude
de |xin dans lexpansion 18.34 de |i. Cette valeur est connue sous
le nom de rgle de Born daprs le nom du physicien Max Born.
On pourrat penser que, par des mesures rptes on peut obtenir
une bonne statistique de rpartition des magnitudes |x | mais cette
possibilit est carte par la deuxime rgle fondamentale :
Rgle 18.6.1 Une fois donne la valeur de x par la mesure, ltat
des n Qbits nest plus de longueur |in , mais |xin .
Ltat aprs mesure ne contient aucune trace de linformation contenue dans ltat |i prcdant la mesure.
La mesure de ltat de n Qbits est irrversible : Chaque tat
n damplitude positive x peut devenir ltat |xin aprs mesure.

Chapitre 18.

Le modle quantique

297

Il ny a aucun moyen de reconstituer ltat initial partir de


ltat final. La mesure est LA SEULE opration irrversible
sur les Qbits. Toutes les autres oprations sont unitaires.
Rcapitulatif des possibilits de manipulation
des Cbits et des Qbits

Cbits versus Qbits

Cbits

tat pour n

|xin , 0 x < 2n

P
P

Cbits/Qbits
Sous-ensemble
de n Cbits/Qbits
Oprations rversibles
sur les tats
Lecture possible
de ltat ?
Acquisition
dinformation

Qbits

Toujours
signifiant
Permutations

x |xin ,

|x |2 = 1

Gnralement
sans signification
Transformations
unitaires

OUI

NON

Lecture
simple

Mesure
physique

Nature de
linformation acquise

x avec probabilit
|x |2

tat aprs acquisition


dinformation

Le mme |xi

Diffrent ;
nouvel |xi

Annexe A

Notations de
Bachman-Landau
i E est un ensemble quelconque et f ; g deux fonctions valeurs
relles ou complexes dfinies sur E, on dfinit des symboles et
notations utiles pour caractriser le comportement asymptotique de
f et g.

A.1

Les symboles grand O ,

grand O concerne des fonctions de R sur R et est dfini de la


manire suivante :
{f (x) = O(g(x))}{ R+ , r R|xr; |f (x)| |g(x)|}
En particulier, lexpression :
f (x) = O(g(x))(x +)
signifie quil existe un rel r tel que :
f (x) = O(g(x)) pour r < x < + ; ce qui
scrit encore :
(r R)( R+ )(x ]r, +[)|f (x)| |g(x)|
Nous avons utilis de manire classique les notations de Landau
pour des fonctions f et g valeurs positives, f (n) et g(n) tant
des fonctions de complexit (voir [GJ79]) valeurs positives, o n
est la taille dune donne, quon appelle aussi taille dun codage

300

Complexit et Algorithmique avance

dinstance I dun problme donn (ou encore longueur dentre). On


peut dfinir alors :
1. f (n) = O(g(n)) si et seulement si, ( R+ ) f (n) g(n)
pour toute valeur de n, sauf peut tre pour un ensemble fini
(ventuellement vide).
2. {f (n) = (g(n))} {g(n) = O(f (n))}
3. {f (n) = (g(n))} {f (n) = O(g(n))} {g(n) = O(f (n))}
A.1.1

Le symbole petit o

Lexpression f (x) = o(g(x))(x +) signifie que le rapport


tend vers 0 quand x +. Il sagit donc dune proprit plus
forte que celle du symbole O ; en particulier, on a toujours :
f (x)
g(x)

{f (x) = o(g(x))} {f (x) = O(g(x))}

Index des noms cits

A
Al jabr, 3
Al Khawarizmi, 3, 7
Algoristes, 5
Ariane, 12
Athnes, 11

Didon, 3
nide, 11
Euclide, 3
Euler, 194

F
Frege, 5

Bachman, 299
Boltzmann, 269
Borkva, 242, 244
Burk, 133
Byrsa, 3

Hilbert, 27
Hoare, 239

Carthage, 3
Chatin
nombre de, 52
Chine, 3
Chinois, 9
Church, 40, 65
Cook, 174
Couffignal, 133
Crte, 11

Gdel, 28, 67
Goldstine, 133

H
I
Intuitionnistes, 5

K
Kantorovitch, 209
Kolmogorov, 53, 269
Kruskal, 242

Dantzig, 209
Ddale, 12
Didon
Elissa, 3

Labyrinthe, 3, 12
Landau, 299
Larba, 3
Las vegas, 239
Lebedev, 133
Leibniz, 9, 44, 57
Lvine, 174
Lupanov, 23

E
Ecco Humberto, 11
Elissa

302

M
Markov, 133, 147
Minos, 11
Minotaure, 12
Monte Carlo, 240

N
Neumann, 133
Nim, 230

P
Pan, 212
Peano, 65
Prim, 242
Pythagore, 4

R
Romains, 9
Bernard Roy, 226
Bertrand Russel, 54

S
Scribe, 11
Sleucides, 9
Shannon, 54, 269
Sherwood, 239
Michel Simmonard, 226
Simplexe, 209
Sollin, 242
Straen, 212, 213
Sumriens, 9

T
Tablette
A06456, 11
Vat 6505, 11
Thse, 3, 11

Complexit et Algorithmique avance

tic-tac-toe, 230
Tolsto, 209
Tractatus logico-philosophicus,
5
Trathenbrot, 133
Trmeaux, 21
Turing, 5, 27, 65
Tyr, 3

W
Weyl Hermann, 28
Winograd, 212
Witgenstein, 5

Y
Yablonski, 23

Z
Znon, 28

Index des concepts et notions

Axiome de linfini, 71

Algbre de Boole, 79
Algoristes, 5
Algorithme, 6
Algorithme
dEuclide, 3, 7
de lquation quadratique,
7
de Trmeaux, 21
du Labyrinthe, 3, 11
du PGCD, 3
efficace, 20
glouton, 111, 203
Las Vegas, 240, 241
Monte Carlo, 240
non-polynomial en temps,
21
notion nave, 5
numrique, 9
polynomial en temps, 20
probabiliste, 239
spcification, 6
Alphabet, 29, 135
Alphabet
dtats, 30, 34
de mouvement, 30
extrieur, 29
intrieur, 40
intrieur, 30
Automate, 133
Automate
de Markov, 147
fini, 147

B
Bachman Landau
Notation, 301
Bijection, 69
Bornage, 227
Branch and Bound (B and B),
226
Branchement
de machine, 38

C
Calcul, 69
Calcul quantique, 287
Calculabilit, 40
Calculateur, 49
Calculateur
universel, 49, 52
Case du ruban, 29
Cbits, 288
Chane, 104
Chemin, 104
Chemin
lmentaire, 104
simple, 104
Cheval, 120
Chiffre
dune configuration, 44
Church-Turing, 65
Circuit
boolen, 149
digital, 149
Circuit hamiltonien, 226

304

Complexit et Algorithmique avance

Circuits boolens, 93
Classe
P, 22
N P, 22
N PC, 24
Co-N PC, 191
Co-N P, 160
dalgorithmes, 6
de problmes, 6, 125
des problmes N PC, 170
des problmes N P, 170
des problmes N P-complets,
169
Classe N P
ide intuitive, 157
Classe P, 156
Clause, 21, 172
Clauses
de Horn, 202
Clique, 187
Codage, 41, 43
Codage
binaire, 43
instance, 44
raisonnable, 175
raisonnable, dfinition, 135
Coloriage de graphe, 194
Complexit
de Kolmogorov, 271
Complexit
algorithme de Straen, 213
algorithmique descriptionnelle, 56
conditionnelle, 280
dfinition, 132
de Kolmogorov, 53

descriptionnelle, 56, 271


en temps, 126, 153
informationnelle, 272
Compressibilit, 284
Concept
dalgorithme, 25, 28
de calcul, 25
de langage, 25
de machine, 25
de mot, 25
de problme, 25
de solution, 25
de temps de calcul, 25
Configuration
machine de Turing, 141
Conjecture, 23, 27
Conjecture
de Hilbert, 28
de Lupanov-Yablonski, 23
Connexe, 15
Connexit, 104
Connexit
forte, 104
Contenu en information, 53
Coupe minimale, 163
Couverture
de cardinal minimal, 201
chiquier, 119
minimale, 120, 200, 201
Couverture dun graphe, 187
Cycle
eulrien, 193
hamiltonien, 193

D
Drivation

Concepts et notions

Machine de Turing, 141


Dcimal, 10
Degr
extrieur, 104
2-SAT, 197
Digital, 94
Dualit, 163
Dump, 43

E
chiquier, 120
Efficacit, 215
nonc, 27
Ensemble
absorbant, 108
approximable, 66
inapproximable, 66
partiellement ordonn, 80
quotient, 80
rcursif, 64
rcursivement numrable,
65
stable, 106
stable maximal, 187
Entropie, 272
numration implicite, 225
Environnement, 29
quipotence, 70
quivalence, 79
Espace
dtats, 30
tat
initial, 34
Explosion combinatoire, 225
Expression
satisfaite, 21

305

F
Fil dAriane, 12
Finitude, 41
Finitude
du codage, 42
Flot maximal, 163
Fonction
calculable, 40, 57
dvaluation, 226, 227
optimale, 58
partiellement rcursive, 56
polynomiale de la taille des
donnes, 19
rcursive, 40
Fonction rcursive, 144
Forme normale
disjonctive, 172
conjonctive, 23

G
Gnrique
instance, 134
Graphe, 103
Graphe
biparti, 116
coloriage, 194
connexe, 104
fortement connexe, 104
k-coloriage, 194
Groupe cod, 43

H
Heuristique, 226

I
Image mmoire, 43

306

Complexit et Algorithmique avance

Incompltude
Thorme de Gdel, 57
incompressibilit, 284
Index
machine de Turing, 39
Information
absolue, 54, 56
de Shannon, 54, 273
de transmission, 54
quantit absolue, 54
Information quantique
unit, 288
Instance, 24
Instance
codage, 44
gnrique, 44, 131
gnrique, 110, 134
particulire, 44, 110, 131,
134
taille, 132
oui, 133
Instanciation, 44
Intrieur, 104
Intractable, 19
Intraitable, 19
Intuitionnistes, 5

J
Jeu
dchecs, 225

L
-calcul, 162
Langage
dcid, 143
reconnu, 143
lmentaire, 27

dfinition, 134
rcursif, 142
rcursivement numrable,
142
universel, 27
Lvine-Cook
Thorme de compltude,
174

M
Machine
lmentaire, 35
effacement et criture, 36
plusieurs rubans, 47, 151
chercheuse, 36
de Turing, 27, 28, 30, 133
de Turing
plusieurs rubans, 139
alternante, 139
configuration, 141
drivation, 141
description dtaille, 29
index, 39
non dterministe, 139
reprsentation, 30
transition lmentaire, 141
universelle, 139
RAM, 148
tout droite, 35
tout gauche, 35
universelle, 39, 40
de Hermann Weyl, 28
Machines
en squence, 37
Maxtermes, mintermes, 172
Mmoire
illimite, 29

Concepts et notions

ruban, 29
Mesure
des angles, 10
des arcs de cercle, 10
des heures, 10
des minutes, 10
des secondes, 10
Mthode
de Las Vegas, 20
de Monte Carlo, 20
Mthode PSEP, 226
Mintermes, maxtermes, 172
Modle
dalgorithme, 27
Monme, 172

N
Nombre
cardinal, 70
dabsorption, 108
de Chatin, 52
Omga , 52
ordinal, 70
transcendant, 28
Normalisation, 227
Notation
binaire, 9
de Bachman-Landau, 301
de Dirac, 288
positionnelle, 4
Numrique
probabiliste, 241
Numrotation
machines, 46

O
O, 129

307

Opration
lmentaire, 21
Ordinateur, 28
Ordre
prordre, 80

P
Paradoxe de B. Russel, 54
Parcours, 15
Particulire
instance, 134
PGCD, 3
Pire des cas, 132
PL, 209
PLNE, 194
Polytope, 209
Porte, 93
Porte
dentre, 94, 150
de sortie, 150
logique, 93
typage, 150
Principe
dvaluation, 227
de sparation, 226
Probabiliste
numrique, 241
Problme, 130
Problme
N P-complet, 169
combinatoire, 225
Couverture, 119
dexistence de chemin, 109
de dcision, 35, 110, 133
de Hilbert, 27
de la halte, 64

308

de Langford, 192
du couplage, 116
du flot maximal, 113
du VRP, 121
Procdure, 3, 4, 27
Procdure
automatique, 27
opratoire, 27
Produit
de Krnecker, 288
matriciel, 211
matriciel
de Straen, 213
Tensoriel, 288
Programmation
linaire, 209
linaire
en nombres entiers, 194
rcursive, 216
Programme, 19, 45
Programme
polynomial en temps, 156
rduit, 50, 53
rduit minimal, 53
Pseudo-algorithme, 63
Pseudo-polynomialit, 208

Q
Qbits, 288

R
Raisonnable, 19
RAM, 133
Recouvrement, 120, 200
Rductibilit
polynomiale, 23
Relaxation, 20

Complexit et Algorithmique avance

Reprsentation
Machine de Turing, 30
Rsolution de problme, 144
Rsoudre un problme, 131
Ressources, 125
Ruban, 29

S
Sac dos, 205
Sac dos
problme de dcision, 206
SAT, 22
SAT
2-SAT, 197
recouvrement, 120, 206
SAT-Horn, 205
Satisfiabilit, 22, 171
Schme
dencodage, 168
fonctionnel, 32, 39
machine de Turing, 45
Squence alatoire, 59
Set covering problem, 200
Sexagsimal, 10
Simplexe, 209
Solution
-approche, 20
acceptable, 20
optimale, 20
Stabilit
externe, 107
interne, 107
Straen
complexit, 213
gnralisation, 218
reformulation, 217

Concepts et notions

Symbole
vide, 29
Symboles, 29
Systme
additif, 9
de Post, 162
formel, 58
formel
de Peano, 65
positionnel, 9

T
Tablette
des scribes, 11
Taille
dun circuit, 150
dun problme, 125
dune instance, 132
de donnes, 20
Temps, 144
Temps
de calcul, 19
Thorme
dincompltude, 28
dinvariance, 280
de compltude, 174
de Gdel, 28, 57
de Pythagore, 4
Lvine-Cook, 174
Thse de Church, 40
Trait
dalgorithmique, 3
des neuf procdures, 3
Transformation polynomiale, 168
Transition
lmentaire, 141

309

Treillis, 82
3-SAT, 185
Typage
porte, 150

U
Unidimensionnalit, 41

V
Validation, 201
Valide, 201
Vrifiabilit polynomiale, 171,
174
Voyageur de commerce (VRP),
225

Z
Zro, 9

Index des Algorithmes

matricielle de Straen, 213

Algorithme
dEuclide, 7
de Borkva, 242
de Kruskal, 242
de lquation quadratique,
7
de Prim, 242
de Sollin, 242
de Straen, 213
de Straen
itratif, 217
du Labyrinthe, 11
Las Vegas, 238
Monte Carlo, 238, 240
numrique probabiliste, 239
probabiliste, 237, 241

G
Glouton, 203

J
jeu
de Marienbad, 230
de Nim, 230

M
Machine
effacement et criture, 36
chercheuse, 36
qui sarrte, 35
tout droite, 35
tout gauche, 35
Multiplication

P
PSEP, Sparation et valuation Progressive, 226

A propos de la bibliographie
On trouvera ci-aprs la liste des livres et articles utiliss pour crire
cet ouvrage, certains ne sont pas cits dans ces pages, mais ils ont
contribu de faon parfois non explicite la formulation de ma
pense en la matire. Il ma par consquent sembl quil tait bon de
donner au lecteur quelques lments bibliographiques lui permettant
"dentrer", sil le souhaite, dans le sujet par la mme porte que moi.
Bien entendu, il ny a l rien dexhaustif ni dexclusif, beaucoup
dauteurs ne sont pas cits ici qui ont eux aussi beaucoup crit sur
le sujet, ceut t ...trop complexe.

Bibliographie
[AD75]

J. Axzl and Darczy. On Measures of Information and


their Characterization. Academic Press, 1975. New York.

[AG90]

A. Arnold and I. Guessarian. Mathmatiques pour linformatique. masson, 1990.

[AK82]

J. Arsac and Y. Kodratoff. Some techniques for recursion


removal from recursive functions. ACM Transactions
on Programming Languages and Systems, 4(2) :295322,
1982.

[AKL79]

R. Aleliunas, R.M. Karp, and Lipton, R. and Lovasz,


L. and Rackoff, C. Random walks, universal traversal
sequences, and the complexity of maze problems. In 20th
Annual Symposium of Foundations of Computer Science
FOCS, pages 218230. IEEE Press, 29-31 Oct. 1979.

[Akl05]

S. Akl. The myth of universal computation. Technical


report, Queens University, Kingston Ontario, January
2005.

[AKS04]

M. Agrawal, N. Kayal, and N. Saxena. Primes is in p.


Ann. Math, 160 :781793, January 2004.

[AL94]

E. M. Ana and J.H. Laurie. Taming Control Flow : A


Structured Approach to Eliminating GOTO Statements.
In ICCL, 1994.

[AR78]

M.A. Auslander and S.H. Raymond. Systematic recursion


removal. Communications of the ACM, 21(2) :127134,
1978.

314

[AR81]

Complexit et Algorithmique avance

A.K. Agrawala and G. Ricart. An optimal algorithm for


mutual exclusion in computer networks. Commun. ACM,
24(1) :4354, January 1981.
[Ars79]
J. Arsac. Syntactic source to source transforms and
program manipulation. Commun. ACM, 22(1) :4354,
1979.
A.V. Aho and J.D. Ullman. The design and Analysis of
[AU74]
Computer algorithms. Addison Wesley, 1974.
A.V. Aho and J.D. Ullman. Data Structures and algo[AU83]
rithms. Addison Wesley, 1983.
[AU93]
A.V. Aho and J.D. Ullman. Concepts fondamentaux de
linformatique. Dunod, 1993.
[Baa98]
H. Baala. Version itrative de la multiplication de
Straen. Technical report, L.R.I.A., 1998.
[Bac85]
J. Backus. From function level semantics to program
transformation and optimization. In Hartmut Ehrig,
Christiane Floyd, Maurice Nivat, and James W. Thatcher, editors, Mathematical Foundations of Software Development : Proceedings of the International Joint Conference on Theory and Practice of Software Development
(TAPSOFT), Volume 1 : Colloquium on Trees in Algebra and Programming (CAAP85), volume 185 of Lecture
Notes in Computer Science, pages 6091. Springer-Verlag,
1985.
[BB87]
G. Brassard and P. Bratley. Algorithmique, conception et
analyse. Masson & Presses de luniversit de Montral,
Montral, 1987.
[BC72]
A.B. Borodin and R.L. Constable. Subrecursive programming languages, part i : efficiency and program structure.
J. ACM, 19(3) :526568, 1972.
[BC94]
D.P. Bovet and P. Crescenzi. Introduction to the theory
of complexity, volume NJ. Prentice Hall, Englewood
Cliffs, 1994.
[BCW90] T.C. Bell, J.G. Cleary, and I.H. Witten. Text Compression. Prentice Hall, Englewood Cliffs, 1990. NJ.

Bibiographie

315

[BD77]

R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. J. ACM, 24(1) :44
67, 1977.

[Ben73]

G.E. Bennington. An efficient minimal cost flows algorithm. Management science, 19 :10431051, May 1973.

[Ben83]

M. Ben Or. Another advantage of free choice : Completely asynchronous agrement protocols. In Proceedings of
the 2nd ACM Symposium on Principles of Distributed
Computin(PODC), 1983.

[Ber58]

C. Berge. La thorie des graphes et ses applications.


Dunod, 1958.

[Ber69]

C. Berge. Graphes et Hypergraphes. Dunod, 1969.

[BF01]

R. Backhouse and M. Fokkinga. The associativity of equivalence and the Towers of Hanoi problem. Information
Processing Letters, 77(24) :7176, 2001.

[BFU93]

A. Broder, A. Frieze, and E. Upfal. On the satisfiability


and maximum satisfiability of random 3-cnf formulas. In
Proceedings of the Fourth Annual ACM-SIAM Symposium on Discrete Algorithms, 1993.

[BGN46]

A.W. Burks, H.H. Goldstine, and J. Neumann. Preliminary discussion of the logical design of an electronic
computer instrument. Technical report, Institute for
Advanced Study, January 1 1946.

[Bir67]

G. Birkoff. Lattice Theory, volume 25. American Mathematical Society Colloquium Publications, 1967.

[Bir77]

R.S. Bird. Notes on recursion removal. Communications


of the ACM, 20(6) :434439, 1977.

[Bir80]

R.S. Bird. Tabulation techniques for recursive programs.


ACM Computing Surveys, 12(4) :403417, 1980.

[BL01]

H. Baala and I. Lavalle. Version itrative de la multiplication de Strassen. Comptes Rendus de lAcadmie des
Sciences, 333(1) :383388, 2001.

[Bol85]

B. Bollobs. Random Graphs. Academic Press, 1985.

316

[Bor26]

Complexit et Algorithmique avance

O. Bor
uvka. Contribution la rsolution dun problme
de construction dun rseau lectrique optimal. Elektronick Obzor, 15 :153154, 1926. En tchque.
[Bou67] N. Bourbaki. Thorie des ensembles, lments de mathmatique, volume XX. Hermann, 1967.
[Bou98] N. Bouleau. Martingales et marchs financiers. Hermann,
1998.
[Bri56]
L. Brillouin. Science and Information, Theory. Academic
press, N.Y., 1956.
[Bur84]
M. Burgin. Machines de Turing inductives plusieurs
ttes et algorithmes de kolmogorov. Comptes-rendus de
lAcadmie des Sciences de lURSS- Dokl. Akad. Nauk
SSSR, 275-2, 1984. Traduction amricaine : Inductive
Turing Machines with a Multiple Head and Kolmogorov
Algorithms, Soviet Math. Doklady (29) 2.
[BV97]
E. Bernstein and U. Vazirani. Quantum complexity
theory. SIAM Journal on Computing, 26(5) :14111473,
1997.
+
[C 94]
J.L. Chabert et al. Histoire dalgorithmes. Belin, Paris,
1994.
[CC92]
M. Conforti and G. Cornujols. A class of logic problems solvable by linear programming. In Proceedings of
the 33rd IEEE Symposium on Foundations of Computer
Science, 1992.
+
[CCH 90] V. Chandru, C.R. Coullard, P.L. Hammer, M. Montanez, and X. Sun. On renamable horn and generalized
horn functions. Annals of Mathematics and Artifical
Intelligence, pages 3347, 1990.
[CG77]
B.V. Cherkaski and A.V. Goldberg. On implementing
the push-relabel method for the maximum flow problem.
Algorithmica, 19(4), 1977.
[CG93]
C. Cifuentes and K.J. Gough. A methodology for decompilation. In Proceedings of the XIX Conferencia
Latinoamericana deInformatica, pages 257266, Buenos
Aires, Argentina, 1993.

Bibiographie

[Che77]

317

B.V. Cherkaski. Algorithm of construction


q of maximal
2
flow in network with complexity 0(|v| ( |E|). Math.
Methods of Solutions of Economics Problems,, 7 :11725,
1977.
[Chi92]
W.N. Chin. Safe fusion of functional expressions. In
Proceedings of the 1992 ACM conference on LISP and
functional programming, pages 1120. ACM Press, 1992.
[CHT81] T.E. Cheatham Jr., G.H. Holloway, and J.A. Townley.
Program refinement by transformation. In Proceedings of
the 5th international conference on Software engineering,
pages 430437. IEEE Press, 1981.
[Chu36] A. Church. An unsolvable problem of elementary number
theory. American J. Math, 58 :345363, 1936.
[Cif93]
C. Cifuentes. A structuring algorithm for decompilation.
In Proceedings of the XIX Conferencia Latinoamericana
de Informatica,Buenos Aires, pages 267276, Buenos
Aires, Argentina, 1993.
S.B. Cooper and B. L
owe. New computational paradigms.
[CL05]
Lectures Notes in Computer Sience, 3526, 2005.
[CLN04] E. Charpentier, A. Lesne, and Nikolski N. Lhritage de
Kolmogorov en mathmatiques. Belin, 2004.
[CLRS01] T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein.
Introduction to algorithms. MITpress-McGraw Hill, 2001.
[CM89]
S. Y. Chang and K. G. Murty. The steepest descent
gravitational method for linear programming. Discrete
Applied Mathematics, 25 :211239, 1989.
[CM97]
S.A. Cook and D. Mitchell. Finding hard instances of
the satisfiability problem : A survey. DIMACS Discrete
math and Theoretical computer science, 35 :117, 1997.
[Coo71] S.A. Cook. The complexity of theorem-proving procedures. In 3rd ACM STOC, pages 151158, New York,
1971.
[Cop02] B. Copeland. Accelerating Turing machines. Minds and
Machines, 12-(2) :281300, 2002.

318

[Cop04]

Complexit et Algorithmique avance

B. Copeland. Hypercomputation : philosophical issues.


Theoretical Computer Science, 317 :251267, 2004.
[Cou38] L. Couffignal. Lanalyse mcanique, application aux machines calculer et la mcanique cleste. PhD thesis,
Facult des Sciences de Paris, Juin 1938.
[CP04]
C.S. Calude and G. P
aun. Bio-steps beyond Turing.
Biosystems, 77 (1-3) :175194, 2004.
V. Chvatal and E. Szemeredl. Many hard examples for
[CS88]
resolution. Journal of the ACM, 35(4) :759768, 1988.
[Cur51]
J.H. Curtis. Monte carlo method. Technical report, National Bureau of Standards Applied Mathematics Series,
1951.
[Cur95]
S. Curtis. A Relational Approach to Optimization Problems. PhD thesis, Oxford University, 1995., June 1995.
[Cur97]
S. Curtis. Dynamic programming : a different perspective.
In Algorithmic Languages and Calculi, pages 123, 1997.
[DABC93] O. Dubois, P. Andre, Y. Boufkhad, and J. Carlier. Sat
versus unsat. In S.J. David and M.A. Trick, editors,
Cliques, Coloring, and Satisfiability, Second DIMACS
Implementation Challenge, volume 26. American Mathematical Society, 1993. DIMACS Serie in Discrete
Mathematics and Computer Science.
[Dan51] G.B. Dantzig. Minimization of a linear function of variables subject to linear inequalities. In T.C. Koopman,
editor, In Actvity, Analysis of production and allocation,
pages 339347. John Wiley, New York, 1951.
[Dan57] G.B. Dantzig. Discrete variable extremum problem. Operations research, 5 :266277, 1957.
[Dar59]
C. Darwin. On the origin of species by means of natural selection. John Murray, London, 1859. (Traduction
Franaise, De lorigine des espces, 1985, Paris, La Dcouverte).
[DB76]
J. Darlington and R.M. Burstall. A system which automatically improves programs. Acta Informatica, 6(1) :4160,
1976.

Bibiographie

319

[Del94]

J.P. Delahaye. Information, complexit et hasard. Herms, 1994.

[Del95]

J.P. Delahaye. Logique, informatique et paradoxes. Belin,


1995.

[Deu85]

D. Deutsch. Quantum theory, the Church-Turing principle and the universal quantum computer. Proceedings
of the Royal Society of London, 1400 :97117, 1985.

[DG84]

W.F. Dowlling and J.H. Galler. Linear time for testing


the satisfiability of propositionnal horn formulas. Journal
of Logic Programming, 1(3) :267284, 1984.

[DG91]

G. Deleuze and F. Gattari. Quest-ce que la philosophie ?


ditions de minuit, 1991.

[Dij76]

E.W. Dijkstra. A note on two problems in connection


with graphs. Numerishe Mathematics, 1(1) :8389, 1976.

[Din70]

E.A. Dinic. Algorithm for solution of a problem of maximal flow in a network with power estimation in a network
with effiency analysis. Soviet Math. Doklady, 11 :1277
1280, 1970.

[DK96]

D. Dacunha-Castel and J.P. Kahane. Lalatoire, a se


calcule. lHumanit, Paris 29/11/1996.

[DRT92]

B. Dixon, M. Rauch, and R.E. Tarjan. Verification and


sensitivity analysis of minimum spanning trees in linear
time. SIAM Journal on Computing, 21(1) :11841192,
1992.

[EK72]

J. Edmonds and R.M. Karp. Theoretical improvement


in algorithmic efficiency for network problem. Journal
of ACM, 19-2, 1972.

[Ero94]

A. Erosa. A goto-elimination method and its implementation for the McCAT C compiler. PhD thesis, McGill
University, May 1994. Master thesis.

[Fea87]

M.S. Feather. A survey and classification of some program transformation approaches and techniques. In The
IFIP TC2/WG 2.1 Working Conference on Program

320

Complexit et Algorithmique avance

specification and transformation, pages 165195. NorthHolland Publishing Co., 1987.


[FF56]

L.R. Ford and D.R. Fulkerson. Maximal flow through


networks. Canadian journal of mathematics, 8 :399404,
1956.

[FF62]

L.R. Ford and D.R. Fulkerson. Flow in networks. Princeton University, 1962.

[FGI93]

G. Florin, C.R. Gomez, and Lavalle I. Conference :


Recursive Distributed Programming Schemes. Technical
report, JAIST-Kanazawa, Kawazaki, Japan, 1993.

[FGS93]

C. Froidevaux, M.C. Gaudel, and M. Soria. Types de


donnes et algorithmes. Ediscience International, Paris,
1993.

[FKG00]

Y. Futamura, Z. Konishi, and R. Glck. Implementation of an experimental system for automatic program
transformation based on generalized partial computation.
In T. Menzies, editor, Third International Workshop on
Intelligent Software Engineering, pages 3948. University
of Limerick, 2000.

[FL91]

G. Florin and I. Lavalle. La rcursivit, mode de programmation distribue. Technical report, INRIA- Rocquencourt, 1991.

[Fou00]

W. L. Fouch. Arithmetical representations of brownian


motion. Journal of Symbolic Logic, 65 :421422, 2000.

[FRT76]

R. Faure, C. Roucairol, and P. Tolla. Chemins et flots,


ordonnancements. Gauthier-villars, 1976.

[Gal78]

Z. Galil. A new algorithm for the maximal flow problem.


In 19th Symposium on Foundations of Computer Science,
pages 23145. IEEE, October 1978.

[GG90]

P. Gochet and P. Gribomont. Logique - Mthodes pour


linformatique fondamentale. Herms, Paris, 1990.

[Gin76]

V. Ginzburg. Sur la physique et lastrophysique. Mir,


Moscou, 1976.

Bibiographie

321

[GJ79]

M.R. Garey and D.S. Johnson. Computers and intractability. Freeman, New York, 1979.

[GN79]

Z. Galil and A. Naamad. Network flow and generalized


path compression. In 11th Annual Symposium on Theory
of Computing, pages 1326. ACM, May 1979.

[Gol79]

A. Goldberg. On the complexity of the satisfiability


problem. Technical Report 16, New York University,
1979. Courant Computer Science Report.

[Gou93]

S.J. Gould. Comme les huit doigts de la main. ditions


du Seuil, 1993. (dition originale : eight Little piggies,
1993).

[Gou97]

S.J. Gould. Lventail du vivant. ditions du Seuil, 1997.

[GSB94]

R. Gupta, S. A. Smolka, and S. Bhaskar. On randomization in sequential and distributed algorithms. ACM
Computing Surveys (CSUR), 26(1) :786, March 1994.

[GTT89]

A.V. Goldberg, R. Tardos, and R. Tarjan. Networks flows


algorithms. Technical Report STAN-CS-89-1252, Computer Science Department, Stanford University, 1989.

[GU89]

G. Gallo and G. Urbani. Algorithms for testing the


satisfiability of propositionnal formulae. Journal of Logic
Programming, 7 :4561, 1989.

[Ha04]

Q.T. Ha. Complexit et programmabilit : la drcursivation par les mots de la rcursivit. Thse de doctorat,
Universit Paris 8, Juin 2004.

[Hak85]

A. Haken. The intractability of resolution. Theoretical


Computer Science, 39 :297308, 1985.

[HC88]

M. Hamann and L. Chtcherbanski. Positional logic algebra. Internal report 97-039, ICSI, 1988.

[HK73]

J. Hopcroft and R.M. Karp. An n5/2 algorithm for maximum matching in bipartits graphs. SIAM J. of Computing, 2(4) :225231, 1973.

[HK88]

P.G. Harrison and H. Khoshnevisan. On the transformation of linear functiona : a new approach to recursion

322

Complexit et Algorithmique avance

removal. Internal report, Department of Computing,


Imperial College, London, UK, 1988.
[HK92]

P.G. Harrison and H. Khoshnevisan. A new approach


to recursion removal. Theoretical Computer Science,
93(1) :91113, 1992.

[HL03]

Q.T. Ha and I. Lavalle. Fast matrix multiplication :


an iterative schema without stacks. In ICSERA03, SanFransisco, June 25-27 2003.

[HO02]

L.A. Hemaspaandra and M. Ogihara. The Complexity


Theory Companion. Springer, 2002.

[Hor51]

A. Horn. On sentences which are trues of direct unions


of algebras. Journal of Symbolic Logic, 16 :1421, 1951.

[HP70]

C.E. Hewitt and M.S. Paterson. Comparative schematology. Technical Report AIM-201, MIT Artificial Intelligence Laboratory, 1 1970.

[HP82]

S. Heilbrunner and W. Pohlmann. A technique for recursion removal based on string homomorphisms. Science
of Computer Programming, 2(1) :6981, 1982.

[HR70]

P.L. Hammer and S. Rudeanu. Mthodes boolennes en


recherche oprationnelle. Dunod, 1970.

[HS74]

E. Horowitz and S. Sahni. Computing partitions with


applications to the knapsack problem. JACM, 21 :277
292, 1974.

[Hu82]

T.C. Hu. Combinatorial Algorithms. Addison wesley,


1982.

[Iwa89]

K. Iwama. Cnf satisfiability test by counting and polynomial average time. SIAM Journal on Computing,
18(2) :385391, 1989.

[Jon96]

Neil D. Jones. An introduction to partial evaluation.


ACM Comput. Surv., 28(3) :480503, 1996.

[JW90]

R.E. Jerosiow and J. Wang. Solving propositionnal satisfiability problems. Annals of Mathematics and Artificial
Intelligence, 1 :167187, 1990.

Bibiographie

[Kan42]

323

L.V. Kantorovitch. Sur le dplacement des masses. Mmoire de lAcadmie des Sciences de lU.R.S.S., T. 37,
n 7-8 :227229, 1942.
[Kan60] L.V. Kantorovitch. Mathematical methods in the organization and planning of production. Management Science,
6 :363422, 1960. En Russe Lningrad 1939, traduction
anglaise.
[Kan63] L.V. Kantorovitch. Calcul conomique et utilisation des
ressources. Dunod, Paris, 1963. en franais.
[Kar74]
A.V. Karzanov. Dterminer le flot maximal dans un
rseau par la mthode des prflots. Soviet Math. Dokl.,
15 :43437, 1974. En russe.
[Kar84a] N. Karmarkar. A new polynomial-time algorithm for
linear programming. STOC, 1(11) :302311, 1984.
[Kar84b] N. Karmarkar. A new polynomial-time algorithm for
linear programming. Combinatorica, 4(4) :373396, 1984.
[Kfo97]
A.J. Kfoury. Recursion versus iteration at higher-orders.
Lecture Notes in Computer Science, 1346 :5763, 1997.
[KG68]
L.V. Kantorovitch and A.B. Gorstko. Programmation
mathmatique optimale (en conomie). Connaissance, 89, 1968. Matermaticheskoe optimaloe programmirovanie
(V ekonomike), en Russe.
[Kha79] L.G. Khachiyan. A polynomial algorithm in linear programming. Doklady Akadamii Nauk SSR, 244 :10931096,
1979. en russe.
[Kit56]
A.I. Kitov. Machines calculer lectroniques. ditions
de la radio sovitique, 1956. Moscou, en Russe.
[KM49]
L.V. Kantorovitch and Savourine M.K. Application des
mthodes mathmatiques aux questions danalyse des
transports (en russe). Problmes de lefficacit des transports, pages 110138, 1949. Note rdige en 1940.
[KM72]
V. Klee and G.J. Minty. How good is the simplex algorithm ? In O. Shiha, editor, Inequalities III. Academic
Press, N.Y., 1972.

324

[Kol56]

[Kol65]

[Kol83]

[Kol87]

[Kop88]
[Koz06]
[KP92]

[KP94]

[KRT93]

[Kru56]

[KU58]

Complexit et Algorithmique avance

A.N. Kolmogorov. Foundations of the Theory of Probability. Chelsea Publishing Company, New Yourk, 1956.
Traduction anglaise de : Grundbegriffe der Wahrscheinlichkeitsrechnung, Berlin 1933.
A.N. Kolmogorov. Three approaches to the quantitative
definition of information. Problems inform. Transmission,
1(1) :17, 1965.
A.N. Kolmogorov. Combinatorial foundations of information theory and the calculus of probabilities. Russian
Math. Survey, 38 :2940, 1983. En Russe.
A.N. Kolmogorov. Selected works. Information Theory
and theory of algorithms, Nauka - Moscou, 3, 1987. En
Russe.
M. Koppel. The universal Turing Machine ; A Half
Century Survey. Oxford University Press, 1988.
D.C. Kozen. Theory of Computation. Springer, 2006.
E. Koutsoupias and C.H. Papadimitriou. On the greedy
algorithm for satisfiability. Information Processing Letters, 30 :5355, 1992.
E. Koutsoupias and C.H. Papadimitriou. On the k-server
conjecture. In Proc. Of the 26th ACM Symp. On Theory
Of Computing, pages 507511, San-Fransisco, June 25-27
1994.
V. King, S. Rao, and R.E. Tarjan. A faster deterministic
maximum flow algorithm. In Proceedings of the 3rd
Annual ACM-SIAM Symposium on Discrete algorithms,
pages 157164, 1993.
J.B. Kruskal. On the shortest spanning subtree of a
graph and traveling salesman problem. In Proc. American
Mathematical society, volume 7, pages 4850, 1956.
A.N. Kolmogorov and V.A. Uspensky. Sur la dfinition
dun algorithme. Uspenkhi Mat. Nauk, 13(4) :328, 1958.
En Russe ; Traduction Anglaise dans Amer. Math. Soc.
Translat., 29 :2(1963), p 217-245.

Bibiographie

[KU87]

325

A.N. Kolmogorov and V.A. Uspensky. Algorithms and


randomness. SIAM J. Theory Probab. Appl., 32 :389412,
1987.
[Lam78] L. Lamport. Time, clocks and the ordering of events in
a distributed system. Commun. ACM, 2(7), 1978.
[Lav74]
I. Lavalle. Recouvrement dun ensemble par une sous
famille de ses parties (Set covering problem). Thse de
docteur ingnieur, Universit Paris VI, Juin 1974.
[Lav76]
I. Lavalle. Reconnaissance du caractre distributif dun
treillis fini. Comptes rendus de lAcadmie des Sciences,
t.282 :A1339 ; A1341, 1976.
[Lav82]
I. Lavalle. Note sur le problme des tours de Hano.
Vietnamica, 1982.
[Lav85]
I. Lavalle. Une procdure purement itrative pour le
problme des tours de Hano. Revue roumaine de mathmatiques pures et appliques, 6, 1985.
[Lav91a] I.. Lavalle. Algorithmique parallle et distribue. Herms,
1991.
[Lav91b] I. Lavalle. La pense... artificielle ? La Pense, 282(282),
Juillet-Aot 1991.
C. Lavault. valuation des algorithmes distribus. Her[Lav95]
ms, 1995.
I. Lavalle. Vous avez dit complexit ? Regards, 28,
[Lav97]
Octobre 1997.
[Leb51]
S.A. Lebedev. Letter to the department of material
resources. AN Ukr. SSR, AIED d. 5, l. 25, July 10 1951.
[Lv71]
L.A. Lvine. Quelques thormes sur lapproche algorithmique de la thorie des probabilits et de linformation.
Thse de doctorat, Universit de Moscou, 1971. en Russe.
[Lv73a] L.A. Lvine. Le problme universel de recherche. PPI,
9(3) :265276, 1973. en Russe, prsentation orale en
1971.
[Lv73b] L.A. Lvine. On the notion of random sequence. Soviet
math Doklady, 14 :14131416, 1973.

326

Complexit et Algorithmique avance

[Lv76]

L.A. Lvine. Diffrentes mesures de complexit pour


des objets finis (description axiomatique). Soviet Math
Doklady, 17 :522526, 1976. en Russe.

[Lew78]

H.R. Lewis. Renaming a set of clauses as a horn set.


Journal of the ACM, 25(1) :134135, January 1978.

[LL61]

L. Landau and L. Lifchitz. Mcanique, volume 1. ditions


de la paix Moscou, version Franaise 1961.

[LL90]

I. Lavalle and C. Lavault. Spanning tree construction


for nameless networks. In 4th International Workshop on
Distributed Algorithms (WDAG-4), pages 4156, Bari,
Italie, 24-26 Sept., 1990. LNCS n486, Springer Verlag.

[LMSK63] J.D.C. Little, K.G. Murty, D. Sweeney, and C. Karel.


An algorithm for the travelling salesman problem. Operationnal Research, 11 :972990, 1963.
[LN05a]

I. Lavalle and D. K. Nguyen. A general scalable parallelizing of straens algorithm for matrix multiplication
on distributed memory computers. In 4th annual International Conference on Computing and Information
Science, pages 221226, Jeju Island South Korea, July
2005. IEEE Computer Society.

[LN05b]

I. Lavalle and D. K. Nguyen. Parallel Winograd multiplication. In 6th Conference on Software engineering,
artificial intelligence, Networking and parallel computing,
pages 116122, Baltimore, 2005. IEEE Computer Society.

[Lov77]

David B. Loveman. Program improvement by source-tosource transformation. J. ACM, 24(1) :121145, 1977.

[LR81]

Lehmann and M.O. Rabin. On the advantage of free


choice : A symmetric and fully distributed solution to
the Dining Philosophers problem. In Proceedings of the
Eighth Ann. ACM Symp. on Principles of Programming
Languages (POPL), pages 133138. ACM Press, 1981.
extended abstract.

[LS03]

A.Y. Liu and S.D. Stoller. Optimizing ackermanns


function by incrementalization. In Proceedings of the

Bibiographie

[Luc74]
[Lup59]
[Lup63]

[LV90]
[LV97]

[LW66]

[LZ70]

[Mar54]

[Mar63]

[Mar67]

[Mar79]

327

2003 ACM SIGPLAN workshop on Partial evaluation


and semantics-based program manipulation, pages 8591.
ACM Press, 2003.
Y. Lucas. Codes et Machines. P.U.F, 1974.
O.B. Lupanov. Une mthode de synthse des circuits.
Izvestiya VUZ, Radiofizika, 1(1), 1959. en Russe.
O.B. Lupanov. The synthesis of certain classes of control
system. Problemy Kibernetiki, 10 :6397, 1963. en Russe,
traduit en anglais.
M. LI and P. Vitnyi. Algorithms and complexity, volume A. Elsevier, 1990.
M. Li and P. Vitanyi. An Introduction to Kolmogorov
Complexity and Its Applications. Springer, 1997. second
edition.
E.L. Lawler and D.E. Wood. Branch-and-bound method :
a survey. Oprational research, pages 699719, JulyAugust 1966.
L.A. Lvine and A.K. Zvonkin. The complexity of finite objects and the developpement of the concepts of
information and randomness by means of the theory of algorithms. Russian Mathematical Surveys, 25(6) :83124,
1970.
A.A. Markov. Thorie des algorithmes. Number Tome
XLII. ditions de lAcadmie des Sciences de lURSS,
Moscou-Lningrad, 1954. en Russe.
A.A. Markov. On normal algorithm associated which
computes boolean functions. Soviet. Math. Dokl., 5 :922
924, 1963.
A.A. Markov. On normal algorithm associated with the
computation of boolean functions and predicates. Izvestia
Akademic Nauk. SSSR, 31 :161208, 1967.
G.B. Marandzhyan. A propos de quelques proprits de
fonctions rcursives asymptotiquement optimales. Izvestia Akademic Nauk Armyan. SSSR, 22(4) :322, 1979.
en Russe.

328

[Mc 60]

Complexit et Algorithmique avance

J. Mc Carthy. Recursive functions symbolic expressions


and their computation by machine, part i. Communications of the ACM, 3(4) :184195, 1960.
[Mer03] N.D. Mermin. From Cbits to Qbits :Teaching Computer
Scientists Quantum Mechanics. American Journal of
Physics, 71 :2330, 2003.
[MKM78] V.M. Malhorta, M.P. Kumar, and S.N. Maheswari. Algorithm for finding maximum flows in network. Information
processing letters, 7-6 :27778, 1978.
[MMS88] M.N. Manasse, L.A. McGeoch, and D.D. Sleator. Competitive algorithms for online problems. In Proc of the
20th ACM Symposium on Theory of Computing, pages
322333, 1988.
[MMS90] M.N. Manasse, L.A. McGeoch, and D.D. Sleator. Competitive algorithms for k-server problems. Journal of
Algorithms, 11 :208230, 1990.
[Mor02] G. Moreno. Transformation rules and strategies for
functional-logic programs. AI Commun., 15(2) :163165,
2002.
[MP95]
Rajeev Motwani and Raghavan Prabhkar. Randomized
algorithms. Cambridge University Press, 1995.
[MU00]
M. Mitzenmacher and E. Upfal. Probability and Computing, Randomized algorithms and Probabilistic Analysis.
Cambridge University Press, 2000.
[MV90]
L. Ming and P.M.B. Vitanyi. Algorithms and complexity,
volume A. Elsevier, 1990.
M.A. Nielsen and I.L. Chuang. Quantum Computation
[NC04]
and Quantum Information. Cambridge University Press,
2004.
[Nis02]
S. Nishimura. Deforesting in accumulating parameters
via type-directed transformations. In Asian Workshop on
Programming Languages and Systems (APLAS), 2002.
[Odi99]
P. Odifreddi. Classical recursion theory, volume 1, 1989.
North Holland, 1999. Volume 2.

Bibiographie

329

[Ous60]

Ouspienski. Leons sur les fonctions rcursivement calculables. ditions dtat de Physique et mathmatiques,
1960. Moscou, en Russe.

[Pag90]

H. Pagels. Les rves de la raison (The dreams of reason).


Interditions, 1990.

[Pan78]

Y.V. Pan. Parallel Winograd multiplication. In Ann


Arbor, editor, Proc. 19th Annual Symposium on the foundations of Computer Science, pages 166176, MI USA,
1978.

[Pan80]

Y.V. Pan. New fast algorithms for matrix operations.


SIAM Journal on Computing, 9(2) :321342, 1980.

[Pan81]

Y.V. Pan. New combinations of methods for the acceleration of matrix multiplication. Comp. Math. Appl.,
7(1) :73125, 1981.

[Pap91]

C. H. Papadimitriou. On selecting satisfying truth assignement. In Proc. FOCS-91, pages 163169, 1991.

[Pap95]

C.H. Papadimitriou.
Computational Complexity.
Addison-Wesley, August 1995.

[Per90]

D. Perrin. Finite automata, volume B. Elsevier, 1990.


Formal Models and Semantics chapitre 1.

[PP96]

A. Pettorossi and M. Proietti. Rules and strategies


for transforming functional and logic programs. ACM
Comput. Surv., 28(2) :360414, 1996.

[PP97]

A. Pettorossi and M. Proietti. Future directions in program transformation. SIGPLAN Not., 32(1) :99102,
1997.

[PP98]

A. Pettorossi and M. Proietti. Program specialization via


algorithmic unfold/fold transformations. ACM Comput.
Surv., 30(3es) :6, 1998.

[Pri57]

R.C. Prim. Shortest connection networks and some


generalizations. Bell System Tech J., 36 :13891401,
1957.

330

[PS82]

[R+ 85]
[Rab83]

[Rao90]

[RM00]
[Roy70]
[Roz92]

[RS61]

[RS98]

[RT82]

[Sed88]
[Sv05]
[Sha48a]

Complexit et Algorithmique avance

C.H. Papadimitriou and K. Steiglitz. Combinatorial


Optimization ; Algorithms and complexity. Prentice-Hall,
1982.
R. Roseau et al. Exercices et problmes rsolus de recherche oprationnelle. Masson, 1ere edition, 1985.
M.O. Rabin. Randomized byzantine generals. In Proceedings of the 24th Symposium on Foundations of Computer
Science FOCS, pages 403409, 1983.
J.R. Rao. Reasoning about probabilistic algorithms. In
Proceedings of the 24th Symposium on Foundations of
Computer Science FOCS, pages 247264, August 22-24
1990.
P. Raghavan and R. Motwani. Randomized Algorithms.
Cambridge University Press, 2000.
B. Roy. Algbre moderne et thorie des graphes T. 1 et
2. Dunod, 1970.
G.J. Rozas. Taming the y operator. In Proceedings
of the 1992 ACM conference on LISP and functional
programming, pages 226234. ACM Press, 1992.
B. Roy and M. Simmonard. Nouvelle mthode permettant dexplorer un ensemble de possibilits et de dterminer un optimum. Revue Franaise de R.O., 1(18),
1961.
P. Raghavan and M. Snir. Memory versus randomization
in on-line algorithms. IBM Journal of Research and
Development, 38 :683707, 1998.
J.-L Roch and D. Trystram. Parallel Winograd multiplication. In Parallel Computing : from theory to sound
practice, pages 578581, Barcelona, 1982.
R. Sedgewick. Algorithms. Addison-Wesley, 1988.
L. Sve. mergence, complexit et dialectique. Odile
Jacob, Mai 2005.
C. Shannon. The mathematical theory of communication.
Bell System Technical Journal, pages 379423, 1948.

Bibiographie

[Sha48b]
[Sha49]
[Shi78]
[Shi02]
[Sip96]
[SLM92]

[SM56]

[ST85a]

[ST85b]

[Str69]
[Str70]

[Tel89]

[Tim04]

331

C. Shannon. The mathematical theory of communication.


Bell System Technical Journal, pages 623656, 1948.
C. Shannon. The synthesis of two-terminal networks.
Bell System Technical Journal, 1(28) :5998, 1949.
Y. Shiloach. Maximum flow algorithm. Technical report,
Comp. Sc. Dpmt Standford University, 1978.
Y. Shi. Remarks on universal quantum computer. Physics
Letters, 2002.
M. Sipser. Introduction to the Theory of Computation.
International Thomson Publishing, 1996.
B. Selman, H. Levesque, and D. Mitchell. A new method
for solving hard satisfiability problems. In Proceedings
AAAI-92, 1992. San Jose, CA.
C. Shannon and J. Mc. Carty. A universal Turing machine with two internal states. Automata Studies, Princeton univ. Press, 1956.
D.D. Sleator and R.E. Tarjan. Amortized efficiency of
list update and paging rules. Communications of the
A.C.M., 28 :202208, February 1985.
D.D. Sleator and R.E. Tarjan. Self adjusting binary
search trees. Journal of the A.C.M., 32 :652686, July
1985.
V. Strassen. Gaussian elimination is not optimal. Numer.
Math., 1(13) :354356, 1969.
H.R. Strong Jr. Translating recursion equations into
flow charts. In Proceedings of the second annual ACM
symposium on Theory of computing, pages 184197. ACM
Press, 1970.
M. Telpiz. Predstavlenie founki algebra logiki (reprsentation des fonctions de lalgbre logique). Kyberntika,
51(4) :3740, 1989. En Russe.
C.G. Timpson. Quantum Information Theory and The
Foundations of Quantum Mechanics. PhD thesis, Queens
College (Oxford), 2004.

332

[Tol39]

Complexit et Algorithmique avance

A. Tolsto. Mthodes dlimination des transports non


rationnels lors de la planification. Le transport socialiste,
1(9) :2851, 1939. En Russe.
[Tra63]
B.A. Trahtenbrot. Algorithmes et machines calculer.
Monographies Dunod, 1963. (dition Sovitique 1960).
[Tur36]
A.M. Turing. On computable numbers with an application to the entscheindungsproblem. London Math. Soc.
Ser., 2(42 et 43) :230265 ;544546, 1936.
+
[VJ 03] P. Vanbroekhoven, G. Janssens, et al. Advanced copy
propagation for arrays. In Proceedings of the 2003 ACM
SIGPLAN conference on Language, compiler, and tool
for embedded systems, pages 2433. ACM Press, 2003.
[Vol85]
P. Vollat. Calculabilit effective et Algorithmique thorique. yrolles, 1985.
[War88] M.P. Ward. Proving Program Refinements and Transformations. PhD thesis, Oxford University, 1988.
[War92] M.P. Ward. A recursion removal theorem. In Proceedings
of the 5th Refinement Workshop. Springer-Verlag, 8th11th January 1992.
[War93a] M.P. Ward. Abstracting a Specification from Code. Journal of Software Maintenance : Research and Practice,
5(2) :101122, June 1993.
[War93b] M.P. Ward. Iterative procedures for computing ackermans function, 1993.
[WB99] M.P. Ward and K.H. Bennett. Recursion removal/
introduction by formal transformation : An aid to program development and program comprehension. The
Computer Journal, 42(8) :650673, 1999.
[Wey49] H. Weyl. Philosophie der Mathematik und Naturwissenchaft . Philosophical of Mathematics and Natural Science.
Princeton University Press, Princeton, 1949. 1re dition
allemande 1927.
[Win70] S. Winograd. On the multiplication of 2x2 matrices,.
Technical report, IBM Research report RC267, 1970.

Bibiographie

[Wir76]

333

N. Wirth. Algorithms + Datastructures = Programs.


Prentice-Hall, Englewood Cliffs, New Jersey, 1976.
[Wit93]
L. Witgenstein. Tractatus logico-philosophicus. Gallimard, 1993. dition allemande 1921, Logish Philosophische Abhandlung.
[Wol91]
P. Wolper. Introduction la calculabilit. Interditions,
1991.
[WP+ 78] H. Wssner, P. Pepper, et al. Special transformation
techniques. In F. L. Bauer and M. Broy, editors, Program
Construction, volume 69 of Lecture Notes in Computer
Science, pages 290321. Springer Verlag, 1978.
[Yab59a] S. Yablonski. On the impossibility of eliminating perebor
in solving some problems of circuit theory. Doklady
Akademii Nauk SSSR, 124(1), 1959. En Russe : English
translation in Soviet Mathematics Doklady.
[Yab59b] S. Yablonski. Sur la difficult de la minimisation des
circuits. Problemy Kibernetiki, 2(2) :75121, 1959. En
russe.
[Yab00]
K. Yabuuti. Une histoire des mathmatiques chinoises.
Belin, 2000. dition japonaise Iawanami Shoten, Tokyo
1974.
[Yao77]
A.C.C. Yao. Probabilistic Computations : Toward a
Unified Measure of Complexity. In 18th Annual Symposium of Foundations of Computer Science FOCS, pages
222227. IEEE, 1977. Extended Abstract.
[Yao03]
A.C.C. Yao. Classical physics and the ChurchTuring
thesis. Journal of the ACM, 50-(1) :100105, 2003.
[YY57]
A.M. Yaglom and I.M. Yaglom. Veroiatnost I informatsia.
Technico-Thorique, 1957. dition Franaise Probabilit
et information Monographies Dunod 1959.
[YZR02] F. Yoshihiko, K. Zenjiro, and Glck Robert. WSDFU :
program transformation system based on generalized partial computation, pages 358378. Springer-Verlag New
York, Inc., 2002.

334

[ZH+ 97]

Complexit et Algorithmique avance

H. Zhenjiang, I. Hideya, et al. Tupling calculation eliminates multiple data traversals. In Proceedings of the second ACM SIGPLAN international conference on Functional programming, pages 164175. ACM Press, 1997.

Achev dimprimer en mars 2009


par la St ACORT Europe
www.cogetefi.com

Dpt lgal parution


Imprim en France

Complexit
et algorithmique avance
une introduction

Ivan Lavalle

"Complexit et algorithmique avance" est un expos introductif la pratique de


la thorie de la complexit, il a t enseign dans les trois cycles universitaires
d'informatique et de cognitique et l'ouvrage est conu pour tre abord par les
tudiants des trois cycles universitaires. Il s'agit l du premier ouvrage en
langue franaise traitant de la complexit en tant que telle. On y trouvera une
introduction aux concepts fondamentaux du domaine, qu'il s'agisse de
machine de Turing lmentaire ou universelle, de complexit au sens de
Levin-Cook ou de Kolmogorov. Dans ce livre sont dfinies les trois principales
classes de complexit, P, NP et NPC ainsi que le concept de quantit absolue
d'information d Kolmogorov. Dans une dernire partie, on montre comment
rsoudre certains problmes en faisant "tomber" la complexit en utilisant des concepts probabilistes, ou en utilisant des mthodes d'numration implicite dont les
principes sont dcrits. L'ouvrage se termine sur un chapitre consacr l'informatique quantique. Ce livre est destin tant aux tudiants en informatique qu'aux
ingnieurs et chercheurs. Louvrage propose aussi des voies pour la recherche,
abordant les aspects pratiques au travers de la conception des algorithmes de
rsolution pour problmes dits NP- complets, une partie est consacre ces aspects
pratiques.
Public : Licence, Maitrise, Doctorat, Ingniorat.

L'auteur: Docteur dtat s sciences, professeur luniversit Paris VIII, et


lEcole Pratique des Hautes Etudes (EPHE).

ISBN : 978 27056 6726 9

Hermann

33 euros

782705 667269

También podría gustarte