complexité de problèmes: les classes p et np - univ-lille.fr
TRANSCRIPT
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
Complexité de Problèmes: les classes P et NPACT
Sophie TisonUniversité Lille
Master1 Informatique
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
MENU DU JOUR
▶ Rappels▶ Paradigmes d’algorithme▶ Complexité des problèmes▶ Algorithmique Avancée
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
GLOUTON VERSUS DYNAMIQUE
Dans les deux cas on peut se représenter l’ensemble dessolutions sous forme d’un arbre, les solutions pouvant êtrevues comme une suite de choix.
Dans le cas de la programmation dynamique, on parcourttoutes les solutions mais on remarque que de nombreuxnoeuds de l’arbre correspondent aux mêmes sous-problèmes etl’arbre peut donc être élagué, ou plutôt représenté de façonbeaucoup plus compacte comme un graphe (DAG: directedacyclic graph).
Dans le cas d’un algorithme glouton, on construit uniquementet directement-sans backtracking- une -et une seule- branche del’arbre qui correspond à une solution optimale.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA THÉORIE
Les algorithmes gloutons sont basés sur la théorie desmatroïdes.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLES CLASSIQUES
▶ Les algorithmes de Prim et de Kruskal de calcul d’un arbrede recouvrement d’un graphe de poids minimal
▶ l’algorithme des plus courts chemins dans un graphe deDijkstra
▶ le code de Huffman,
▶ de nombreuses versions de problèmes d’affectations detâches...
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
BILAN
Pour mettre au point un algorithme glouton, il faut donc:
▶ Trouver un critère de sélection: souvent facile ... mais pastoujours
▶ Montrer que le critère est bon, c.à.d. que la solutionobtenue est optimale: souvent dur!
▶ L’implémenter: en général facile et efficace!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
BILAN DES 3 PARADIGMES
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
DIVISER POUR RÉGNER, DIVIDE AND CONQUER
Pb de taille n
taille n/k
n/k*k
cas de base
n/k*k
taille n/k
n/k*k n/k*k
cas de base
La hauteur de l’arbre est "petite" en log n, le nombre de noeudsest donc borné polynomialement en n. La complexité dépendde l’arité des noeuds et du coût de la recomposition (MasterTheorem).
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
PROGRAMMATION DYNAMIQUE
Pb de taille n
ss-pb
ss-pb
cas de base
ss-pb
ss-pb
ss-pb ss-pb
ss-pb
ss-pb ss-pb
Il y a de nombreux sous-problèmes identiques.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
PROGRAMMATION DYNAMIQUE
Pb de taille n
ss-pb1
ss-pb2
cas de base
ss-pb3
ss-pb 2
ss-pb ss-pb
ss-pb 4
ss-pb3 ss-pb5
Il y a de nombreux sous-problèmes identiques.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
PROGRAMMATION DYNAMIQUE
Pb de taille n
ss-pb1
ss-pb2
cas de base
ss-pb3
ss-pb 2 ss-pb 4
ss-pb 3 ss-pb 5
On transforme l’arbre en un graphe acyclique dessous-problèmes.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
PROGRAMMATION DYNAMIQUE
Pb de taille n
ss-pb1
ss-pb2
cas de base
ss-pb3
ss-pb 2 ss-pb 4
ss-pb 3 ss-pb 5
La complexité est souvent polynomiale, mais parfois de hautdegré, voire pseudo-polynomiale (Sac à Dos).
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ALGORITHMES GLOUTONS
Départ
choix 1
choix 1.1 choix 1.2
choix 2
choix 2.1 choix 2.2
choix 3
choix 3.1
Le glouton fait ses choix localement pour ne pas explorer toutl’arbre.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ALGORITHMES GLOUTONS
Départ
choix 1
choix 1.1 choix 1.2
choix 2
choix 2.1 choix 2.2
choix 3
choix 3.1
Le glouton fait ses choix localement pour ne pas explorer toutl’arbre.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ALGORITHMES GLOUTONS
Départ
choix 1
choix 1.1 choix 1.2
choix 2
choix 2.1 choix 2.2
choix 3
choix 3.1
Le glouton fait ses choix localement pour ne pas explorer toutl’arbre.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ALGORITHMES GLOUTONS
Départ
choix 1
choix 1.1 choix 1.2
choix 2
choix 2.1 choix 2.2
choix 3
choix 3.1
Cela conduit souvent à un algorithme très efficace, simple àécrire, un peu moins à prouver.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
Fin de la première partie du Cours!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
COMPLEXITÉ DE PROBLÈMES
L’étude de la complexité des problèmes - computationalcomplexity - s’attache à déterminer la complexité intrinsèque
d’un problème et à classifier les problèmes selon celle-ci.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
COMPLEXITÉ DE PROBLÈMES: LES QUESTIONS
QU’ELLE ABORDE
▶ Quelle est la complexité minimale d’un algorithmerésolvant un problème donné?
▶ Existe-t-il un algorithme polynomial pour résoudre unproblème donné?
▶ Comment peut-on dire qu’un algorithme est optimal (encomplexité)?
▶ Comment peut-on montrer qu’il n’existe pas d’algorithmepolynomial pour un problème?
▶ Qu’est-ce qu’un problème "dur"?▶ Comment prouver qu’un problème est au moins aussi
“dur” qu’un autre?
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA COMPLEXITÉ D’UN PROBLÈME
..
La complexité d’un problème
.
La complexité d’un problème est la complexité minimaledans le pire des cas d’un algorithme qui le résout.
C’est souvent la complexité en temps qu’on considère mais onpeut s’intéresser à d’autres mesures comme par exemple lacomplexité en espace.Cette définition -un peu floue- ne précise pas quel modèled’algorithme on choisit: l’analyse “fine” de la complexité (parexemple, être linéaire, être quadratique) sera différente selon lemodèle d’où l’intérêt des classes de complexité indépendantesdu modèle.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA COMPLEXITÉ D’UN PROBLÈME
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA COMPLEXITÉ D’UN PROBLÈME
Par exemple si on dit que la complexité d’un problème estquadratique cela veut dire:
▶ qu’il existe un algorithme quadratique qui le résout▶ ET que tout algorithme qui le résout sera au moins
quadratique
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA COMPLEXITÉ D’UN PROBLÈME
Calculer la complexité d’un problème est ardu en général. Onse contente souvent d’encadrer:
▶ pour trouver une borne supérieure, il suffit de trouver UNalgorithme.
▶ pour trouver une "bonne" borne inférieure, les choses sontsouvent plus difficiles; pour montrer par exemple qu’unproblème est de complexité au moins exponentielle, il fautmontrer que TOUT algorithme le résolvant estexponentiel.
Quand les deux bornes coïncident, c’est l’idéal mais c’est assezrare!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
UN EXEMPLELA FACTORISATION D’UN ENTIER DE LONGUEUR n
Donnée: un entier x dont la représentation binaire est delongueur nSortie: sa factorisation en nombres premiers
▶ Tester tous les facteurs jusque√
x : il y en a environ 2n/2.▶ Le meilleur algorithme connu est le crible général de corps
de nombres (GNFS) : il n’est pas polynomial.▶ Certains protocoles de cryptographie reposent sur la
difficulté de ce problème.▶ Il existe un algorithme quantique polynomial pour la
factorisation (algorithme de Schor).
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
TROIS MÉTHODES POUR TROUVER UNE BORNE
INFÉRIEURE
1. Les méthodes dites d’oracle ou d’adversaire
2. Les arbres de décision
3. Les Réductions
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES MÉTHODES DITES D’ORACLE OU D’ADVERSAIRE
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES MÉTHODES DITES D’ORACLE OU D’ADVERSAIRE
Le principe: On suppose qu’il existe un algorithme utilisantmoins d’un certain nombre d’opérations d’un certain type;l’adversaire ou oracle construit alors une donnée qui met endéfaut l’algorithme.
ExempleCombien de comparaisons nécessite la recherche du maximum dansune liste de n éléments?
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
DÉTERMINER LE GAGNANT D’UN TOURNOI?
Dans un tournoi, chaque joueur sauf le vainqueur a perdu unefois.Donc, il faut au moins n − 1 matchs!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
RECHERCHER LE MAXIMUM DANS UNE LISTE DE nÉLÉMENTS NÉCESSITE n − 1 COMPARAISONS.
De même, tout élément différent du maximum doit avoir perduune fois dans une comparaisonSinon, l’adversaire remplace un élément qui n’a pas perdu parune valeur plus grande que le maximum: l’algorithme donnerale même maximum qu’au départ, ce qui n’est pas possible.
..
n− 1 comparaisons sont nécessaires et suffisantes pour larecherche du maximum d’une liste de n élements. .
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES ARBRES DE DÉCISION
Ils sont utilisés pour les algorithmes de type recherche ou tri"par comparaisons": on suppose que seules des comparaisonsentre les éléments sont utilisées pour obtenir de l’informationsur l’ordre ou l’égalité des éléments.Un arbre de décision "représente" toutes les comparaisonsexécutées par l’algorithme sur les données d’une certaine taille:
▶ Un noeud correspond à une comparaison,▶ ses fils aux différentes réponses possibles de la
comparaison (donc si le test est à valeur booléenne, lesnoeuds sont binaires);
▶ Une exécution possible correspond donc à une branche▶ Deux données correspondant à la même branche
correspondront à la même suite d’instructions.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES ARBRES DE DÉCISIONEXEMPLE DE LA RECHERCHE DICHOTOMIQUE
Input: T trié croissant non vide, xOutput: retourne Vrai Ssi x présent dans Tboolean rechDico(int x)int g = 0, d = T.length − 1;while (g < d) do
// Invariant: T trié, g ≤ d, si x est dans T T[g] ≤ x ≤ T[d]int m = (g + d)/2;if (T[m] < x) then
g = m + 1;else
d = m;end
endreturn ( T[g]==x);
Sur un tableau de 8 éléments, l’arbre de décision sera dehauteur 3 (voir tableau).
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES ARBRES DE DÉCISION
..
La recherche dans une liste triée
.
Toute recherche d’une valeur par "comparaison" parmi néléments triés effectue au moins de l’ordre de log n com-paraisons dans le pire des cas.
En effet, le nombre de feuilles de l’arbre est au moins n, lahauteur de l’arbre est donc de l’ordre de log n.
La recherche dichotomique est donc en un certain sensoptimale.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES ARBRES DE DÉCISION
..
Les tris par comparaisons
.
Tout tri par comparaisons de n éléments effectue aumoins de l’ordre de n log n comparaisons dans le pire descas.
Le nombre de feuilles de l’arbre est au moins n!.
Formule de Stirling: n! ∼√
2πn(n
e
)n
log n! est de l’ordre de n log n.
Attention: ne s’applique pas aux tris comme le tri par paquetsou le tri par base qui ne sont pas basés sur des comparaisons etsupposent des hypothèses sur les données.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES RÉDUCTIONS
Le principe est simple.Supposons par exemple qu’on sache que le problème DURDURest de complexité exponentielle, donc que tout algorithme lerésolvant est au moins exponentiel.Si on arrive à réduire d’une façon "peu coûteuse" le problèmeDURDUR dans le problème MONPB, MONPB sera lui aussi decomplexité au moins exponentielle.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES RÉDUCTIONS
ExempleMontrer que si il existait un algorithme en O(n log n) pour calculerle carré d’un entier de n chiffres, il existerait un algorithme enO(n log n) pour calculer le produit de deux entiers de n chiffres,
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES CLASSES DE PROBLÈMES
L’idée est de classifier les problèmes selon l’ordre de grandeurde leur complexité, en essayant si possible des classesindépendantes du modèle de calcul.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LES PROPRIÉTÉS
Pour simplifier, on va se limiter aux problèmes de décision oupropriétés.
..
Propriétés
.Une propriété est une fonction à valeurs booléennes.
Un problème de décision peut donc être vu comme unensemble I d’instances du problème avec pour chaque instanceune réponse “oui” ou “non”.Exemple: "être premier" est une fonction qui à tout entiernaturel associe oui -si il est premier-, non sinon.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ABSTRAIT/CONCRET
A une propriété abstraite définie sur un ensemble quelconque,on peut associer une propriété concrète définie sur des mots-les représentation des instances-.
Par exemple à la propriété abstraite "être premier" définie surles entiers, on associera la propriété "être la représentationbinaire d’un entier premier" définie sur {0, 1}∗.
Cela suppose donc qu’on a choisi une représentation desinstances du problème.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
PROPRIÉTÉ/LANGAGE:
On peut donc ensuite associer à la propriété le langage des(représentations des) données vérifiant cette propriété.Par exemple, à la propriété "être premier", on associeral’ensemble des représentations des entiers premiers dans unecertaine base non unaire.Donc, vérifier si un entier est premier se ramène à tester si sareprésentation (=un mot) est dans le langage.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
PROPRIÉTÉ/LANGAGE
Décider une propriété se ramène donc à tester l’appartenanced’un mot à un langage, celui des représentations des instancespositives d ela propriété (les données qui vérifient lapropriétéw).
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
UN PREMIER EXEMPLE: LA CLASSE P
..
La classe P
.
La classe P (ou PTIME) est la classe des problèmes de dé-cision pour lesquels il existe un algorithme de résolutionpolynomial en temps.
Cette définition est (quasiment-) indépendante du modèled’algorithme choisi: un algorithme polynomial en C serapolynomial si il est traduit en termes de machine de Turing etles modèles classiques de calcul (excepté les ordinateursquantiques) sont polynomialement équivalents.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
P EST LA CLASSE DES PROBLÈMES PRATICABLESUn problème de décision est dit praticable si il est dans P,impraticable sinon.
"existe-t-il ou non un algorithme praticable pour ce problème?"se ramène pour le problème à"être ou ne pas être dans P?"
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLES DE PROBLÈMES PRATICABLES OU NON
▶ "Etre pair" est P.▶ "Etre trié" pour une liste d’entiers est P.▶ "Etre premier" est P . On le sait depuis quelques années
seulement.▶ " le problème des échecs généralisés -i.e. la taille de
l’échiquier est non fixée, on a une configuration, oncherche à savoir si elle est gagnante- n’est pas P.
▶ Décider si une expression rationnelle étendue (avec lecomplémentaire en plus de l’union, la concaténation etl’étoile) représente tous les mots n’est pas P.
▶ On ne sait pas si décider si une expression rationnelle"normale" représente tous les mots est P (sans doute non..).
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA CLASSE NP
1. Elle contient beaucoup de propriétés associées à desproblèmes courants: problèmes de tournées, d’emploi dutemps, placement de tâches, affectation de fréquences,rotation d’équipages, découpage...
2. La classe NP contient P.
3. Pour beaucoup de propriétés NP, on n’a pas trouvéd’algorithme polynomial, mais pour aucune d’entre elles,on n’a prouvé qu’elle ne pouvait pas être décidée en tempspolynomial.
4. On suppose que P ̸= NP mais personne jusque maintenantn’a su prouver -ni infirmer- cette conjecture émise en 1971et déclarée un des problèmes du millénaire par l’InstitutClay qui propose 1 million de dollars pour sa résolution.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLE 1: LE 3-COLORIAGE DE GRAPHES
Donnée: G = (S,A) un grapheSortie: oui, si le graphe peut être coloré en 3 couleurs i.e. onpeut trouver:une application col de S dans {1, 2, 3} telle que
col(s) ̸= col(s′) si s, s′ sont reliés par un arc ( (s, s′) ∈ A ou(s′, s) ∈ A)
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLE 2: LE CIRCUIT HAMILTONIEN
Donnée: G = (S,A) un graphe, n un entierSortie: oui, si le graphe contient un circuit hamiltonien i.e. onpeut trouver:
une application sommet de {1, 2, ..., n} dans S telle que:
elle soit injective (on ne passe pas deux fois par lemême sommet)
(sommet(i), sommet(i + 1)) ∈ A pour 1 <= i < n
(sommet(n), sommet(1)) ∈ A
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLE 3: ATTEINDRE LA CIBLE
Donnée: x1, ..., xn, n entiersc un entier (cible)Sortie: oui, si on peut obtenir c comme somme d’unsous-ensemble des xi
i.e. on peut trouver
J ⊂ {1, ...,n} tel que c =∑
i∈J xi
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLE 4: SAT: SATISFIABILITÉ D’UNE EXPRESSION
BOOLÉENNE
Donnée: n, un entier, et Φ une expression booléenne avec nvariables booléennes, x1, ..., xn
Sortie: oui, si Φ est satisfiable, i.e. il existe une valuation v telleque v(Φ) = VraiExemples:si Φ = (x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x4) ∧ (¬x1 ∨ ¬x3) ∧ (x1 ∨ ¬x4)
Φ est satisfiable: v(x1) = Vrai, v(x3) = Faux, ...si Φ = (x1 ∨ x4) ∧ (¬x1 ∨ ¬x3) ∧ (x1 ∨ ¬x4) ∧ (¬x1 ∨ x3)
Φ n’est pas satisfiable (Comment le prouver?)
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
QUEL EST LE LIEN?
Pour chacune des propriétés précédentes, on cherche si il existeune solution qui vérifie une certaine contrainte.
.les "candidats-solutions" sont des objets pas trop "gros": uncoloriage, une valuation..
.vérifier si une solution vérifie la contrainte est "facile"
C’est la spécificité des NP ...
Remarque: ça ne nous donne pas pour autant d’algo efficace ...Enumérer les candidats solutions nous amène à une solutionexponentielle! Par exemple il y a plus de 3-coloriages d’ungraphe de 200 sommets que d’atomes dans l’univers.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA DÉFINITION DE NP VIA LES CERTIFICATS
..
NP
.
L est dit NP si il existe un polynôme Q, et un algorithmepolynomial à deux entrées et à valeurs booléennes telsque:
L = {u/∃c,A(c,u) = Vrai, |c| ≤ Q(|u|)}
A est appelé algorithme de vérification,c est appelé certificat (ou preuve, ou témoin..).
|c| représente la taille de c.|c| ≤ Q(|u|): la taille des certificats est bornée polynomialementpar rapport à la talle de l’entrée.On dit que A vérifie L en temps polynomial.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
L’INTUITION?
On peut par exemple voir c comme une preuve, A comme unalgorithme qui vérifie la preuve; vous pouvez être capable devérifier facilement la preuve courte qu’un gentil génie, (unprof, par exemple:-)) vous donne mais cela n’implique pasforcément qu’elle soit facile à trouver...
Une propriété NP sera donc une propriété pour laquelle lesinstances positives ont une preuve "courte" et "facile" à vérifier.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
COMMENT MONTRER QU’UNE PROPRIÉTÉ EST NP?
Pour montrer qu’une propriété est NP, il faut:▶ définir la notion de certificat et montrer que la taille d’un
certificat est bornée polynomialement par la taille duproblème
▶ définir l’algo de Vérification et montrer qu’il estpolynomial (et correct...)
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ETRE 3-COLORIABLE: LES CERTIFICATS
Un certificat pour G est juste un coloriage des noeuds.On peut par exemple le représenter par un tableau de couleursindexé par les sommets.On a donc :
taille du certificat <= taille du graphe
(on suppose que la taille d’un graphe est au moins le nombrede sommets plus le nombre d’arcs)La taille d’un certificat est alors bien linéaire, doncpolynomialement bornée, par rapport à celle de la donnée.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ETRE 3-COLORIABLE: L’ALGO DE VÉRIFICATION
Un certificat est valide Ssi aucun arc ne relie deux noeuds demême couleur: le vérifier est bien polynomial:
boolean A(col, G){Pour chaque arc (s,d) de G
si col(s)=col(d) retourner Faux;retourner Vrai;
}
La complexité de l’algorithme est de l’ordre de card(A) doncbien polynomiale.’Etre 3-coloriable’ est donc bien une propriété NP.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LE CIRCUIT HAMILTONIEN: LES CERTIFICATS
Donnée: G = (S,A) un graphe, n un entier, n <= card(S)
Certificat: une suite de n sommets, soit par exemple un tableaude n sommets.Donc la taille d’un certificat est au plus n (ou n ∗ log(card(S)), sion prend en compte la taille du codage d’un sommet)
Vérification: if faut vérifier que c’est bien un circuit : tous lessommets sont différents, un sommet et son suivant sont bienreliés par un arc.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LE CIRCUIT HAMILTONIEN: LA VÉRIFICATION
//cert: tableau de n sommetsA(cert,G){boolean dejapasse=new passe[nbsommets];//pour vérifier on ne passe pas 2 fois par le memepour i de 1 à nsi dejapassé[cert[i]] retourner Faux;//on passe deux fois par ce sommetsi (cert[i],cert[i+1]) n’est pas un arc de Gretourner Faux;dejapasse[cert(i)]=true;
fin pour;si (dejapassé[cert[n]]ou (cert[n],cert[1]) n’est pas un arc)alors retourner Faux;sinon retourner Vrai;
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LE CIRCUIT HAMILTONIEN
La complexité de l’algorithme est de l’ordre de n donc bienpolynomiale.Donc, la propriété est bien NP!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLE 3: ATTEINDRE LA CIBLE
Donnée: x1, ..., xn, n entiersc un entier (cible)Sortie: oui, si on peut obtenir c comme somme d’unsous-ensemble des xi i.e. on peut trouver J ⊂ {1, ..., n} tel quec =
∑i∈J xi
Certificat: J ⊂ {1, ..., n}On peut le représenter par un tableau de n booléens: la tailled’un certificat est inférieure à la taille du problème.
A vérifier: c =∑
i∈J xi:
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLE 3: ATTEINDRE LA CIBLE
A vérifier: c =∑
i∈J xi:
boolean A(cert, x_1,...,x_n,s){int s==0;Pour i de 1 à n
si cert(i) alors s=s+x_ifin pour;retourner (s==c);
}
Algo en O(n)La propriété est bien NP!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
EXEMPLE 4: SAT: SATISFIABILITÉ D’UNE EXPRESSION
BOOLÉENNE
Donnée: Φ une expression booléenne avec n variablesbooléennes, x1, ..., xn
Sortie: oui, si Φ est satisfiable, i.e. il existe une valuation v telleque v(Φ) = VraiCertificat: v , par exemple un tableau de n booléensAlgo de vérification: évaluer v(Φ)
Sat est bien une propriété NP.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA DÉFINITION VIA LE NON-DÉTERMINISME
NP=Non-Déterministe Polynomial
DefinitionAlternative: une propriété Pr est NP si il existe un algorithmenon déterministe polynomial qui décide Pr.
Remarque: NP=Non-Déterministe Polynomial et non pas NonPolynomial!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ALGOS NON DÉTERMINISTES POLYNOMIAUX
Un algorithme non-déterministe peut être vu comme unalgorithme avec des instructions de type "choix(i,1..n)": onchoisit aléatoirement un entier dans l’intervalle [1..n]. (On peutse restreindre à n = 2.)1
Complexité d’un algorithme non-déterministe: Un algorithmenon-déterministe A est dit polynomial si il existe un polynômeQ tel que pour toute entrée u, tous les calculs de A sur u ontune longueur d’exécution bornée par Q(|u|).
1On peut prendre comme modèle de calcul non-déterministe, lesMachines de Turing non déterministes: on étudiera ce modèle dans lesderniers cours.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
ALGOS NON DÉTERMINISTES À VALEURS
BOOLÉENNESSoit A un algorithme non déterministe à valeurs booléennes etdont tous les calculs s’arrêtent; il décide la propriété Prsuivante: "u vérifie Pr Ssi il existe un calcul de A sur u quiretourne Vrai." (penser à un automate non déterministe: un motest accepté si et seulement si il existe au moins un cheminacceptant.)Exemple:
Cherchercible(x_1,....x_n, c){s=0;Pour i in 1..nChoisir(onleprend?,1..2);Si (onleprend?==1) s=s+x_i;
finPour;retourner (s==c);}
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA DÉFINITION VIA LE NON-DÉTERMINISME VERSUS
LA DÉFINITION VIA LES CERTIFICATS
Les deux définitions sont équivalentes: un certificat correspondà une suite de choix dans l’exécution de l’algorithme nondéterministe.
A partir d’un algorithme non-déterministe polynomial pourvérifier P, on construira donc la notion de certificat quicorrespond à une suite de choix. L’algorithme de vérificationconsiste à vérifier que l’exécution de l’algorithme nondéterministe correspondant à la suite de choix donnée par lecertificat retourne Vrai.
A partir d’une notion de certificat et d’algorithme devérification, on construit un algorithme non-déterministe quiconsiste à d’abord générer aléatoirement un certificat -la partienon déterministe- et ensuite à le vérifier en utilisantl’algorithme -détermministe- de vérification.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
NP ET LES AUTRES
NP par rapport à P?Bien sûr, P est inclus dans NP: toute propriété P est unepropriété NP; l’algorithme de vérification est l’algorithme dedécision et n’a pas besoin de certificat: on peut prendre pourcertificat le mot vide.
On peut aussi montrer que NP est inclus dans EXPTIME (etmême dans PSPACE): pensez à l’algorithme qui énumère etteste tous les certificats possibles.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA CONJECTURE NP ̸= P?
On conjecture -en général- que P ̸= NP, mais personne n’a su leprouver!
Aucune propriété NP n’a été prouvée à ce jour ne pas être P.
D’un autre côté, pour beaucoup de propriétés NP, aucunalgorithme polynomial n’a été trouvé (ou tout du moins prouvéexister) malgré les efforts de milliers d epersonnes!
On verra dans le prochain cours qu’il existe des propriétés NPtelles que si on trouvait un algorithme polynomial pour l’uned’entre elles, il y aurait un algorithme polynomial pourn’importe quelle propriété NP.
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA CONJECTURE NP ̸= P?
La conjecture a été émise par S. Cook en 1971 et le "ClayMathematics Institute" offre 1 million de dollars à celui quitrouve la réponse à la question!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
NP ET LA NÉGATION...
La classe NP est close par union, concaténation, étoile,intersection (voir TD).
Par contre, on ne sait pas si NP est close par complémentaire:
Disposer de la notion de certificat et d’algorithme devérification pour une propriété Q, n’implique à priori pas quenon Q soit NP;Exemple: comment vérifier qu’il n’existe pas de 3−coloriage?
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
NP ET CO-NP
Une propriété Q telle que non Q soit NP est dite co-NP.
Bien sûr, co-NP contient P.
On conjecture aussi que NP ̸= co − NP mais, là encore ce n’estqu’une conjecture!
Bien sûr, si NP = P, on aurait NP=co-NP.
Mais on pourrait avoir NP = co − NP sans que NP soit égal à P!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LE BILAN
Une propriété NP est une propriété pour la quelle trouver une"solution" (une preuve ..) est peut-être difficile, mais vérifierune solution (une preuve...) est facile.
P: easy to find
NP: easy to check
Montrer qu’une propriété est NP n’est en général qu’uneétape...On cherche en général ensuite à montrer qu’elle est aussiNP-dure: voir le prochain cours.
Attention: Montrer qu’une propriété est NP n’est pas montrerqu’elle n’est pas P!!!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA PRÉSENTATION PAR L’INSTITUT CLAY
Suppose that you are organizing housing accommodations fora group of four hundred university students. Space is limitedand only one hundred of the students will receive places in thedormitory. To complicate matters, the Dean has provided youwith a list of pairs of incompatible students, and requested thatno pair from this list appear in your final choice. This is anexample of what computer scientists call an NP-problem, sinceit is easy to check if a given choice of one hundred studentsproposed by a coworker is satisfactory (i.e., no pair from takenfrom your coworker’s list also appears on the list from theDean’s office), however the task of generating such a list fromscratch seems to be so hard as to be completely impractical.Indeed, the total number of ways of choosing one hundredstudents from the four hundred applicants is greater than thenumber of atoms in the known universe!
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP
LA PRÉSENTATION PAR L’INSTITUT CLAY
Thus no future civilization could ever hope to build asupercomputer capable of solving the problem by brute force;that is, by checking every possible combination of 100 students.However, this apparent difficulty may only reflect the lack ofingenuity of your programmer. In fact, one of the outstandingproblems in computer science is determining whetherquestions exist whose answer can be quickly checked, butwhich require an impossibly long time to solve by any directprocedure. Problems like the one listed above certainly seem tobe of this kind, but so far no one has managed to prove that anyof them really are so hard as they appear, i.e., that there really isno feasible way to generate an answer with the help of acomputer. Stephen Cook and Leonid Levin formulated the P(i.e., easy to find) versus NP (i.e., easy to check) problemindependently in 1971.