complexité de problèmes: les classes p et np - univ-lille.fr

72
Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP Complexité de Problèmes: les classes P et NP ACT Sophie Tison Université Lille Master1 Informatique

Upload: others

Post on 27-Apr-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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

Page 2: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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

Page 3: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 4: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 5: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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...

Page 6: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 7: Complexité de Problèmes: les classes P et NP - univ-lille.fr

Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP

BILAN DES 3 PARADIGMES

Page 8: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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).

Page 9: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 10: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 11: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 12: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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).

Page 13: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 14: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 15: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 16: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 17: Complexité de Problèmes: les classes P et NP - univ-lille.fr

Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP

Fin de la première partie du Cours!

Page 18: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 19: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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?

Page 20: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 21: Complexité de Problèmes: les classes P et NP - univ-lille.fr

Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP

LA COMPLEXITÉ D’UN PROBLÈME

Page 22: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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

Page 23: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 24: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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).

Page 25: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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

Page 26: Complexité de Problèmes: les classes P et NP - univ-lille.fr

Bilan des trois paradigmes Complexité de problèmes La classe P La classe NP

LES MÉTHODES DITES D’ORACLE OU D’ADVERSAIRE

Page 27: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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?

Page 28: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 29: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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. .

Page 30: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 31: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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).

Page 32: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 33: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 34: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 35: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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,

Page 36: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 37: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 38: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 39: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 40: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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).

Page 41: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 42: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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?"

Page 43: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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..).

Page 44: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 45: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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)

Page 46: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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

Page 47: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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

Page 48: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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?)

Page 49: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 50: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 51: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 52: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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...)

Page 53: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 54: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 55: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 56: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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;

Page 57: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 58: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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:

Page 59: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 60: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 61: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 62: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 63: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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);}

Page 64: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 65: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 66: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.

Page 67: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 68: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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?

Page 69: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 70: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!!!

Page 71: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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!

Page 72: Complexité de Problèmes: les classes P et NP - univ-lille.fr

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.