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



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

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

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

Chapitre 5 : Flot maximal dans un graphe

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

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

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

Cours de Probabilités et de Statistique

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

Machines virtuelles Cours 1 : Introduction

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Programmation linéaire

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Rapport de stage de première année de Master Optimisation de cache d instructions

BACCALAUREAT GENERAL MATHÉMATIQUES

Limites finies en un point

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

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

Image d un intervalle par une fonction continue

chapitre 4 Nombres de Catalan

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

Chapitre 2 Le problème de l unicité des solutions

Resolution limit in community detection

Réalisabilité et extraction de programmes

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

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

Eléments de Théorie des Graphes et Programmation Linéaire

Problèmes de Mathématiques Filtres et ultrafiltres

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

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

MIS 102 Initiation à l Informatique

Chaînes de Markov au lycée

Big Data et Graphes : Quelques pistes de recherche

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

FIMA, 7 juillet 2005

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

1 Définition et premières propriétés des congruences

Triangle de Pascal dans Z/pZ avec p premier

Annexe 6. Notions d ordonnancement.

Calculs de probabilités conditionelles

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

Cours de mathématiques

Calculs de probabilités

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

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

Cours d Analyse. Fonctions de plusieurs variables

Introduction à la théorie des graphes

Logique. Plan du chapitre

Optimisation Discrète

FaceBook aime les Maths!

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

A. Définition et formalisme

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

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

6. Les différents types de démonstrations

Transmission d informations sur le réseau électrique

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Plus courts chemins, programmation dynamique

Algorithmique et Programmation Fonctionnelle

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Continuité et dérivabilité d une fonction

Bases de données. Chapitre 1. Introduction

Approximations variationelles des EDP Notes du Cours de M2

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

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

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

Big Data et Graphes : Quelques pistes de recherche

Chapitre 1 : Évolution COURS

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Continuité d une fonction de plusieurs variables

Rappels sur les suites - Algorithme

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

Premiers exercices d Algèbre. Anne-Marie Simon

Structures algébriques

Cours 1 : Qu est-ce que la programmation?

LE PROBLEME DU PLUS COURT CHEMIN

ÉPREUVE COMMUNE DE TIPE Partie D

Qu est-ce qu une probabilité?

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Jean-Philippe Préaux


3 Approximation de solutions d équations

Compression Compression par dictionnaires

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Algorithmes d'apprentissage

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

Cours de Master Recherche

Résolution de systèmes linéaires par des méthodes directes

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

Raisonnement par récurrence Suites numériques

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

Transcription:

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

Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of NP-Completeness, M. R. Garey, D. S. Johnson, 1976. 3. Transparents inspirés du cours Fondements de l informatique : Logique, Modèles, Calculs d Olivier Bournez.

3 Plan Retour sur l épisode précédent Une convention Pourquoi cette convention? Les classes P et NP La notion de réduction NP-complétude Théorème de Cook-Levin Comment pour prouver la NP-complétude Exemple de réduction Problème de la couverture de sommet Problème du cycle hamiltonien Problème de la somme de sous-ensembles

4 Objectif de ce cours Distinguer ce qui est raisonnable de ce qui n est pas raisonnable en terme de temps de calcul.

4 Objectif de ce cours Distinguer ce qui est raisonnable de ce qui n est pas raisonnable en terme de temps de calcul. Problèmes décidables.

4 Objectif de ce cours Distinguer ce qui est raisonnable de ce qui n est pas raisonnable en terme de temps de calcul. Problèmes décidables. Raisonnable?

Complexité d un algorithme, d un problème Complexite(A, d) est le nombre d opérations effectuées par algorithme A ayant d comme une entrée. On cherche souvent à évaluer cette complexité en fonction de la taille des entrées taille(d). On peut alors parler de la complexité (au pire cas) d un algorithme (on fait varier seulement les entrées) Complexite A (n) = max Complexite(A, d). d/taille(d)=n d un problème (on fait varier l algorithme, et les entrées) inf A correct Complexite A(n).

Retour sur l épisode précédent Une convention Pourquoi cette convention? Plus précisément

7 Une convention La convention suivante s est imposée en informatique : CONVENTION : Temps raisonnable = temps polynomial, c est-à-dire en O(n k ) pour un entier k.

7 Une convention La convention suivante s est imposée en informatique : CONVENTION : Temps raisonnable = temps polynomial, c est-à-dire en O(n k ) pour un entier k. Graphiquement : Problèmes décidables. Raisonnable

7 Une convention La convention suivante s est imposée en informatique : CONVENTION : Temps raisonnable = temps polynomial, c est-à-dire en O(n k ) pour un entier k. Graphiquement : Problèmes décidables. P Exemples :

7 Une convention La convention suivante s est imposée en informatique : CONVENTION : Temps raisonnable = temps polynomial, c est-à-dire en O(n k ) pour un entier k. Graphiquement : Problèmes décidables. P Exemples : Décider si un graphe est eulerien est dans P.

7 Une convention La convention suivante s est imposée en informatique : CONVENTION : Temps raisonnable = temps polynomial, c est-à-dire en O(n k ) pour un entier k. Graphiquement : Problèmes décidables. P Exemples : Décider si un graphe est eulerien est dans P. On ne sait pas si le problème du cycle hamiltonien est dans P.

Retour sur l épisode précédent Une convention Pourquoi cette convention? Plus précisément

9 Raison 1 : s affranchir du modèle de calcul Thèse de Church : Les modèles suivants se simulent deux à deux : Les machines de Turing à un ruban. Les machines de Turing à deux rubans. Les machines à k 2 piles Les machines RAM Les programmes JAVA, C, CAML,...

9 Raison 1 : s affranchir du modèle de calcul Thèse de Church : Les modèles suivants se simulent deux à deux : Les machines de Turing à un ruban. Les machines de Turing à deux rubans. Les machines à k 2 piles Les machines RAM Les programmes JAVA, C, CAML,... de telle sorte que : t instructions de l un sont simulées par un nombre d instructions polynomial en t par l autre.

Raison 1 : s affranchir du modèle de calcul Graphe Algorithme Java Résultat Nombre d instructions : T

10 Raison 1 : s affranchir du modèle de calcul Graphe Machine RAM Résultat Nombre d instructions : T k

10 Raison 1 : s affranchir du modèle de calcul Graphe Algorithme CAML Résultat Nombre d instructions : (T k ) k = T kk

10 Raison 1 : s affranchir du modèle de calcul Graphe Machine de Turing Résultat Nombre d instructions : (T kk ) k = T kk k

10 Raison 1 : s affranchir du modèle de calcul Graphe Machine de Turing Résultat Nombre d instructions : (T kk ) k = T kk k On peut donc parler d algorithme efficace sans avoir à préciser dans quel langage / avec quel modèle l algorithme est implémenté.

Raison 1 : s affranchir du modèle de calcul Graphe Machine de Turing Résultat Nombre d instructions : (T kk ) k = T kk k On peut donc parler d algorithme efficace sans avoir à préciser dans quel langage / avec quel modèle l algorithme est implémenté. Le temps correspond au nombre d instructions dans chacun de ces modèles. (à la composition par un polynôme près)

11 Raison 2 : s affranchir de problèmes du codage Graphe Algorithme Résultat Temps : T (taille(graphe))

11 Raison 2 : s affranchir de problèmes du codage Graphe Algorithme Résultat Temps : T (taille(graphe)) La plupart des objets informatiques usuels peuvent se représenter de différentes façons...

11 Raison 2 : s affranchir de problèmes du codage Graphe Algorithme Résultat Temps : T (taille(graphe)) La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence.

11 Raison 2 : s affranchir de problèmes du codage Liste Algorithme Résultat Temps : T (taille(liste)) La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence.

11 Raison 2 : s affranchir de problèmes du codage Matrice Algorithme Résultat Temps : T (taille(matrice)) La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence.

Raison 2 : s affranchir de problèmes du codage Matrice Algorithme Résultat Temps : T (taille(matrice)) La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence....mais passer d une façon de les représenter à l autre est possible en un temps qui reste polynomial en la taille du codage.

11 Raison 2 : s affranchir de problèmes du codage Matrice Algorithme Résultat Temps : T (taille(matrice)) La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence....mais passer d une façon de les représenter à l autre est possible en un temps qui reste polynomial en la taille du codage. Exemple : on peut transformer une liste d adjacence en une matrice d adjacence en temps polynomial (et réciproquement).

11 Raison 2 : s affranchir de problèmes du codage Liste f Matrice Algorithme Résultat Temps : T (taille(liste)) = T f (taille(liste)) + T (taille(matrice)) La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence....mais passer d une façon de les représenter à l autre est possible en un temps qui reste polynomial en la taille du codage. Exemple : on peut transformer une liste d adjacence en une matrice d adjacence en temps polynomial (et réciproquement).

11 Raison 2 : s affranchir de problèmes du codage Liste f Matrice Algorithme Résultat Temps : T (taille(liste)) = T f (taille(liste)) + T (taille(matrice)) La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence....mais passer d une façon de les représenter à l autre est possible en un temps qui reste polynomial en la taille du codage. Exemple : on peut transformer une liste d adjacence en une matrice d adjacence en temps polynomial (et réciproquement).

Raison 2 : s affranchir de problèmes du codage Liste f n Algorithme Résultat Temps : T (taille(liste)) = T (n k ) La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence....mais passer d une façon de les représenter à l autre est possible en un temps qui reste polynomial en la taille du codage. Exemple : on peut transformer une liste d adjacence en une matrice d adjacence en temps polynomial (et réciproquement).

Raison 2 : s affranchir de problèmes du codage Graphe Algorithme Résultat Temps : Polynomial/Non polynomial La plupart des objets informatiques usuels peuvent se représenter de différentes façons... Exemple : un graphe peut se représenter par une matrice d adjacence. par une liste d adjacence....mais passer d une façon de les représenter à l autre est possible en un temps qui reste polynomial en la taille du codage. Exemple : on peut transformer une liste d adjacence en une matrice d adjacence en temps polynomial (et réciproquement). On peut donc parler d algorithme raisonnable sur ces objets sans avoir à rentrer dans les détails du codage ces objets.

Raison 2 : s affranchir de problèmes du codage Graphe Algorithme Résultat Temps : Polynomial/Non polynomial On peut donc parler d algorithme raisonnable sur ces objets sans avoir à rentrer dans les détails du codage ces objets.

12 Plan Retour sur l épisode précédent Une convention Pourquoi cette convention? Les classes P et NP La notion de réduction NP-complétude Théorème de Cook-Levin Comment pour prouver la NP-complétude Exemple de réduction Problème de la couverture de sommet Problème du cycle hamiltonien Problème de la somme de sous-ensembles

La classe P Rappel : Un problème de décision Π est un ensemble d instances I Π et un sous-ensemble Oui(Π) d instances positives. Exemple : Graphe eulerien Données : un graphe non-orienté G = (V, E). Question : G a-il un cycle eulerien? Définition La classe P est la classe des problèmes de décision qui admettent un algorithme de complexité polynomale.

La classe NP 14 Définition La classe NP est formée des problèmes de décision Π qui possèdent un vérificateur polynomial. Un vérificateur V est un algorithme qui prend une information en plus (certificat) pour vérifier qu une instance est positive. Exemple 1 : Graphe Hamiltonien Données : un graphe non-orienté G = (V, E). Question : G a-il un cycle hamiltonien? Le certificat correspond à une suite S de sommets V vérifie que S est un cycle et qu il transverse chaque sommet une unique fois. V fonctionne bien en temps polynomial.

Comparaison entre les deux classes P et NP. 15 Problèmes NP Problèmes P Par définition P NP.

Les classes P et NP La notion de réduction Plus précisément

17 Comment comparer les problèmes Soient A et B deux problèmes de décision. Une réduction de A vers B est une fonction f : I A I B calculable en temps polynomial telle que w Oui(A) ssi f (w) Oui(B). On note A B lorsque A se réduit à B. Instance du problème A f Instance du problème B Algorithme oui non

17 Comment comparer les problèmes Soient A et B deux problèmes de décision. Une réduction de A vers B est une fonction f : I A I B calculable en temps polynomial telle que w Oui(A) ssi f (w) Oui(B). On note A B lorsque A se réduit à B. intuitivement : A B signifie que A est plus facile que B. Instance du problème A f Instance du problème B Algorithme oui non

Principales propriétés Théorème est un préordre (= est reflexive, transitive) : 1. L L ; 2. L 1 L 2, L 2 L 3 impliquent L 1 L 3. Preuve: Intuitivement : un problème est aussi facile (et difficile) que lui-même il suffit de considérer la fonction identité pour f Intuitivement : la relation être plus facile que est transitive. L 1 L 2 via la réduction f = x OUI (I L1 ) ssi g(f (x)) OUI (I L2 ). L 2 L 3 via la réduction g La composée de deux fonctions calculable en temps polynomial est calculable. 18

Théorèmes 19 Théorème Si A B, et si A est dans P, alors B est dans P. Théorème Si A B, et si A n est pas dans P, alors B n est pas dans P. Instance du problème A f Instance du problème B Algorithme oui non

20 Plan Retour sur l épisode précédent Une convention Pourquoi cette convention? Les classes P et NP La notion de réduction NP-complétude Théorème de Cook-Levin Comment pour prouver la NP-complétude Exemple de réduction Problème de la couverture de sommet Problème du cycle hamiltonien Problème de la somme de sous-ensembles

21 Motivation On souhaite comprendre quels sont les problèmes les plus difficiles dans NP.

21 Motivation On souhaite comprendre quels sont les problèmes les plus difficiles dans NP. Un problème A est dit NP-difficile si tout autre problème B de NP est tel que B A. Intuitivement : il est plus difficile que tous les problèmes dans la classe.

21 Motivation On souhaite comprendre quels sont les problèmes les plus difficiles dans NP. Un problème A est dit NP-difficile si tout autre problème B de NP est tel que B A. Intuitivement : il est plus difficile que tous les problèmes dans la classe. Un problème A est dit NP-complet si en plus on a A NP. Autrement dit : A est NP-complet signifie que A est un élément maximum dans NP pour.

Plus précisément NP-complétude Théorème de Cook-Levin Comment pour prouver la NP-complétude

Théorème de Cook-Levin Théorème Cook-Levin Le problème SAT est NP-complet. Problèmes NP-complets Problèmes NP Problèmes P

Théorème de Cook-Levin Théorème Cook-Levin Le problème SAT est NP-complet. Problèmes NP-complets SAT Problèmes NP Problèmes P

Corollaire Preuve: Conséquense P = NP si et seulement si SAT P.

Conséquense Corollaire P = NP si et seulement si SAT P. Preuve: Si P = NP, alors puisque SAT est dans NP, SAT P.

Conséquense Corollaire P = NP si et seulement si SAT P. Preuve: Si P = NP, alors puisque SAT est dans NP, SAT P. Réciproquement, si SAT P, Puisque SAT est complet, pour tout problème B NP, B SAT Donc B P

Conséquense Corollaire P = NP si et seulement si SAT P. Preuve: Si P = NP, alors puisque SAT est dans NP, SAT P. Réciproquement, si SAT P, Puisque SAT est complet, pour tout problème B NP, B SAT Donc B P Remarque: généralisation à n importe problème NP-complet Soit A un problème NP-complet. P = NP si et seulement si A P. D où l intérêt de produire de nombreux problèmes NP-complets

A quoi sert de prouver la NP-complétude d un problème? 25 Arriver à prouver que P = NP...

A quoi sert de prouver la NP-complétude d un problème? 25 Arriver à prouver que P = NP... Si un problème A et un problème B sont NP-complets, alors A B et B A : Tous les problèmes NP-complets sont donc de même difficulté.

A quoi sert de prouver la NP-complétude d un problème? 25 Arriver à prouver que P = NP... Si un problème A et un problème B sont NP-complets, alors A B et B A : Tous les problèmes NP-complets sont donc de même difficulté. Surtout : Supposons que l on n arrive pas à trouver un algorithme polynomial pour un problème. Prouver sa NP-complétude permet de se convaincre que cela n est pas possible, sauf si P = NP.

Plus précisément NP-complétude Théorème de Cook-Levin Comment pour prouver la NP-complétude

Stratégie pour prouver la NP-complétude 27 Pour prouver la NP-complétude d un problème A, il suffit : 1. de prouver qu il admet un vérificateur polynomial ; 2. de prouver que B A pour un problème B NP-complet Pourquoi?

Stratégie pour prouver la NP-complétude 27 Pour prouver la NP-complétude d un problème A, il suffit : 1. de prouver qu il admet un vérificateur polynomial ; 2. de prouver que B A pour un problème B NP-complet Pourquoi? le point 1. permet de garantir que A NP,

Stratégie pour prouver la NP-complétude Pour prouver la NP-complétude d un problème A, il suffit : 1. de prouver qu il admet un vérificateur polynomial ; 2. de prouver que B A pour un problème B NP-complet Pourquoi? le point 1. permet de garantir que A NP, le point 2. permet que on a C A pour tout problème C NP on a C B comme B est NP-complet, et C A puisque B A.

28 Plan Retour sur l épisode précédent Une convention Pourquoi cette convention? Les classes P et NP La notion de réduction NP-complétude Théorème de Cook-Levin Comment pour prouver la NP-complétude Exemple de réduction Problème de la couverture de sommet Problème du cycle hamiltonien Problème de la somme de sous-ensembles

Ce qu on va prouver dans la suite 29 SAT 3-SAT 4-SAT NAE VC Cycle Hamiltonien Chaine Hamiltonienne Somme de sous-ensemble 3-SAT NAE Stable Clique Dominant 2-partition Le symbole désigne le relation est plus facile que

30 Plus précisément Exemple de réduction Problème de la couverture de sommet Problème du cycle hamiltonien Problème de la somme de sous-ensembles

Couverture sommet 31 Couverture de sommets (VC) Données : un graphe non-orienté G = (V, E) et un entier k. Question : G contient-il une couverture de sommets S de cardinalité au plus k? Les sommets en bleu font partie de la couverture sommet

Couverture sommet 31 Couverture de sommets (VC) Données : un graphe non-orienté G = (V, E) et un entier k. Question : G contient-il une couverture de sommets S de cardinalité au plus k? Théorème Le problème Couverture de sommets est NP-complet. Les sommets en bleu font partie de la couverture sommet

VC est dans NP Certificat : liste S de sommets. On peut vérifier en temps polynomial que 1. la cardinalité de S est inférieure ou égale à k ; 2. pour chaque arête (u, v) E, u ou v est dans S

3-SAT VC 3-SAT Données : un ensemble U de variables {u 1, u 2,..., u n } et une formule logique L = C 1 C l ayant des clauses de 3 littéraux Question : Existe-t-il une fonction t : U {0, 1} telle que t satisfait L? Nous allons transformer une instance (U, L) de 3-SAT en une instance (G, k) de VC en un temps polynomial.

3-SAT VC 3-SAT Données : un ensemble U de variables {u 1, u 2,..., u n } et une formule logique L = C 1 C l ayant des clauses de 3 littéraux Question : Existe-t-il une fonction t : U {0, 1} telle que t satisfait L? Nous allons transformer une instance (U, L) de 3-SAT en une instance (G, k) de VC en un temps polynomial. Pour chaque variable u de U, on associe deux sommets u et u, et une arête (u, u) dans G

3-SAT VC 33 3-SAT Données : un ensemble U de variables {u 1, u 2,..., u n } et une formule logique L = C 1 C l ayant des clauses de 3 littéraux Question : Existe-t-il une fonction t : U {0, 1} telle que t satisfait L? Nous allons transformer une instance (U, L) de 3-SAT en une instance (G, k) de VC en un temps polynomial. Pour chaque variable u de U, on associe deux sommets u et u, et une arête (u, u) dans G Pour chaque clause C i = (x 1 x 2 x 3 ),

3-SAT VC 33 3-SAT Données : un ensemble U de variables {u 1, u 2,..., u n } et une formule logique L = C 1 C l ayant des clauses de 3 littéraux Question : Existe-t-il une fonction t : U {0, 1} telle que t satisfait L? Nous allons transformer une instance (U, L) de 3-SAT en une instance (G, k) de VC en un temps polynomial. Pour chaque variable u de U, on associe deux sommets u et u, et une arête (u, u) dans G Pour chaque clause C i = (x 1 x 2 x 3 ), on associe un triangle dans G composé des sommets c1,i, c 2,i, c 3,i,

3-SAT VC 33 3-SAT Données : un ensemble U de variables {u 1, u 2,..., u n } et une formule logique L = C 1 C l ayant des clauses de 3 littéraux Question : Existe-t-il une fonction t : U {0, 1} telle que t satisfait L? Nous allons transformer une instance (U, L) de 3-SAT en une instance (G, k) de VC en un temps polynomial. Pour chaque variable u de U, on associe deux sommets u et u, et une arête (u, u) dans G Pour chaque clause C i = (x 1 x 2 x 3 ), on associe un triangle dans G composé des sommets c1,i, c 2,i, c 3,i, on relie le sommet c 1,i à l 1 par une arête

3-SAT VC 33 3-SAT Données : un ensemble U de variables {u 1, u 2,..., u n } et une formule logique L = C 1 C l ayant des clauses de 3 littéraux Question : Existe-t-il une fonction t : U {0, 1} telle que t satisfait L? Nous allons transformer une instance (U, L) de 3-SAT en une instance (G, k) de VC en un temps polynomial. Pour chaque variable u de U, on associe deux sommets u et u, et une arête (u, u) dans G Pour chaque clause C i = (x 1 x 2 x 3 ), on associe un triangle dans G composé des sommets c1,i, c 2,i, c 3,i, on relie le sommet c 1,i à l 1 par une arête k = U + 2l

34 Instance de 3-SAT : Exemple U = {u 1, u 2, u 3, u 4 } de variables C 1 = (u 1 u 2 u 3 ), C 2 = (u 1 u 3 u 4 ), C 3 = (u 2 u 3 u 4 ), Instance de Couverture sommet construite à partir de l instance précédente : u 1 u 1 u 2 u 2 u 3 u 3 u 4 u 4 c3,1 c3,2 c3,3 c1,1 c 2,1 c1,2 c 2,2 c1,3 c 2,3 Les sommets en bleu font partie de la couverture de sommets

34 On peut prouver : Exemple Il existe une couverture de sommets du graphe G d au plus k sommets il existe une fonction t : U {0, 1} qui satisfait toutes les clauses C 1,..., C l. u 1 u 1 u 2 u 2 u 3 u 3 u 4 u 4 c3,1 c3,2 c3,3 c1,1 c 2,1 c1,2 c 2,2 c1,3 c 2,3 Les sommets en bleu font partie de la couverture de sommets

35 Plus précisément Exemple de réduction Problème de la couverture de sommet Problème du cycle hamiltonien Problème de la somme de sous-ensembles

Problème du cycle hamiltonien Cycle Hamiltonien Données : un graphe non-orienté G. Question : G contient-il un cycle hamiltonien?

Problème du cycle hamiltonien 36 Cycle Hamiltonien Données : un graphe non-orienté G. Question : G contient-il un cycle hamiltonien? Théorème Le problème Cycle Hamiltonien est NP-complet Preuve: 1. Cycle Hamiltonien est dans NP. 2. VC Cycle Hamiltonien.

VC Cycle Hamiltonien. 37 On se donne un graphe G = (V, E) et un entier k (correspondant à une instance de VC). On veut construire un graphe G en temps polynomial tel que il existe une couverture de sommets du graphe G d au plus k sommets le graphe G a un cycle hamiltonien. Pour cela on associe un gadget pour représenter chaque arête de G dans G.

Le gadget pour une arête e Pour chaque arête e = (u, v) de G, on lui associe un gadget dans G correspondant à un sous-graphe composé de 12 sommets : (u,e,1) (u,e,2) (u,e,3) (u,e,4) (u,e,5) (u,e,6) (v,e,1) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6)

Le gadget pour une arête e Pour chaque arête e = (u, v) de G, on lui associe un gadget dans G correspondant à un sous-graphe composé de 12 sommets : (u,e,1) (u,e,2) (u,e,3) (u,e,4) (u,e,5) (u,e,6) (v,e,1) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6) Si G a un cycle hamiltonien, alors les seules façons de traverser du cycle dans ce gadget sont les suivantes : Les arêtes bleues correspondent aux arêtes appartenant aux cycles.

La transformation de G en G G a k sommets notés 1, 2,..., k. Pour chaque arête e de G, créer un sous-graphe étant une (u,e,1) (u,e,2) (u,e,3) (u,e,4) (u,e,5) (u,e,6) copie du gadget. (v,e,1) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6)

La transformation de G en G G a k sommets notés 1, 2,..., k. Pour chaque arête e de G, créer un sous-graphe étant une (u,e,1) (u,e,2) (u,e,3) (u,e,4) (u,e,5) (u,e,6) copie du gadget. Pour chaque sommet u de G, 1. Numéroter les arêtes incidentes à u : e 1, e 2,... e d (v,e,1) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6)

La transformation de G en G G a k sommets notés 1, 2,..., k. Pour chaque arête e de G, créer un sous-graphe étant une (u,e,1) (u,e,2) (u,e,3) (u,e,4) (u,e,5) (u,e,6) copie du gadget. (v,e,1) (v,e,2) (v,e,3) (v,e,4) (v,e,5) (v,e,6) Pour chaque sommet u de G, 1. Numéroter les arêtes incidentes à u : e 1, e 2,... e d 2. Créer un chemin entre tous les sommets de type (u, e i, ) de la façon suivante : 2.1 Relier (u, e i, 6) à (u, e i+1, 1) par une arête (pour i allant de 1 à d 1) 2.2 Ajouter une arête entre (u, e 1, 1) et j, et une autre arête (u, e d, 6) à j (pour j allant de 1 à k)

Un exemple 40 Une instance (G, k) de VC : x l instance obtenue par transformation : u w v 1 2

Un exemple 40 Une instance (G, k) de VC : x l instance obtenue par transformation : u w v On peut prouver que il existe une couverture de sommets du graphe G d au plus k sommets G a un cycle hamiltionien. 1 2

41 Plus précisément Exemple de réduction Problème de la couverture de sommet Problème du cycle hamiltonien Problème de la somme de sous-ensembles

Somme de sous-ensembles 42 SOMME DE SOUS-ENSEMBLE Données : un ensemble fini d entiers A = {a 1, a 2,..., a l } et un entier t N Question : Existe-t-il un sous-ensemble A A fonction t : U {0, 1} telle que a A a = t? Théorème Le problème SOMME DE SOUS-ENSEMBLE est NP-complet. Preuve: SOMME DE SOUS-ENSEMBLE est dans NP. Couverture sommet SOMME DE SOUS-ENSEMBLE

Couverture sommet SOMME DE SOUS-ENSEMBLE (1/2) 43 On se donne un graphe G = (V, E) et un entier k. Il nous faut construire un ensemble d entiers A à partir de G.

Couverture sommet SOMME DE SOUS-ENSEMBLE (1/2) On se donne un graphe G = (V, E) et un entier k. Il nous faut construire un ensemble d entiers A à partir de G.

Couverture sommet SOMME DE SOUS-ENSEMBLE (1/2) 43 On se donne un graphe G = (V, E) et un entier k. Il nous faut construire un ensemble d entiers A à partir de G. Pour cela, on numérote une numérotation des sommets et des arêtes entre 0 et m 1. pour chaque couple (arête,sommet), b ij = 1 si l arête i est incidente au sommet j, sinon b ij = 0

Couverture sommet SOMME DE SOUS-ENSEMBLE (1/2) 43 On se donne un graphe G = (V, E) et un entier k. Il nous faut construire un ensemble d entiers A à partir de G. Pour cela, on numérote une numérotation des sommets et des arêtes entre 0 et m 1. pour chaque couple (arête,sommet), b ij = 1 si l arête i est incidente au sommet j, sinon b ij = 0 On construit l ensemble A de la façon suivante : (b = 4) Pour chaque sommet j : a j = b m + m 1 i=0 b ijb i

Couverture sommet SOMME DE SOUS-ENSEMBLE (1/2) 43 On se donne un graphe G = (V, E) et un entier k. Il nous faut construire un ensemble d entiers A à partir de G. Pour cela, on numérote une numérotation des sommets et des arêtes entre 0 et m 1. pour chaque couple (arête,sommet), b ij = 1 si l arête i est incidente au sommet j, sinon b ij = 0 On construit l ensemble A de la façon suivante : (b = 4) Pour chaque sommet j : a j = b m + m 1 i=0 b ijb i On construit l entier t : t = }{{} kb m + m 1 i=0 }{{} 2b i cardinalite de la couverture combien de sommets couvrent i

Couverture sommet SOMME DE SOUS-ENSEMBLE (1/2) 43 On se donne un graphe G = (V, E) et un entier k. Il nous faut construire un ensemble d entiers A à partir de G. Pour cela, on numérote une numérotation des sommets et des arêtes entre 0 et m 1. pour chaque couple (arête,sommet), b ij = 1 si l arête i est incidente au sommet j, sinon b ij = 0 On construit l ensemble A de la façon suivante : (b = 4) Pour chaque sommet j : a j = b m + m 1 i=0 b ijb i Pour chaque arête j : est associé l entier b i On construit l entier t : t = }{{} kb m + m 1 i=0 }{{} 2b i cardinalite de la couverture combien de sommets couvrent i

Couverture sommet SOMME DE SOUS-ENSEMBLE (2/2) La réduction se fait en temps polynomial : pour chaque arête et pour chaque sommet, est construit un entier codé en base 4 en O( E ) opérations On peut prouver : il existe une couverture sommet du graphe G de cardinalité k il existe un sous-ensemble A A tel que a A a = t