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

Post on 27-Apr-2022

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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.

top related