COMPLEXITÉ DES PROBLÈMES LES CLASSES DE PROBLÈMES

Documents pareils
La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Gestion des Clés Publiques (PKI)

Introduction à la théorie des graphes. Solutions des exercices

Resolution limit in community detection

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Cours de Master Recherche

Limites finies en un point

L exclusion mutuelle distribuée

Calculabilité Cours 3 : Problèmes non-calculables.

Problèmes de Mathématiques Filtres et ultrafiltres

Chapitre 2. Eléments pour comprendre un énoncé

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Continuité et dérivabilité d une fonction

Rappels sur les suites - Algorithme

Programmation linéaire

6. Les différents types de démonstrations

Plus courts chemins, programmation dynamique

Définitions. Numéro à préciser. (Durée : )

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Annexe 6. Notions d ordonnancement.

Fondements de l informatique Logique, modèles, et calculs

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

1 Première section: La construction générale

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Probabilités conditionnelles Exercices corrigés

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Année 2014/ er septembre Version de Anca Muscholl, issue du poly de Marc Zeitoun. 1/143

Machines virtuelles Cours 1 : Introduction

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Calculs de probabilités

Intégration et probabilités TD1 Espaces mesurés

Quelques algorithmes simples dont l analyse n est pas si simple

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Université Paris-Dauphine DUMI2E 1ère année, Applications

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Chp. 4. Minimisation d une fonction d une variable

Chapitre 7. Récurrences

Introduction à l étude des Corps Finis

Le théorème de Thalès et sa réciproque

Cours de Probabilités et de Statistique

Raisonnement par récurrence Suites numériques

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Cours 1 : Qu est-ce que la programmation?

Intégration et probabilités TD1 Espaces mesurés Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé


Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

MIS 102 Initiation à l Informatique

Réalisabilité et extraction de programmes

Optimisation Discrète

Approche Contract First

I. Polynômes de Tchebychev

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Bases de données Cours 5 : Base de données déductives

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Correction du baccalauréat ES/L Métropole 20 juin 2014

Calcul fonctionnel holomorphe dans les algèbres de Banach

Programmation Par Contraintes

Une forme générale de la conjecture abc

Logiciel de Base. I. Représentation des nombres

Exercices sur le chapitre «Probabilités»

ARBRES BINAIRES DE RECHERCHE

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Représentation d un entier en base b

Cours 1 : La compilation

Probabilités sur un univers fini

Encryptions, compression et partitionnement des données

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Estimation: intervalle de fluctuation et de confiance. Mars IREM: groupe Proba-Stat. Fluctuation. Confiance. dans les programmes comparaison

SUR CERTAINS SYSTEMES D EQUATIONS AVEC CONTRAINTES DANS UN GROUPE LIBRE (*)

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Géométrie des nombres et cryptanalyse de NTRU

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Probabilités. C. Charignon. I Cours 3

Les arbres binaires de recherche

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Pourquoi l apprentissage?

Comparaison de fonctions Développements limités. Chapitre 10

1 Recherche en table par balayage

Cryptographie et fonctions à sens unique

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Logique. Plan du chapitre

Continuité en un point

La persistance des nombres

Trouver un vecteur le plus court dans un réseau euclidien

Développements limités, équivalents et calculs de limites

Algorithmes d'apprentissage

Sujet 4: Programmation stochastique propriétés de fonction de recours

LE PROBLEME DU PLUS COURT CHEMIN

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

ÉPREUVE COMMUNE DE TIPE Partie D

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

Algorithmique et Programmation Fonctionnelle

Transcription:

COMPLEXITÉ DES PROBLÈMES Complexité de Problèmes: les classes P et NP ACT Sophie Tison Université Lille Master1 Informatique Rappels Paradigmes d algorithme Complexité des problèmes Algorithmique Avancée LA COMPLEXITÉ D UN PROBLÈME 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. LES CLASSES DE PROBLÈMES L idée est de classifier les problèmes selon l ordre de grandeur de leur complexité. Tout d abord 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. 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-. On peut donc ensuite associer à la propriété le langage des (représentations des) données vérifiant cette propriété.

PROPRIÉTÉ/LANGAGE UN PREMIER EXEMPLE: LA CLASSE P La classe P Décider une propriété se ramène donc à tester l appartenance d un mot à un langage. 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. Un problème de décision est dit praticable si il est dans P, impraticable sinon. LA DÉFINITION DE NP VIA LES CERTIFICATS L INTUITION? NP L est dit NP si il existe un polynôme Q, et un algorithme polynômial à 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 polynômialement par rapport à la talle de l entrée. On dit que A vérifie L en temps polynômial. 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.

COMMENT MONTRER QU UNE PROPRIÉTÉ EST NP? ATTEINDRE LA CIBLE 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 polynômialement par la taille du problème définir l algo de Vérification et montrer qu il est polynômial (et correct...) Donnée: x 1,..., x n, n entiers c un entier (cible) Sortie: oui, si on peut obtenir c comme somme d un sous-ensemble des x i i.e. on peut trouver J {1,..., n} tel que c = i J x i Certificat: J {1,..., n} On peut le représenter par un tableau de n booléens: la taille d un certificat est donc n inférieure à la taille du problème. A vérifier: c = i J x i: ATTEINDRE LA CIBLE SAT: SATISFIABILITÉ D UNE EXPRESSION BOOLÉENNE A vérifier: c = i J x i: 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! Donnée: Φ une expression booléenne avec n variables booléennes, x 1,..., x n 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(φ) ce qui se fait bien en temps polynomial. Sat est bien une propriété NP.

LA DÉFINITION VIA LE NON-DÉTERMINISME ALGORITHMES NON DÉTERMINISTES Définition Alternative de NP Une propriété est NP si il existe un algorithme non déterministe polynomial qui la décide. NP=Non-Déterministe Polynomial et non pas Non Polynomial! 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.) On peut aussi prendre comme modèle de calcul non-déterministe, les Machines de Turing non déterministes. ALGORITHMES NON DÉTERMINISTES POLYNOMIAUX ALGOS NON DÉTERMINISTES À VALEURS BOOLÉENNES 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 ). 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.)

ALGOS NON DÉTERMINISTES À VALEURS BOOLÉENNES EXEMPLE LA DÉFINITION VIA LE NON-DÉTERMINISME VERSUS LA DÉFINITION VIA LES CERTIFICATS 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 deux définitions sont équivalentes. Un certificat correspond à une suite de choix dans l exécution de l algorithme non déterministe. 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 DÉFINITION VIA LE NON-DÉTERMINISME VERSUS LA DÉFINITION VIA LES CERTIFICATS NP ET LES AUTRES 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étermministe- de vérification. NP par rapport à P? 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. On peut aussi montrer que NP est inclus dans EXPTIME (et même dans PSPACE): pensez à l algorithme qui énumère et teste tous les certificats possibles.

LA CONJECTURE NP P? LA CONJECTURE NP P? On conjecture que P 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! 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! NP ET LA NÉGATION... EN RÉSUMÉ 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 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? 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... On cherche en général ensuite à montrer qu elle est aussi NP-dure. Attention: Montrer qu une propriété est NP n est pas montrer qu elle n est pas P!!!

LA HIÉRARCHIE LA HIÉRARCHIE Cible? 3-Color? P Sat? P NP EXPTIME Hamilton? NP LA PROBLÉMATIQUE LA PROBLÉMATIQUE 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 NP: ça risque d être difficile... Je peux essayer de montrer qu elle est NP dure. 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. Montrer qu une propriété est NP dure justifie en quelque sorte de ne pas avoir trouvé d algorithme polynomial.

UN OUTIL: LES RÉDUCTIONS POLYNOMIALES La notion de réduction permet de traduire qu un problème n est pas "plus dur" qu un autre. 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: pour montrer qu un problème est dur: si A est réputé dur, B l est aussi; 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. UN EXEMPLE "INFORMEL" 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? LA TRANSFORMATION... LA TRANSFORMATION EST CORRECTE 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: Les sommets du graphe sont les personnes. Il y a un arc entre deux sommets si les personnes sont ennemies. k = p G est k-coloriable Ssi on peut faire p é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. 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.

LA TRANSFORMATION EST POLYNOMIALE BILAN 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: Soit boolean Sol2(Pb2 inst) qui retourne en temps polynomial Vrai Ssi inst est une instance positive de Pb2, alors: boolean Sol1(Pb1 inst) {return Sol2(red_1_to_2(inst))} retourne en temps polynomial Vrai Ssi inst est une instance positive de Pb1. 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. ON PEUT AUSSI FAIRE UNE RÉDUCTION DANS L AUTRE SENS... DÉFINITION FORMELLE Les personnes sont les sommets de G. 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. Définition Soient L et L deux langages de Σ, correspondant à deux propriétés. Une réduction polynomiale de L dans L est une application red calculable polynomiale de Σ dans Σ telle que : u L Ssi red(u) L. Notation: L P L.

RÉDUCTION POLYNOMIALE = TRANSFORMATION D UN PROBLÈME DANS UN AUTRE. ENCORE UN EXEMPLE Par exemple, une réduction d un problème pb1 d équipes en un problème pb2 de coloriage de graphes sera une transformation: qui associe à toute instance i du pb1 d équipes, une instance red(i) du pb2 de coloriage de graphes telle que red(i) a une solution Ssi l instance i avait une solution. cette transformation est polynomiale, i.e. calculable par un algorithme polynomial. 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. Remarque: on en déduit donc que la taille de red(i) est bornée polynomialement par rapport à celle de i. CLIQUE CLIQUE 4 5 4 5 1 1 3 2 3 2

INDÉPENDANT EXEMPLE: SUITE... 4 5 1 On peut choisir comme réduction de Clique dans Independant l application red qui à (G = (S, A), k) associe (G = (S, A ), k) avec A = {(x, y)/(x, y) / A et (x, y) / A}. Montrer que c est bien une réduction polynomiale de Clique dans Independant consiste en: 3 2 Montrer que c est correct i.e., pour tout (G, k), Clique(G, k) Ssi Independant(G, k). Montrer que la transformation est polynomiale. CLIQUE CLIQUE 4 5 4 5 1 1 3 2 3 2 Est transformé en: Est transformé en: 4 5 1 3 2

EXEMPLE: SUITE... EN RÉSUMÉ red transforme l instance de Clique (G = (S, A), k), en l instance d Independent (G = (S, A ), k) avec A = {(x, y)/(x, y) / A et (x, y) / A}. Correct? i.e., pour tout (G, k), Clique(G, k) Ssi Independent(G, k)? Oui: Si (G = (S, A), k) a une clique C de cardinal k, C est un ensemble indépendant de cardinal k de G. réciproquement: si (G = (S, A ), k) a un ensemble indépendant C de cardinal k, C est une clique de cardinal k de G. La transformation est polynomiale: l algorithme qui calcule red(g) est bien polynomial (en O(card(S) 2 ). Pour prouver qu une propriété P1 se réduit polynomialement en une autre P2, il faut: proposer une réduction, i.e. un algo red qui à une instance I de P1, associe une instance red(i) de P2. 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. prouver qu elle est polynomiale. POURQUOI PROUVER QU UN PROBLÈME SE RÉDUIT EN UN AUTRE? RÉDUCTIONS EN CHAÎNE Proposition: Si L est dans P et si L P L, alors L est dans P. u L Ssi red(u) L : donc, pour décider de l appartenance à L, il suffit d appliquer la transformation, et de décider de l appartenance du transformé à L : Si AppL est un algo polynomial pour tester l appartenance à L, boolean AppL(u) {return AppL (red(u));} est un algo polynomial pour tester l appartenance à L. Propriété: La relation P est transitive: si L P L et L P L, alors L P L. Si red1 est une réduction polynomiale de L dans L, et red2 est une réduction polynomiale de L vers L, alors red2 red1 est une réduction polynomiale de L vers L. Si L est P, L est P. si L n est pas P, L n est pas P.

LES PROPRIÉTÉS NP-DURES, NP-COMPLÈTES LA DÉCOUVERTE DE COOK Propriété NP-dure 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. 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. (x 1 x 2 x 3 ) (x 2 x 3 x 4 ) (x 1 x 2 x 4 ) ( x 1 x 2 x 3 )