Title: S
1Séminaire Florin PérierAlain GélyLIMOS
Alain Gély (gely_at_isima.fr) - 2004
2(No Transcript)
3La complexité en informatique
4Quelques problèmes
- Un nombre N est-il divisible par 4 ?
- Soit une série de nombre, trier ces nombres
- Soit le problème classique de la tour de Hanoi,
afficher la liste des mouvements nécessaires pour
le résoudre.
- Un voyageur de commerce désire faire sa tournée,
existe-t-il une tournée de moins de 50 km ?
5David Hilbert son problème n10
- 1862 - 1943
- Liste des 23 problèmes de Hilbert (1900)
- Problème numéro 10
Trouver un algorithme déterminant si une
équation diophantienne à des solutions
6Alonzo Church le ?-calcul
- 1903 - 1995
- Résultat sur la calculabilité
- Développement du lambda-calcul
- 1936 Démontre lexistence d un problème
indécidable - Thèse de Church
7Kurt Godël
- 1906 - 1978
- Théorème d Incomplétude
pour tout système formel S contenant le langage
de l'arithmétique, il existe une proposition G
indémontrable dans S
8La complexité en informatique
(Et aussi un peu de calculabilité / décidabilité)
9Evaluation dun algorithme
Opérations élémentaires
Entrées
Résultat
Algorithme
10Le codage des données
Utilisation d un codage raisonnable
- Pour un problème I, on demande 2 caractéristiques
à un codage raisonnable - Il doit être concis, sans informations inutiles
- Les nombres doivent être représentés dans une
base différente autre que la base 1 (binaire,
octal, décimal, etc.)
11Comportement asymptotique des fonctions
Notation O O(g(n)) f(n) il existe des
constantes positives c et n0 tel que 0 ? f(n) ?
c.g(n) pour tout n ? n0
f
Notation ? ? (g(n)) f(n) il existe des
constantes positives c et n0 tel que 0 ? c.g(n)
? f(n) pour tout n ? n0
Notation ? ?(g(n)) f(n) il existe des
constantes positives c1 et c2, et n0 tel que 0
c1.g(n) ? f(n) ? c2.g(n) pour tout n n0
12Notation O - exemples
13Exemple de complexité - Tri
Entrée T, un tableau de n nombres Sortie T,
le tableau trié
Pour j allant de 2 à longueur(T) faire X ?
Tj i ? j-1 Tant que igt0 et AigtX
faire Ai1 ? Ai Ai1 ? X
O(1)
O(1)
O(1)
O(1)
14Donald Knuth
- 1938 -
- The art of computer programming
15Evolution du temps d'exécution en fonction de la
complexité
16Augmentation de la puissance des machines
Taille d un problème traitable en une heure
17Complexité polynomiale et exponentielle
De manière informelle, un problème disposant
d un algorithme polynomial pour le résoudre est
un problème facile
Polynomial
Exponentiel
Facile
Difficile
18Problèmes Classes de complexités
19Alan Matheson Turing La machine de Turing
- 1912 - 1954
- Inventeur de la Machine de Turing
20Machine de Turing Déterministe
? 0,1,b
21Classes de Complexité
Problème de décision
Exemples
22Classes de Complexité
Problème de décision langage accepté par une
machine de Turing
? l ensemble des symboles pouvant être écrit
par l utilisateur sur le ruban ? l ensemble
des mots du langage sur l alphabet LM x ?
? M accepte x Résoudre le problème revient
à savoir si x ? LM
23P
24La classe P
P L il existe un programme M en temps
polynomial sur une machine de Turing Deterministe
pour lequel LML
25La classe co-P
La classe co-P est le complémentaire de P
- Pour un problème donné de P,
- on montre facilement qu il est dans co-P
- On échange les réponses OUI et NON
- Pour un problème de co-P,
- on montre facilement qu il est dans P (idem)
26NP
27Machine de Turing Non Déterministe
28La classe NP
NP L il existe un programme M en temps
polynomial sur une machine de Turing Non
Deterministe pour lequel LML
29Exemple de problème de NP
Le voyageur de commerce
- Un voyageur de commerce désire faire sa tournée,
existe-t-il une tournée de moins de 50 km ?
10
b
a-b-e-c-d-a 50km
a
10
10
40
20
10
d
10
10
c
12
10
e
30NP et co-NP ?
Problème du circuit hamiltonien
Un graphe est-il hamiltonien ?
Un graphe nest-il pas hamiltonien ?
Ce problème ? NP
Ce problème ? co-NP
Est-ce que ce problème ? NP ?
31P et NP
- Résultat le plus général
- Si ??NP, alors il existe un polynôme p tel que
- ? peut être résolu par un algorithme déterministe
- avec une complexité de O(2p(n))
32P et NP
Donald devra prendre tous les papiers de la boite
avant de trouver le bon
Gontran trouvera immédiatement le bon papier
Machine de Turing Déterministe
Machine de Turing non Déterministe
33Transformation polynomiale
34Transformation polynomiale
On note L1 ltlt L2 s il existe une transformation
polynomiale de L1 vers L2
A quoi ça sert ?
Si le problème 2 est facile, le problème 1 est
facile
Si le problème 1 est difficile, le problème 2 est
difficile
35P, NP, NP-Complet
NP
- ? ? NP-Complet ssi
- ? ? NP
- ? ?1?NP, ?1 ltlt ?
NPC
P
Si P ltgt NP
36Stephen Cook SAT est NPC
- Théorème de Cook SAT est NPC (1971)
- Reçoit le Turing Award en 1982 pour ce papier
37Le théorème de Cook (1)
SAT ? NPC (Cook71)
- U u1,u2,,um un ensemble de variables
booléennes. - Pour u ?U,
- le litteral u est vrai si t(u)T
- le litteral u est vrai si t(u)F
- Une clause est un ensemble de littéraux, ex
u1,u2,u3 - Une clause est satisfaite si au moins un de ses
littéraux est vrai - Une collection de clause est satisfaite s il
existe une affectation de variables permettant de
satisfaire simultanément, chacune des clause de
la collection.
38Le théorème de Cook (2)
Exemples
C (u1,u2) , (u1,u2) est satisfiable t(u1)
Vrai, t(u2) Vrai.
C (u1,u2) , (u1,u2), (u1) n est pas
satisfiable
39Le théorème de Cook (3)
SAT ? NPC (Cook71)
- SATISFIABILITY
- INSTANCE
- Un ensemble U de variables booléenne
- Une collection C de clauses définies sur U
- QUESTION
- Existe-t-il une assignation de variables
satisfaisant C ?
40Le théorème de Cook (4)
1) SAT ? NP
Un algorithme non déterministe a seulement besoin
de deviner une assignation satisfaisant C. La
vérification de cette assignation est clairement
polynomiale. La première condition pour
appartenir à NPC est vérifiée.
41Le théorème de Cook (5)
2) ?L ? NP, L ltlt SAT
Retour au niveau des langages LSATSAT,e
Il faut montrer L ltlt LSAT pour tous les langages
de NP
M ?, ?, b, Q, q0, qY, qN et ? p(n)
42Le théorème de Cook (6)
fL va être décrite en fonction de ?, ?, b, Q,
q0, qY, qN, ? et p
fL
L
LSAT
43Le théorème de Cook (7)
Idée directrice montrer comment un ensemble de
clauses peut être utilisé pour vérifier si une
entrée x est acceptée par M
- Remarque n1
- A chaque instant, on peut caractériser le système
par - contenu des cases
- Position de la tête de lecture/écriture
- Etat Courant
Remarque n2 il n y a pas plus de p(n)1
instants distincts
44Le théorème de Cook (8)
Mise en place des variables booléennes
- fL va construire un ensemble de variable U tel
que - label des éléments de Q q0, q1qY, q2qN, q3,
, qr (avec rQ-1) - label des éléments de ? s0b, s1, s2, , sv
(avec v?-1)
45Le théorème de Cook (9)
Affectations de variables acceptation du langage
Clairement, à un langage L accepté par M
correspond une affectation des variables
précédentes. Mais, à une affectation arbitraire
des variables ne correspond pas forcément une
exécution de M.
46Le théorème de Cook (10)
Clauses à rajouter
À chaque instant
- La machine de Turing ne peut avoir quun seul
état
- La tête de L/E ne peut lire quun symbole
- Une case du ruban ne peut contenir quun symbole
Au début
- M est dans sa configuration initiale
A la fin
Dun instant i à linstant i1
- létat de la machine dépend du précédent
47Le théorème de Cook (11)
Clauses à rajouter
- Q0,0 , H0,1 , S0,0,0
- S0,1,k1 , S0,2,k2 , , S0,n,kn
- S0,n1,0 , S0,n2,0 , ,
S0,p(n)1,0 ,
48Le théorème de Cook (12)
Clauses à rajouter
49Le théorème de Cook (13)
Conclusions
fL LongueurfL O(p(n)4)
50Conclusions
- On vient de montrer qu il existe au moins un
problème NPC - On ne sait toujours pas si NP - P est peuplé !
- Performances à priori des algorithmes
- Complexité spatiale
- Complexité temporelle
- Problèmes de décisions
- Classes de complexités P et NP
- P NP ?
51Bibliographie
- Garey Johnson Computers and Intractability -
A guide to the Theory of NP-completeness - Jean-François Rey Calculabilité, Complexité et
approximation - Stephen Cook The P vs NP problem
- Le zoo de la complexité - http//www.complexityzo
o.com - Clay mathematic Institute - http//www.claymath.o
rg
52(No Transcript)