Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informatique
Complexit
et algorithmique avance
une introduction
Ivan Lavalle
Ingniorat - Doctorat
Hermann
Complexit
et algorithmique avance
une introduction
Ivan Lavalle
Hermann
diteurs
Ouvrage publi avec le concours de lcole Pratique des Hautes udes. EPHE.
Isbn 978 27056 6726 9
2008,
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
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
3.2
3.3
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
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
IV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Complexit
131
131
131
132
132
133
133
134
135
137
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
174
183
184
187
191
191
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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 ?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
223
225
vi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
Prface
xv
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
Prface
xvii
xviii
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
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.
1.1
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
1.1.2
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 :
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.
1.1.3
10
1
y
1
1
z+1 y
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
12
13
E
I
F
D
A
H
14
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.
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
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
16
1. Bien quon puisse faire des algorithmes probabilistes, mais cest un autre propos.
Deuxime partie
Chapitre 2
1. Intractable en anglais
20
2.1
2.2
Deux exemples
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
2.3
Les classes P et N P
P NP
Preuve 2.3.1 vident.
2.4
La classe N P
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.
23
2.4.1
Rductibilit polynomiale
24
2.4.2
La classe N PC
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
Chapitre 3
La Machine de Turing
3.1
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
29
3.1.1
30
I I
q0
L
L
LDq1
Q I
q1
I L L
IGq2
q2
LDq0
QDq1
QGq2
IDq1
IGq2
31
32
3.1.2
I I
q0
Iq1 I, D, q1
I
q1
33
q1 , D, q1
I I
q1
q1
Iq1 I, D, q1
...
q1
I I
q1
Iq1 I, G q2
...
q2 , G q2
q
... 1
q2 , D q0
I
q1
34
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
35
3.3
3.3.1
3.3.2
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
3.3.3
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 !
3.3.5
37
38
3.3.5.2
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
40
41
4.1.1
Le problme du codage
Lunidimensionnalit
42
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
43
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
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
Codage de linstance
45
46
4.1.2
47
4.2
(4.1)
48
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.
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
50
51
1
2longueur(pr)
4.3.1
Calculateur universel
52
4.3.2
Le nombre de Chatin
2longueur(pr)
1
H(n)
2
nN
X
Chapitre 5
Complexit de Kolmogorov
(rudiments)
5.1
Introduction
54
5.1.1
Interprtation intuitive
5.1.2
Paradoxe
55
5.2
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
5.2.1
57
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) =
si t n0 existe pas
(5.2)
(5.3)
58
(5.4)
59
Troisime partie
Rudiments mathmatiques
Chapitre 6
Considrations thoriques
6.1
6.1.1
64
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
65
66
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
En
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
Non
rcursivement
numrables
approximables
Incompressibles
Rcursivement
numrables
Rcursifs
Inapproximables
6.1.3
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.
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
6.1.3.2
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
73
74
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
...
6.2
75
Indcidabilit
MTUi
m0 m1 m2 mj
O N N O
N N O O
O O N N
N O O N
76
6.2.1
6.3
Mathmatiques ou informatique ?
77
Et on note :
Card(R) = 1
Chapitre 7
7.1
Relations dquivalence
7.1.1
Ensemble quotient
80
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
[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.
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
(7.1)
82
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.
83
7.3.1
Treillis distributifs
84
7.4
Lalgbre de Boole
7.5
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
xy
xy
x2
y0
y1
y2
y3
y4
y5
y6
y7
y8
y9
y10
y11
y12
y13
y14
y15
86
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.
7.6
87
88
7.6.1
x1
x2
x1 x2
x1 x2
89
90
7.6.2
Algbre de Boole
(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
91
7.6.3
Le problme SAT
Chapitre 8
Circuits boolens
8.1
x1
x2
X = (x1 x2 )
Y = (x1 x2 )
x1 x2 = X Y
94
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.
95
Circuit C1
Circuit C2
8.1.1
Base standard
96
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
97
(x y z)
(x y z)
(x y z)
(x y z)
98
8.2
99
W
vF Cv
(8.1)
8.3
Circuits boolens
100
ET/OU
NON
101
x1 {0,1}
x2 {0,1}
xi {0,1}
0,1
xn-1 {0,1}
xn {0,1}
102
Circuit-SAT
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
104
9.1.1
9.1.2
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
E
Ensembles stables intrieurement,
maximaux!:
{A,C,D}!; {A,E,C}!; {D,F}!;
{D,B}!.
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
(9.1)
^_
i
ai,j xi = 1
(9.2)
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
4
1
9.2
Existence de chemin
110
C
P
E
F
G
111
112
9.2.1
113
Complexit
9.3
Flot maximal
114
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)
115
6
a
s
Source
h
8
9
9
1
6
3
b
1
f
8
12
11
c
p
Puit
7
14
116
9.4
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
118
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}
9.5.1
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.
119
120
(9.4)
9.6
Le voyageur de commerce
a
1
2
3
4
5
6
7
8
b
"
"
"
"
"
" "
" "
"
121
"
"
"
122
C1
C2
9
5
6
C3
C4
3
123
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
10.1
127
10.2
Pourquoi la complexit ?
128
Algorithme
Complexit en temps
A1
A2
n log n
A3
n2
A4
n3
A5
2n
A6
n!
Algorithme
Complexit
129
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
A1
0, 02 secondes
A2
0, 32 secondes
A3
0, 4 secondes
A4
8 secondes
A5
A6
130
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
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
131
10.4
Des mots
10.4.1
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
10.4.3
10.5
133
10.6
10.6.1
Problme de dcision
134
-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
135
10.6.3
Codage
136
Quatrime partie
Chapitre 11
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
141
142
11.2
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 :
{
{M reconnat L}
{u L} {u, q0 u0 , qoui , v}
{u
/ L} {u, q0 u0 , qnon , v}
u LM termine
143
144
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
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
q0
145
q0
q1
0, q1 , G
qoui !
qnon !
qnon !
qnon !
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
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
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 :
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
!
!
11.3.1
Automates de Markov
Automate fini
148
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.
149
11.3.3
150
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) {, } = si = 2.
2n
, C calcule f
2.n
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.
11.3.4
151
tat q0
152
Seconde bande
1, 1 , D , D , q0
, , q0
, , OUI !
tat q0
Seconde bande
153
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
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].
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
156
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
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
158
11.8.1
159
160
11.8.2
Classe Co-N P
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
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
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
xi
a1,1
a2,1
am,1
R
...
...
...
a1,n
a2,n
am,n
x1
x2
xm
b1
b2
bm
PL
A.X B
m
XR
PL
Y Rn
signifie transpose de A.
1. La notation matricielle A
164
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
1
q0
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
166
Chapitre 12
Compltude N P
12.1
Le monde de N P
12.1.1
La transformation polynomiale
168
Chapitre 12.
Compltude N P
169
12.2
170
NPComplets
P-Polynomiaux
NP
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
12.2.2
Le problme de la satisfiabilit
172
{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
12.3
174
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
Chapitre 12.
Compltude N P
175
Seconde partie
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
Chapitre 12.
Compltude N P
177
178
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)
P(n) i 0 ;
P(n) + 1 j P(n) ; t
k0
Au temps i la case j
contient k
S[i, j, k]
Chapitre 12.
Compltude N P
179
Clauses du groupe
G1
G2
G3
G4
G5
3. une instance numrique dans laquelle on a attribu une valeur aux paramtres.
180
G6
Groupe
Clauses du groupe
Chapitre 12.
Compltude N P
181
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
G4
G5
{Q[p(n), 1]}
182
Groupe
Clauses du groupe
et |U| = O(p(n)2 ).
Chapitre 12.
12.3.2
Compltude N P
183
quilibre
184
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
et
L SAT.
Le cas de k-SAT
m
[
j=1
Xj0
et
C =
m
[
C0j
j=1
186
Chapitre 12.
Compltude N P
187
12.3.4
188
(12.1)
Chapitre 12.
Compltude N P
189
Clauses
(x1 x2 x4 )
C1
(x1 x2 x4 )
C2
(x1 x2 x4 )
C3
(x1 x2 x4 )
C4
190
{[si,j , si,l : i =
6 l, i,j = i,l ]}
Chapitre 12.
Compltude N P
191
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
192
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
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
Chapitre 13
13.1
Autour de SAT
13.1.1
Le cas 2-SAT
198
X2
X2
X1
X3
X3
=(x1x2)(x1x3)(x1x2)(x2x3)(x1x3)
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
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
13.2.1
SET et SAT
201
13.2.2
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
13.2.3
Clauses de Horn
(13.1)
203
204
205
13.3
Le sac dos
j=k
X
(13.2)
j=1
sous la contrainte
j=k
X
(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
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
(13.5)
207
Retour SAD
208
i=n
X
i=1
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)
209
13.4
Conclusion
(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
212
...
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.
14.2
213
La multiplication de Straen
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 :
;
(14.3)
14.3
c11 = m1 + m2 m4 + m6 ;
c12 = m4 + m5 ;
c21 = m6 + m7 ;
c22 = m2 m3 + m5 m7 ;
(14.4)
(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
(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)
(14.9)
(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)
215
(14.12)
(14.13)
14.3.1
De la complexit lefficacit
(14.14)
216
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
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
14.4.1
218
14.4.2
Proposition de Straen
, [a] , , {1, 0, 1}
(14.15)
, [b] , , {1, 0, 1}
(14.16)
7
X
(14.17)
=1
14.4.3
Gnralisation
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 ,
1 ,1
2 ,2 . . .
p ,p m1 2 ...p (a, b)
Soit aussi :
[a b]1 2 ...p p+1 = [
1 ,1
2 ,2 . . .
X
1
1 ,1
2 ,2 . . .
X
p
220
P7
7
X
p+1 =1
et
[a b]1 2 ...p p+1
1 1 ,1
=
P
p p ,p
2 2 ,2
...
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
14.6
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
Chapitre 15
15.1
226
15.1.1
La mthode PSEP
C=
11
13 11
13 15 23 11
13
13 15 15
(15.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
227
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
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
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)
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
230
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
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.
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
232
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
15.2.1
La mthode alpha/bta
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
234
235
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
236
15.3
En guise de conclusion
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
238
16.1.1
239
1. Techniques de simulation ;
16.1.2
16.1.3
Algorithmes de Monte-Carlo
240
16.2
16.2.1
Le problme
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).
241
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
Qk
i=1 1/100
= (1/100)k
242
16.3
Gnralits
Le Problme
243
Lalgorithme de Borkva
244
16.3.3.1
245
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
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
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.
247
248
249
250
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
16.4.1
Rappel
16.4.2
251
252
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
255
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
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
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
E(X)
n/2
2
=
=
3n/4
3n/4
3
,
Pr(Z > 2n2 )
n2
1
=
2n2
2
257
Lalgorithme
258
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
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
260
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
>
m
2nCen 6 m 6 2 2m( )m
e
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
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
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
16.6
263
264
Le protocole
16.6.2
265
valuation de la complexit
16.7
Le cas asynchrone
266
16.7.1
valuation de la complexit
16.7.2
267
Preuve
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
268
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
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
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
271
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
17.1.2
273
Gnralisation
274
k!
k
=
k1 !.k2 ! kq !
k1 , k2 , . . . , kq
(17.3)
k!
k!
H(x) q. log k + log
k1 !.k2 !. . . . .kq !
k1 !.k2 !. . . . .kq !
X
1
log |S|
pi .logpi
N
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
n!
n
2n ( n
e)
= 1 soit encore n !
2n
n n
.
e
276
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.
17.2.1
277
Le thorme dinvariance
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
279
(17.4)
280
(17.5)
(17.6)
281
(17.7)
282
Compressibilit et incompressibilit
2i
(17.8)
i=0
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
284
Chapitre 18
Le modle quantique
18.1
Introduction
286
18.2
(18.1)
(18.2)
(18.4)
(18.5)
Chapitre 18.
Le modle quantique
287
(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)
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
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)
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)
18.3
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)
(18.13)
(18.14)
290
(18.18)
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)
=
(18.22)
292
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
Et donc aussi :
HXH = Z
et
HZH = X
(18.27)
18.4
Chapitre 18.
Le modle quantique
293
(18.28)
|i =
x |xin
(18.29)
0x<2n
|x |2 = 1
(18.30)
0x<2n
(18.31)
294
(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
Chapitre 18.
Le modle quantique
295
complexe de dimension 2n :
|i U|i,
U unitaire
(18.34)
296
18.6
Chapitre 18.
Le modle quantique
297
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
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
300
Le symbole petit o
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
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
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
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
D
Drivation
Concepts et notions
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
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
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
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]
[AG90]
[AK82]
[AKL79]
[Akl05]
[AKS04]
[AL94]
[AR78]
314
[AR81]
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]
[Ber69]
[BF01]
R. Backhouse and M. Fokkinga. The associativity of equivalence and the Towers of Hanoi problem. Information
Processing Letters, 77(24) :7176, 2001.
[BFU93]
[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]
[Bir80]
[BL01]
H. Baala and I. Lavalle. Version itrative de la multiplication de Strassen. Comptes Rendus de lAcadmie des
Sciences, 333(1) :383388, 2001.
[Bol85]
316
[Bor26]
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
318
[Cop04]
Bibiographie
319
[Del94]
[Del95]
[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]
[DG91]
[Dij76]
[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]
[DRT92]
[EK72]
[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
[FF62]
L.R. Ford and D.R. Fulkerson. Flow in networks. Princeton University, 1962.
[FGI93]
[FGS93]
[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]
[FRT76]
[Gal78]
[GG90]
[Gin76]
Bibiographie
321
[GJ79]
M.R. Garey and D.S. Johnson. Computers and intractability. Freeman, New York, 1979.
[GN79]
[Gol79]
[Gou93]
[Gou97]
[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]
[GU89]
[Ha04]
Q.T. Ha. Complexit et programmabilit : la drcursivation par les mots de la rcursivit. Thse de doctorat,
Universit Paris 8, Juin 2004.
[Hak85]
[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
[HL03]
[HO02]
[Hor51]
[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]
[HS74]
[Hu82]
[Iwa89]
K. Iwama. Cnf satisfiability test by counting and polynomial average time. SIAM Journal on Computing,
18(2) :385391, 1989.
[Jon96]
[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]
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
326
[Lv76]
[Lew78]
[LL61]
[LL90]
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]
[LS03]
Bibiographie
[Luc74]
[Lup59]
[Lup63]
[LV90]
[LV97]
[LW66]
[LZ70]
[Mar54]
[Mar63]
[Mar67]
[Mar79]
327
328
[Mc 60]
Bibiographie
329
[Ous60]
Ouspienski. Leons sur les fonctions rcursivement calculables. ditions dtat de Physique et mathmatiques,
1960. Moscou, en Russe.
[Pag90]
[Pan78]
[Pan80]
[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]
[PP96]
[PP97]
A. Pettorossi and M. Proietti. Future directions in program transformation. SIGPLAN Not., 32(1) :99102,
1997.
[PP98]
[Pri57]
330
[PS82]
[R+ 85]
[Rab83]
[Rao90]
[RM00]
[Roy70]
[Roz92]
[RS61]
[RS98]
[RT82]
[Sed88]
[Sv05]
[Sha48a]
Bibiographie
[Sha48b]
[Sha49]
[Shi78]
[Shi02]
[Sip96]
[SLM92]
[SM56]
[ST85a]
[ST85b]
[Str69]
[Str70]
[Tel89]
[Tim04]
331
332
[Tol39]
Bibiographie
[Wir76]
333
334
[ZH+ 97]
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.
Complexit
et algorithmique avance
une introduction
Ivan Lavalle
Hermann
33 euros
782705 667269