La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures C OMPLEXITÉ DES PROBLÈMES Complexité de Problèmes: la classe NP ACT Sophie Tison Université Lille Master1 Informatique La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures C OMPLEXITÉ DE P ROBLÈMES La classe P I Rappels I Paradigmes d’algorithme I Complexité des problèmes I Algorithmique Avancée La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L ES PROPRIÉTÉS C OMPUTATIONAL COMPLEXITY La complexité d’un problème La complexité d’un problème est la complexité minimale dans le pire des cas d’un algorithme qui le résout. Pour simplifier, on va se limiter aux problèmes de décision ou propriétés. Propriétés Une propriété est une fonction à valeurs booléennes. C’est souvent la complexité en temps qu’on considère mais on peut s’intéresser à d’autres mesures comme par exemple la complexité en espace. Cette définition -un peu floue- ne précise pas quel modèle d’algorithme on choisit: l’analyse “fine” de la complexité (par exemple, être linéaire, être quadratique) sera différente selon le modèle d’où l’intérêt des classes de complexité indépendantes du modèle. Un problème de décision peut donc être vu comme un ensemble I d’instances du problème avec pour chaque instance une réponse “oui” ou “non”. Exemple: "être premier" est une fonction qui à tout entier naturel associe oui -si il est premier-, non sinon. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures A BSTRAIT /C ONCRET Par exemple à la propriété abstraite "être premier" définie sur les entiers, on associera la propriété "être la représentation binaire d’un entier premier" définie sur {0, 1}∗ . Cela suppose donc qu’on a choisi une représentation des instances du problème. La classe NP Les propriétés NP-dures La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures P ROPRIÉTÉ / LANGAGE 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-. La classe P La classe P Les réductions polynomiales Les propriétés NP-dures L A 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ésolution polynomial en temps. 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 associera l’ensemble des représentations des entiers premiers dans une certaine base non unaire. Donc, vérifier si un entier est premier se ramène à tester si sa représentation (=un mot) est dans le langage. Décider une propriété se ramène donc à tester l’appartenance d’un mot à un langage. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A CLASSE NP 1. Elle contient beaucoup de propriétés associées à des problèmes courants: problèmes de tournées, d’emploi du temps, placement de tâches, affectation de fréquences, rotation d’équipages, découpage... 2. La classe NP contient P. Cette définition est (quasiment-) indépendante du modèle d’algorithme choisi: un algorithme polynomial en C sera polynomial si il est traduit en termes de machine de Turing et les modèles classiques de calcul (excepté les ordinateurs quantiques) sont polynomialement équivalents. Un problème de décision est dit praticable si il est dans P, impraticable sinon. 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 temps polynomial. 4. On suppose que P 6= NP mais personne jusque maintenant n’a su prouver -ni infirmer- cette conjecture émise en 1971 et déclarée un des problèmes du millénaire par l’Institut Clay qui propose 1 million de dollars pour sa résolution. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A DÉFINITION DE NP VIA LES CERTIFICATS La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L’ INTUITION ? NP L est dit NP si il existe un polynôme Q, et un algorithme polynomial à deux entrées et à valeurs booléennes tels que: 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 polynomialement par rapport à la taille de l’entrée. On dit que A vérifie L en temps polynomial. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures C OMMENT MONTRER QU ’ UNE PROPRIÉTÉ EST NP? On peut par exemple voir c comme une preuve, A comme un algorithme qui vérifie la preuve; vous pouvez être capable de vérifier facilement la preuve courte qu’un gentil génie, (un prof, par exemple:-)) vous donne mais cela n’implique pas forcément qu’elle soit facile à trouver... Une propriété NP sera donc une propriété pour laquelle les instances positives ont une preuve "courte" et "facile" à vérifier. La classe P La classe NP Les propriétés NP-dures E TRE 3- COLORIABLE : Les réductions polynomiales Les propriétés NP-dures LES CERTIFICATS Pour montrer qu’une propriété est NP, il faut: I définir la notion de certificat et montrer que la taille d’un certificat est bornée polynomialement par la taille du problème I définir l’algo de Vérification et montrer qu’il est polynomial et correct. Un certificat pour G est juste un coloriage des noeuds. On peut par exemple le représenter par un tableau de couleurs indexé par les sommets. On a donc : taille du certificat <= taille du graphe Rsemarque: on suppose que la taille d’un graphe est au moins le nombre de sommets plus le nombre d’arcs. La taille d’un certificat est linéaire, donc polynomialement bornée, par rapport à celle de la donnée. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures E TRE 3- COLORIABLE : L’ ALGO DE VÉRIFICATION La classe P La classe NP Les propriétés NP-dures L E CIRCUIT H AMILTONIEN : Les réductions polynomiales Les propriétés NP-dures LES CERTIFICATS Un certificat est valide Ssi aucun arc ne relie deux noeuds de mê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) donc bien polynomiale. ’Etre 3-coloriable’ est donc bien une propriété NP. La classe P La classe NP Les propriétés NP-dures L E CIRCUIT H AMILTONIEN : Les réductions polynomiales Les propriétés NP-dures LA VÉRIFICATION //cert: tableau de n sommets A(cert,G){ boolean dejapasse=new passe[nbsommets]; //pour vérifier on ne passe pas 2 fois par le meme pour i de 1 à n si dejapassé[cert[i]] retourner Faux; //on passe deux fois par ce sommet si (cert[i],cert[i+1]) n’est pas un arc de G retourner 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; Donnée: G = (S, A) un graphe, n un entier, n <= card(S) Certificat: une suite de n sommets, soit par exemple un tableau de n sommets. Donc la taille d’un certificat est au plus n ou plus exactement n ∗ log(card(S)), si on prend en compte la taille du codage d’un sommet. Vérification: if faut vérifier que c’est bien un circuit : tous les sommets sont différents, un sommet et son suivant sont bien reliés par un arc. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L E CIRCUIT H AMILTONIEN La complexité de l’algorithme est de l’ordre de n donc bien polynomiale. Donc, la propriété de l’existence d’un circuit hamiltonien est bien NP! La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures E XEMPLE 3: ATTEINDRE LA CIBLE La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures E XEMPLE 3: ATTEINDRE LA CIBLE A vérifier: c = Donnée: x1 , ..., xn , n entiers c un entier (cible) Sortie: oui, si on peut obtenir c comme somme d’un sous-ensemble des xi i.e. on peut trouver J ⊂ {1, ..., n} tel que P c = i∈J xi Certificat: J ⊂ {1, ..., n} le choix des entiers qu’on "garde" On peut le représenter par un tableau de n booléens: la taille d’un certificat est inférieure à la taille du problème. P A vérifier: c = i∈J xi : P 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_i fin pour; retourner (s==c); } Algo en O(n) La propriété est bien NP! La classe P La classe NP Les propriétés NP-dures E XEMPLE 4: SAT: B OOLÉENNE Les réductions polynomiales Les propriétés NP-dures SATISFIABILITÉ D ’ UNE EXPRESSION Donnée: Φ une expression booléenne avec n variables booléennes, x1 , ..., xn Sortie: oui, si Φ est satisfiable, i.e. il existe une valuation v telle que v(Φ) = Vrai Certificat: v, par exemple un tableau de n booléens Algo de vérification: évaluer v(Φ) Sat est bien une propriété NP. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A DÉFINITION VIA LE NON - DÉTERMINISME NP=Non-Déterministe Polynomial Définition alternative de NP Une propriété Pr est NP si il existe un algorithme non déterministe polynomial qui décide Pr. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales NP=N ON -D ÉTERMINISTE P OLYNOMIAL ET NON PAS N ON P OLYNOMIAL ! A LGORITHMES NON DÉTERMINISTES La classe P La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures A LGOS NON DÉTERMINISTES À VALEURS BOOLÉENNES Soit A un algorithme non déterministe à valeurs booléennes et dont tous les calculs s’arrêtent; il décide la propriété Pr suivante: "u vérifie Pr Ssi il existe un calcul de A sur u qui retourne Vrai." Penser à un automate non déterministe: un mot est accepté si et seulement si il existe au moins un chemin acceptant. Les propriétés NP-dures Un algorithme non-déterministe peut être vu comme un algorithme avec des instructions de type "choix(i,1..n)": on choisit aléatoirement un entier dans l’intervalle [1..n]. (On peut se restreindre à n = 2.) La classe NP Les propriétés NP-dures Les réductions polynomiales A LGOS NON DÉTERMINISTES À VALEURS BOOLÉENNES : EXEMPLE Cherchercible(x_1,....x_n, c){ s=0; Pour i in 1..n Choisir(onleprend?,1..2); Si (onleprend?==1) s=s+x_i; finPour; retourner (s==c);} Les propriétés NP-dures La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures A LGORITHMES NON DÉTERMINISTES POLYNOMIAUX Complexité d’un algorithme non-déterministe: Un algorithme non-déterministe A est dit polynomial si il existe un polynôme Q tel que pour toute entrée u, tous les calculs de A sur u ont une longueur d’exécution bornée par Q(|u|). La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A DÉFINITION VIA LE NON - DÉTERMINISME VERSUS L A DÉFINITION VIA LES CERTIFICATS A partir d’un algorithme non-déterministe polynomial pour vérifier P, on construira donc la notion de certificat qui correspond à une suite de choix. L’algorithme de vérification consiste à vérifier que l’exécution de l’algorithme non déterministe correspondant à la suite de choix donnée par le certificat retourne Vrai. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A DÉFINITION VIA LE NON - DÉTERMINISME VERSUS L A 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 non déterministe. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A DÉFINITION VIA LE NON - DÉTERMINISME VERSUS L A DÉFINITION VIA LES CERTIFICATS A partir d’une notion de certificat et d’algorithme de vérification, on construit un algorithme non-déterministe qui consiste à d’abord générer aléatoirement un certificat -la partie non déterministe- et ensuite à le vérifier en utilisant l’algorithme -déter ministe- de vérification. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures NP ET LES AUTRES La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures NP ET LES AUTRES NP est inclus dans EXPTIME (et même dans PSPACE): pensez à l’algorithme qui énumère et teste tous les certificats possibles. Bien sûr, P est inclus dans NP: toute propriété P est une propriété NP; L’algorithme de vérification est l’algorithme de décision et n’a pas besoin de certificat: on peut prendre pour certificat le mot vide. C’est ce qu’on appelle parfois l’algorithme du Bristish museum qui consiste à essayer toites les possibilités. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A CONJECTURE NP 6= P? La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A CONJECTURE NP 6= P? On conjecture -en général- que P 6= NP, mais personne n’a su le prouver! 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, aucun algorithme polynomial n’a été trouvé (ou tout du moins prouvé exister) malgré les efforts de milliers d epersonnes! On verra qu’il existe des propriétés NP telles que si on trouvait un algorithme polynomial pour l’une d’entre elles, il y aurait un algorithme polynomial pour n’importe quelle propriété NP. La conjecture a été émise par S. Cook en 1971 et le "Clay Mathematics Institute" offre 1 million de dollars à celui qui trouve la réponse à la question! La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures NP ET LA NÉGATION ... L A HIÉRARCHIE 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: ? P ?? Z on e ha bi t ée ? Disposer de la notion de certificat et d’algorithme de vérification pour une propriété Q, n’implique à priori pas que non Q soit NP; Exemple: comment vérifier qu’il n’existe pas de 3−coloriage? NP PSPACE EXPTIME La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures 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 6= co − NP mais, là encore ce n’est qu’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! La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L E BILAN DE LA DÉFINITION DES NP Une propriété NP est une propriété pour la quelle trouver une "solution" (une preuve ..) est peut-être difficile, mais vérifier une 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... La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures M ONTRER QU ’ UNE PROPRIÉTÉ EST NP N ’ EST PAS MONTRER QU ’ ELLE N ’ EST PAS P!!! La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A HIÉRARCHIE P NP EXPTIME La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales L A HIÉRARCHIE Les propriétés NP-dures La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A PROBLÉMATIQUE 3-Color? Cible ? P Sat ? Hamilton ? NP Je cherche un algorithme pour vérifier une propriété; j’ai montré qu’elle est NP mais je ne trouve pas d’algorithme P. La propriété est-elle "dure" ou suis-je "nul(-le)"? Si j’arrive à prouver qu’il n’ y a pas d’algorithme polynomial, je prouve P 6= NP: ça risque d’être difficile... Je peux essayer de montrer qu’elle est NP−dure. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A PROBLÉMATIQUE La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures U N OUTIL : L ES RÉDUCTIONS POLYNOMIALES La notion de réduction permet de traduire qu’un problème n’est pas "plus dur" qu’un autre. Une propriété NP−dure contient d’une certaine façon toute la difficulté de la classe NP. Si on trouve un algorithme polynomial pour une telle propriété, on en aurait un pour toute propriété NP. Si un problème A se réduit en un problème B, le problème A est (au moins) aussi facile que B - si la réduction est "facile"-. On peut a priori utiliser la réduction de deux façons: Montrer qu’une propriété est NP−dure justifie en quelque sorte de ne pas avoir trouvé d’algorithme polynomial. I pour montrer qu’un problème est dur: si A est réputé dur, B l’est aussi; I pour montrer qu’un problème est facile: si B est facile, A l’est aussi. C’est en fait surtout le premier raisonnement que l’on va utiliser. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures U N EXEMPLE " INFORMEL " La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A TRANSFORMATION ... Soient les deux problèmes de décision suivants: Problème 1 Donnée: N, un nombre de participants, une liste de paires de participants: les paires d’ennemis, p, un entier. Q? Peut-on répartir les participants en au plus p équipes de telle sorte qu’aucune équipe ne contienne une paire d’ennemis. Problème 2 Donnée: Un graphe G, un entier k: un nombre de couleurs. Q? G est -il k-coloriable? Les deux problèmes sont NP, pour aucun des deux, on ne connaît d’algorithme polynomial. Comment transformer un problème en un autre? Supposons qu’on dispose d’un algorithme pour le pb de coloriage de graphes. Comment s’en servir pour le pb des équipes? On transforme une instance du Pb1 en une instance du Pb2: I Les sommets du graphe sont les personnes. I Il y a un arc entre deux sommets si les personnes sont ennemies. I k=p La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A TRANSFORMATION EST CORRECTE La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A TRANSFORMATION EST POLYNOMIALE G est k-coloriable Ssi on peut faire p équipes: De plus, la construction de G se fait polynomialement. Donc si on a un algorithme polynomial pour le p−coloriage de graphe, on en a aussi un pour le problème d’équipes: ⇐ Supposons qu’on puisse répartir les participants en au plus p équipes: on donne à chaque sommet la couleur de l’équipe de la personne correspondant au sommet. Deux sommets de même couleur correspondent à deux personnes de la même équipe: donc il n’y a pas d’arc entre eux. Le coloriage est bien correct. Soit boolean Sol2(Pb2 inst) qui retourne en temps polynomial Vrai Ssi inst est une instance positive de Pb2, ⇒ Supposons qu’on puisse faire un k = p-coloriage correct de G. Affectons chaque personne à l’équipe couleur du sommet correspondant. Deux personnes ennemies sont reliées par un arc donc ne sont pas dans la même équipe. boolean Sol1(Pb1 inst) {return Sol2(red_1_to_2(inst))} retourne en temps polynomial Vrai Ssi inst est une instance positive de Pb1. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures B ILAN alors: La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures O N PEUT AUSSI FAIRE UNE RÉDUCTION DANS L’ AUTRE SENS ... Si on a un algorithme polynomial pour le p−coloriage de graphe, on en a aussi un pour le problème d’équipes. Par contraposée: Si il n’y a pas d’algorithme polynomial pour le problème d’équipes, il n’y en a pas non plus pour le p−coloriage. I Les personnes sont les sommets de G. I Deux personnes sont "ennemies" si elles sont reliées par un arc de G. Alors on peut répartir en( au plus) p équipes Ssi le graphe de départ était p-coloriable. Là encore, la réduction est polynomiale. Donc si il y a un algo polynomial pour le problème d’équipes, il y en a un pour le p−coloriage de graphes. Si il n’y en a pas pour le problème de p−coloriage, il n’y en a pas non plus pour le problème d’équipes. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures D ÉFINITION FORMELLE La classe P La classe NP Les réductions polynomiales Les propriétés NP-dures R ÉDUCTION POLYNOMIALE = TRANSFORMATION D ’ UN PROBLÈME DANS UN AUTRE . Réduction polynomiale Soient L et L0 deux langages de Σ∗ , correspondant à deux propriétés. Par exemple, une réduction d’un problème pb1 d’équipes en un problème pb2 de coloriage de graphes sera une transformation: I qui associe à toute instance i du pb1 d’équipes, une instance red(i) du pb2 de coloriage de graphes I telle que red(i) a une solution Ssi l’instance i avait une solution. I cette transformation est polynomiale, i.e. calculable par un algorithme polynomial. L0 Une réduction polynomiale de L dans est une appli∗ cation red calculable polynomiale de Σ dans Σ∗ telle que : u ∈ L Ssi red(u) ∈ L0 . Notation: L ≤P Les propriétés NP-dures L0 . Remarque: on en déduit donc que la taille de red(i) est bornée polynomialement par rapport à celle de i. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures E NCORE UN EXEMPLE Soient les deux propriétés suivantes: Clique: Entrée: G=(S,A) -un graphe non orienté k - un entier Sortie: Oui, Ssi G contient une clique de cardinal k. Indépendant Entrée: G=(S,A) -un graphe non orienté k - un entier Sortie: Oui, Ssi G contient un ensemble indépendant de cardinal k. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales C LIQUE 4 5 1 3 2 Les propriétés NP-dures La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures C LIQUE La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales I NDÉPENDANT 5 4 5 4 1 1 3 La classe P 3 2 La classe NP E XEMPLE : Les propriétés NP-dures Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures SUITE ... On peut choisir comme réduction de Clique dans Independant l’application red qui à (G = (S, A), k) associe (G0 = (S, A0 ), k) avec A0 = {(x, y)/(x, y) ∈ / A et (x, y) ∈ / A}. Montrer que c’est bien une réduction polynomiale de Clique dans Independant consiste en: I Montrer que c’est correct i.e., pour tout (G, k), Clique(G, k) Ssi Independant(G0 , k). I Montrer que la transformation est polynomiale. La classe P 2 La classe NP Les propriétés NP-dures Les réductions polynomiales C LIQUE 4 5 1 3 2 Est transformé en: Les propriétés NP-dures La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures C LIQUE 2 1 La classe P SUITE ... I La transformation est polynomiale: l’algorithme qui calcule red(G) est bien polynomial (en O(card(S)2 ). 2 La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures E N RÉSUMÉ Pour prouver qu’une propriété P1 se réduit polynomialement en une autre P2, il faut: I proposer une réduction, i.e. un algo red qui à une instance I de P1, associe une instance red(I) de P2. I prouver qu’elle est correcte, i.e. qu’une instance I de P1 est positive Si et Seulement Si red(I) est une instance positive de P2. I Les propriétés NP-dures Correct? i.e., pour tout (G, k), Clique(G, k) Ssi Independent(G0 , k)? Oui: Si (G = (S, A), k) a une clique C de cardinal k, C est un ensemble indépendant de cardinal k de G0 . réciproquement: si (G0 = (S, A0 ), k) a un ensemble indépendant C de cardinal k, C est une clique de cardinal k de G. 5 3 Les réductions polynomiales I Est transformé en: 4 Les propriétés NP-dures red transforme l’instance de Clique (G = (S, A), k), en l’instance d’Independent (G0 = (S, A0 ), k) avec A0 = {(x, y)/(x, y) ∈ / A et (x, y) ∈ / A}. 1 3 La classe NP E XEMPLE : 5 4 La classe P prouver qu’elle est polynomiale. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures P OURQUOI PROUVER QU ’ UN PROBLÈME SE RÉDUIT EN UN AUTRE ? Proposition: Si L0 est dans P et si L ≤P L0 , alors L est dans P. u ∈ L Ssi red(u) ∈ L0 : donc, pour décider de l’appartenance à L, il suffit d’appliquer la transformation, et de décider de l’appartenance du transformé à L0 : Si AppL0 est un algo polynomial pour tester l’appartenance à L0 , boolean AppL(u) {return AppL’(red(u));} est un algo polynomial pour tester l’appartenance à L0 . Si L0 est P, L est P. si L n’est pas P, L0 n’est pas P. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures R ÉDUCTIONS EN CHAÎNE La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L ES PROPRIÉTÉS NP- DURES , NP- COMPLÈTES Propriété NP-dure Propriété: La relation ≤P est transitive: si L ≤P L0 et L0 ≤P L00 , alors L ≤P L”. Si red1 est une réduction polynomiale de L dans L0 , et red2 est une réduction polynomiale de L0 vers L” , alors red2 ◦ red1 est une réduction polynomiale de L vers L”. Une propriété R est dite NP-dure Si toute propriété NP se réduit polynomialement en R. Donc, d’après ce qui précède, si une propriété NP − dure R était P, on aurait NP = P: R contient donc d’une certaine façon toute la difficulté de NP! Définition Une propriété est dite NP−complète Si elle est NP et NP−dure. La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures L A DÉCOUVERTE DE C OOK Cook fut le premier à découvrir... l’existence de propriétés NP-dures: Théorème de Cook: 3 − CNF − SAT est NP−complète. 3 − CNF − SAT est le problème de la satisfiabilité d’une formule sous forme conjonctive où chaque clause contient 3 littéraux. (x1 ∨ x2 ∨ x3 ) ∧ (x2 ∨ ¬x3 ∨ x4 ) ∧ (x1 ∨ x2 ∨ ¬x4 ) ∧ (¬x1 ∨ ¬x2 ∨ ¬x3 )