IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Slides:



Advertisements
Présentations similaires
La recherche de chemin optimal
Advertisements

Dans cette partie Graphes Eulériens.
Algorithmes et structures de données avancées Cours 7
3. Variantes de l’algorithme
Algorithmes et structures de données avancés
Portée des variables VBA & Excel
Classification et prédiction
Fonctions & procédures
Regroupement (clustering)
GEF 435 Principes des systèmes d’exploitation
Cours d’Algorithmique
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Calcul propositionnel
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Chap 1 Grammaires et dérivations.
Automate asynchrone.
variable aléatoire Discrète
Apprendre à se servir d’un tableur
Conception et analyse des algorithmes
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Chapitre 3 La NP-complétude et le théorème de Cook-Levin
Algorithmique et Programmation
Preuves interactives: IP, AM, MA et isomorphisme de graphe
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Chapitre 2 Réductions: exemples et méthodes
Programmation linéaire
Optimisation linéaire
1.2 COMPOSANTES DES VECTEURS
Programmation logique Démonstrateur automatique
Gestion de Fichiers Arbres B.
Espaces vectoriels Montage préparé par : S André Ross
Les structure d’un programme :
Algorithme de Bellman-Ford
Chapitre 2 Réductions: exemples et méthodes
Coloration gap sommet identifiante de graphes
Contourner la NP-complétude
IFT Complexité et NP-complétude
IFT Chapitre 1 Classes de complexité fondamentales:
IFT Au delà de NP: hiérarchie polynomiale, EXP, NEXP.
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Complexité d’espace L, NL, PSPACE P-complétude et NC
IFT Théorème PCP: Aperçu et applications à linapproximabilité.
CSI3525: Concepts des Languages de Programmation
Eléments de théorie anthropologique
Algorithmes d ’approximation
Indécidabilité.
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Programmation linéaire en nombres entiers : les méthodes de troncature
IFT Complexité et NP-complétude Chapitre 0 Rappels.
Conception et analyse des algorithmes
Contourner la NP-complétude
Coupes efficaces pour la relaxation lagrangienne
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
D.E ZEGOUR Ecole Supérieure d’Informatique
Programmation linéaire en nombres entiers
STATISTIQUES – PROBABILITÉS
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Problème de double digestion
8PRO107 Éléments de programmation Les adresses et les pointeurs.
La pile de crêpes.
Chapitre 4 La représentation des nombres.
Algorithmique Boucles et Itérations
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cycle, Cocycle, Arbre et Arborescence
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Transcription de la présentation:

IFT Chapitre 3 La NP-complétude et le théorème de Cook-Levin

Définitions Soit A un problème de décision et C une classe de problèmes de décision. 1. A est C -ardu (ou C -difficile) sous transformations polynomiales si pour tout C C, on a C p A. 2. A est C -facile sous transformations polynomiales sil existe C C A p C. 3. A est C -équivalent sous transformations polynomiales sil est C -ardu et C -facile. 4. A est C -complet sous transformations polynomiales si A est C -ardu et A C. NOTE: On peut également définir ces notions en utilisant des réductions différentes (e.g. les réductions de Turing ou réductions logspace.)

Pourquoi ces notions sont-elles utiles? 1.Si A est C -ardu et quun des problèmes de C nadmet pas dalgorithme efficace, alors A nen admet pas non plus. 2.Si A est C -facile et que tous les problèmes de C ont des algorithmes efficaces, alors A en admet un aussi. 3.Si A est C -équivalent alors sa complexité représente celle de tous les problèmes de C. 4.Si A est C -complet, alors sa complexité représente la complexité maximale des problèmes dans C. Dernier détail: existe-t-il des problèmes ardus ou complets pour P, NP, RP, BPP, etc. ?

Théorème de Cook-Levin SAT est NP-complet. On a déjà vu que SAT NP. Mais le théorème montre que SAT est le plus dur de sa classe.

Démonstration (Cook-Levin) Soit M une machine de Turing non- déterministe dont le temps de calcul est n k et L = L(M) le langage reconnu par cette machine. Il faut montrer que L p SAT. Donc, trouver une fonction f calculable en temps polynomial et telle que x L f(x) SAT. En dautres mots, f associe à x une formule Booléenne satisfiable ssi M accepte x!

Une configuration représente létat de la machine M à un moment précis. Déterminé par 1.Létat du ruban. 2.Létat du contrôle fini. 3.La position de la tête de lecture. Peut être représenté par un ruban dune longueur correspondant au temps de M. Les cases contiennent le contenu du ruban de M. De plus, une case contient létat du contrôle fini de M, et est placé devant la case correspondans à la position de la tête de lecture. Nous allons suivre le calcul de M sur x en considérant les configurations successives de M. a1a1 a2a2 a3a3...qaiai a i+1...alal

b bb # # # # # # # # q0q0 x1x1 x2x2...xnxn nknk nknk config initiale 2 ème config config finale Tableau du calcul de M

Un tableau est dit acceptant pour x si la configuration initiale est celle de x et si un des états q du tableau est un état final acceptant. Note: Comme le calcul est non-déterministe, il existe plus dun tableau possible pour chaque entrée x. M accepte x si et seulement sil existe un tableau acceptant pour x. Nous voulons construire une formule qui est satisfiable ssi il existe un tableau acceptant pour x. Nous dénoterons b 1,..., b n k les bits aléatoires utilisés par M. Pour chaque choix des b i, il existe un tableau unique représentant lexécution de M avec ces bits.

Construction de Le tableau est formé de (n k ) 2 cellules cell[i,j] qui contiennent chacune soit un symbole de, soit un état de Q. Pour chaque s Q, on crée une variable c i,j,s avec lintention suivante: c i,j,s = 1 ssi cell[i,j] contient s. On crée les variables b 1,...,b n k représentant les bits aléatoires. Finalement, on construit = cell init étape accepte comme la conjonction de 4 formules construites séparément.

Construction de cell On veut que les variables c i,j,s représentent le contenu des différentes cellules du tableau. Pour rendre cela possible, cell sassure que 1.Pour chaque i,j, au moins une variable c_{i,j,s} est vraie. 2.Pour chaque i,j au plus une variable c_{i,j,s} est vraie.

Construction de init. On sintéresse au tableaux dont la configuration intiale est celle de x. Cest ce que garantit init. init = c 1,1,# c 1,2,q0 c 1,3,x 1 c 1,4,x 2... c 1,n+2, x n c 1,n+3,b... c 1,n k -1,b c 1,n k,# Important: Contrairement à cell, cette formule est différente pour deux entrées x différentes.

Construction de accepte accepte assure quun état acceptant existe dans le tableau.

Construction de étape. étape sassure que la (i+1) ème configuration est bien celle atteinte à partir de la ième lorsque le bit aléatoire est b i. On considère pour ça chaque bloc 2 3 du tableau. abc abc Exemples Bloc légal

aq1q1 c aaq2q2 Bloc légal si la transition de M en lisant c dans létat q 1 avec le bit aléatoire b i écrit un a et passe à létat q 2 et déplace la tête de lecture à droite. aq1q1 c q2q2 ab Bloc légal si la transition de M en lisant c dans létat q 1 avec le bit aléatoire b i écrit un a et passe à létat q 2 et déplace la tête de lecture à gauche.

abc bbc Bloc légal si la transition de M a réécrit le a en b. abc abq2q2 Bloc légal si la transition de M déplacé la tête de lecture à gauche.

Exemples de bloc illégaux abc aab Impossible, un seul caractère peut changer par étape. aq1q1 c bcq2q2 Impossible, seul le caractère à droite de q 1 peut avoir changé.

abc aac Impossible car b ne peut être changé si la tête de lecture nest pas sur cette position. q1q1 bc abq2q2 Impossible car la tête de lecture se déplace dune case au plus à chaque étape.

Le nombre total de blocs 2 3 est (| | + |Q|) 6, un nombre fini indépendant de n. Soit a 1,..., a 6 les 6 symboles composant une fenêtre. Le bloc commençant en (i,j) contient ces 6 symboles ssi c i,j,a 1 c i,j+1,a 2 c i,j+2,a 3 c i+1,j,a 4 c i+1,j+1,a 5 c i+1,j+2,a 6 Donc le bloc est légal et b i = 1 ssi c i,j,a1 c i,j+1,a2 c i,j+2,a3 c i+1,j,a4 c i+1,j+1,a5 c i+1,j+2,a6 b i Il ny a que deux types de blocs légaux. Ceux qui sont légaux lorsque b i =1 et ceux légaux avec b i = 0. c i,j,a1 c i,j+1,a2 c i,j+2,a3 c i+1,j,a4 c i+1,j+1,a5 c i+1,j+2,a6 ̅b i

[Le bloc (i,j) est légal] À montrer: Si la première rangée du tableau est la configuration initiale sur x et si tous les blocs sont légaux alors chaque rangée du tableau est la configuration résultant de la précédente lorsque le bit aléatoire est b i.

Nous avons maintenant une fonction f qui associe à x la formule = cell init étape accepte. 1.Cette fonction est calculable en temps polynomial! | | = O(n 2k ) + O(n k ) + O(n 2k ) + O(n 2k ) 2.Si x L alors M accepte x. Soient b 1,..., b n k les bits aléatoires qui amènent M à acepter x. Par notre construction, on peut mettre en correspondance les valeurs des variables c i,j,s avec le contenu du tableau correspondant à ce choix des b i avec la garantie que cell, init et étape sont satisfaites. De plus, comme M accepte x, il existe un état acceptant dans le tableau donc accepte est aussi satisfaite. Donc SAT. 3.Si SAT, alors il existe des valeurs des c i,j,s et b i qui satisfont. Par construction, ces valeurs correspondent à un tableau du calcul sur x avec les bits aléatoires b i. Puisque accepte est satisfaite, ce tableau est acceptant pour x donc x L.

Observations utiles Théorème: Sil existe un problème A P avec A NP-complet alors P = NP. Démonstration: On a P NP. Pour montrer NP P, prenons un B NP. On a B p A car A est NP-complet. Il existe f calculable en temps polynomial avec x B f(x) A. On peut donc tester si x B en calculant f(x) puis en utilisant un algorithme de temps polynomial pour A. Donc B P.

Observations utiles Théorème: Si A NP et sil existe un B NP-complet tel que B p A alors A est NP-complet. Démonstration: On sait que A NP, il reste à montrer que pour tout C NP on a C p A. On sait que C p B et B p A donc C p A.

SAT p 3-SAT CLQ p IS p VCDHC p HC TSP 2,, sym TSP NP-complet!

Démontrer quun problème est NP- complet Pour démontrer que A est NP-complet il faut 1. Démontrer que A est dans NP. 2. Choisir judicieusement un problème NP- complet B et montrer que B p A.

Problèmes complets pour dautres classes? Soit L un langage de P tel quil existe au moins un x 1 L et un x 0 L. Alors L est P-complet sous les transformations polynomiales! Pour une notion intéressante de P- complétude on utilisera des transformations plus restrictives.

Problèmes complets pour dautres classes? On croit généralement que les classes RP, ZPP, BPP nont pas de problème complet.

Quindique la NP-difficulté? Si A est NP-ardu alors 1. Il ny a pas dalgorithme connu pour A dont le temps de calcul est o(c n ) pour tout c > La majorité de la communauté mathématique pense que A nadmet aucun algorithme de temps polynomial.

P = NP? Pourquoi croit on que P NP? 1. Parce que si cétait le cas, on aurait trouvé un algorithme de temps polynomial pour un problème NP-complet. 2. Parce quintuitivement, trouver une solution est significativement plus dur que den vérifier la validité. 3. Parce quon veut y croire... (Trois mauvaises raisons...)

Quels problèmes sont NP-complets? En pratique, les variantes de décision des problèmes doptimisation combinatoire sont soit dans P soit NP-complets. Liste sans fin (et grandissante): problèmes de satisfiabilité problèmes de commis-voyageur problèmes de sac à dos problèmes de (ré-)partition et de planification problèmes de clique et de coloriage. problèmes de formation déquipe

Liste de Garey & Johnson: Théorie des graphes (65 problèmes) 3-COL, domination, cycle Hamiltonien, etc. Conception de réseau (51) TSP, Max-cut, plus long chemin, etc. Ensembles et partitions (21) Formation déquipes, partition Logique (19), Planification (22), archivage (36), programmation mathématique (13), algèbre (18), jeux et puzzles (15), automates et langages (21), optimisation de code (20), autres (19) Problèmes quon narrive à placer ni dans P ni NP-complets (12). Plus que 3!

Problèmes de commis-voyageur. Problèmes concernant la longueur des chemins et cycles dun graphe (possiblement pondéré.) On a déjà montré que HC, DHC, TSP, TSP 2,,sym sont NP-complets.

Problème du chemin le plus long (LP, DLP) Entrée: Graphe (dirigé) G = (V,E), entier k. Question: Existe-t-il dans G un chemin simple de longueur k? Clairement dans NP: on peut non- déterministement choisir k sommets du graphe et vérifier quils forment un chemin simple.

Théorème: DLP et LP sont NP-complets. Démonstration: On va montrer 3-SAT p DLP. Réutilisons la transformation de 3-SAT à DHC.

3-SAT p DLP. Problème: comment refléter avec des chemins les 2 n valeurs possibles des x i ? x 1v x 1f x 2v x 2f x nf … x1x1 x2x2 xnxn x nv Ce graphe contient 2 n chemins passant par tous les sommets et quon va assimiler aux 2 n valeurs possibles des x i. Lorsque x i est vrai on considère le chemin qui passe par x iv dabord et x if ensuite. Lorsque x i est faux on considère le chemin qui passe par x if dabord et x iv ensuite.

Pour représenter les clauses C j, on rajoute un sommet c j dans le graphe. De plus, chaque fois que x i ou i apparaît dans une clause, on rajoute deux point intermédiaires entre x iv et x if. xixi x if x iv c1c1 c7c7 c9c9 Si x i apparaît dans la clause C j on construit un détour à travers c j qui ne peut être emprunté que lorsque quon part de x iv vers x if. Si i apparaît dans la clause C j, on construit un détour à travers c j qui ne peut être emprunté que lorsque lon part de x if vers x iv. Le graphe obtenu contient un chemin simple qui passe à travers tous les sommets si et seulement si la formule 3-SAT est satisfiable.

Notes: Pour montrer DLP p LP, on procède comme pour montrer DHC p HC. La transformation nous permet de montrer que le problème est NP-complet même si on spécifie les points entre lesquels on cherche le chemin le plus long. Le problème du chemin le plus court est résoluble en temps polynomial (algorithme de Dijkstra).

Arbre de recouvrement de degré borné (BMST) Entrée: graphe pondéré G = (V,E), borne de degré k, valeur cible C. Question: Existe-t-il un arbre de recouvrement de G avec degré k et coût C? Clairement dans NP. LP est le cas particulier de BMST où k = 2, où les poids sont 1 ou 2 et C = |V|-1. BMST est NP-complet.

Problèmes de sac à dos Dans sa forme la plus générale (Knapsack) Entrée: Un ensemble dobjets avec un poids p i et une valeur v i + une capacité de sac à dos C + un objectif de valeur V. Question: Peut-on choisir un ensemble dobjets dont le poids total est au plus C et la valeur totale au moins V.

Somme de sous-ensemble (Subset- sum) Cas particulier du sac à dos où p i = v i. Entrée: Ensemble dentiers positifs R = {p 1,..., p n }, valeur cible S. Question: existe-t-il un sous ensemble R R tel que p i R p i = S.

Théorème: Subset-sum est NP-complet. Démonstration: On montre 3-SAT p Subset-sum. Les deux problèmes sont de nature très différentes la transformation sera compliquée.

Idées de départ: Chaque variable et chaque clause de linstance de 3-SAT peut-être vraie ou fausse, chaque élément de R fait ou ne fait pas partie de R. Exploiter cette correspondance. Si on choisit les nombres de R avec des décimales qui sont presque toutes 0, leffet dun nombre sur la somme est localisé.

Supposons que linstance de 3-SAT contient n variables x 1,..., x n et m clauses C 1,..., C m. On construit des entiers avec m + n décimales: R = {a 1,..., a n, b 1,... b n, d 1,..., d m, e 1,...,e m }. Les m premières décimales vont correspondre aux clauses et les n suivantes aux variables.

On veut faire correspondre le choix x i = 1 au choix de a i dans R et le choix x i = 0 choix de b i dans R. Pour y arriver les n dernières décimales de a i et de b i sont 0, sauf celle correspondant à x i qui est 1. x1x1 x2x2...xnxn a1a b1b a2a b2b anan 0001 bnbn 0001 m

Si x i = 1 toutes les clauses contenant x i sont vraies. Si x i = 0, toutes les clauses contenant i sont vraies. Pour le refléter dans linstance de subset-sum, la j ème décimale de a i est 1 si x i apparaît dans C j et 0 sinon. On choisit la j ème décimale de b i si i apparaît dans C j et 0 sinon. C1C1 C2C2... CmCm a1a b1b a2a b2b anan bnbn Exemple: C 1 = x 1 2 x n Le litéral x 1 apparaît dans les clauses C 1 et C m. Le litéral 1 dans C 2 seulement

Chaque choix de valeur à x i correspond au choix de a i ou de b i. Si on fait ce choix pour chaque i, la somme obtenue est un entier dont les n dernières décimales sont 1. La décimale correspondant à C j est alors 0,1,2 ou 3 selon le nombre de litéraux vrais que contient C j. C1C1 C2C2... CmCm a1a b1b a2a b2b anan bnbn 010 0

Les d j et e j nous permettent deffacer la distinction entre les clauses satisfaites grâce à 1,2 ou 3 litéraux dans la clause C j. On choisit 0 pour toutes les décimales de toutes les décimales de d j et e j sauf la j-ème qui est 1. C1C1 C2C2... CmCm d1d e1e d2d e2e dmdm emem

Finalement, on choisit 3 pour les m premières décimales de S et 1 pour les n dernières. C1C1 C2C2... CmCm x1x1 x2x2 xnxn S

Si la formule est satisfiable alors on va trouver R R dont la somme est S. Si la formule est satisfiable et que x i = 1 dans lassignation satisfaisante, on prend a i dans R et b i sinon. Si la clause C j est satisfaite par 1 litéral, on choisit d j et e j. Si elle est satisfaite par 2 litéraux, on ne prend que d j. Si elle est satisfaite par les 3 litéraux on ne prend ni d j ni e j. On peut voir facilement que la somme de R est bien S.

Si un R avec somme S existe, alors la formule était satisfiable. R doit contenir soit a i soit b i car les n dernières décimales de S sont 1. Choisissons x i = 1 ssi a i R. Les m premières décimales de S sont 3. Donc pour chaque j m, il y a au moins un des a i ou des b i dans R qui contient un 1 dans la colonne j. Donc la clause C j est satisfaite.

Corollaire: Knapsack est NP-complet. Démonstration: 1. Clairement dans NP. 2. Subset-sum P Knapsack Car Subset-sum est un cas particulier de Knapsack.

Problème de partition (PART) Entrée: R = {p 1,..., p n } N. Question: Peut on séparer R en R 1, R 2 tel que p i R 1 p i = p i R 2 p i ? Cas particulier de Subset-sum où la valeur cible est S = ( p i )/2

Théorème: PART est NP-complet. Démonstration: Suffit de montrer Subset-sum p PART. Soit (p 1,..., p n,S) une instance de Subset-sum. Soit S* = p i. On peut supposer que 0 p i S S*. Construisons linstance de PART (p 1,..., p n, 2S* - S, S* + S). Pour former une partition, il faut donc sélectionner des éléments dont la somme est 2S*. Cela est possible si et seulement si il y a un ensemble de p i dont la somme est S.

Problèmes de répartition et de planification Remplissage de seaux (Bin-packing BP) Entrée: poids p 1,..., p n de n objets, k seaux de capacité c. Question: Peut-on répartir les n objets dans les k seaux tels que la somme des poids de chaque seau nexcède pas c?

Théorème: BP est NP-complet. Démonstration: 1. Clairement dans NP: choix non- déterministe de la répartition et vérification. 2. PART P BP PART est le cas particulier de BP à deux seaux et de capacité ( p i )/2.

Planification de tâches (SWI) Entrée: Un ensemble A de tâches. Pour chaque a A, un temps darrivée r(a), un temps de calcul l(a) et une échéance d(a). On suppose r(a), l(a), d(a) N +. Question: Peut-on ordonner lexécution des tâches séquentiellement sur un processeur de façon à ce que lexécution de chaque tâche débute après r(a) et soit terminée avant d(a)? À noter: les tâches entreprises ne peuvent être interrompues avant leur fin.

Théorème: SWI est NP-complet. Démonstration: 1. Clairement dans NP. 2. PART P SWI Linstance (p 1,..., p n ) de PART se transforme en n+1 tâches à faire en temps S+1 où S = p i. On choisit l(a i ) = p i, r(a i ) = 0 et d(a i ) = S+1. De plus on définit r(a n+1 ) = S/2, l(a n+1 ) = 1 et d(a n+1 ) = S/2 +1. Clairement la tâche a n+1 doit être exécuté dans lintervalle [S/2, S/2 + 1] ce qui nest possible que si les autres tâches peuvent être réparties en deux groupes avec somme de temps S/2.

Problèmes de clique et de coloriage de graphe On a déjà vu que CLIQUE, IS, et VC sont NP-complets. On peut en déduire que le problème du sous-graphe isomorphe (SI) et du plus grand sous-graphe commun sont NP- complets (Wegener + devoir 1).

Théorème: 3-COL est NP-complet. Démonstration: 3-SAT P 3-COL Réduction à priori difficile. Comment représenter la valeur de variables booléennes à travers un coloriage de graphe?

Première étape très utile: on crée un triangle dans le graphe. Ces trois sommets doivent forcément avoir les trois couleurs. Lorsque par la suite on reliera le sommet bleu à un nouveau sommet du graphe, on pourra être certain que sa couleur ne peut être que rouge ou vert! En associant vert à vrai et rouge à faux, on peut représenter des valeurs booléennes dans le graphe.

Pour chaque litéral x i, i de linstance de 3-SAT, on crée les sommets x i et i, reliés entre eux et reliés au sommet bleu. Quoiquil arrive, ces sommets ne pourront donc être coloriés quen rouge et vert et x i et i devront avoir des couleurs différentes. On veut associer vert à vrai et rouge à faux. x1x1 1 x2x2 2 xnxn n

Supposons que C j = l 1 l 2 l 3. Cette clause est satisfaite si et seulement si au moins un l i est vrai. Donc si et seulement si un des sommets l i est colorié en vert. Pour refléter cette correspondance, on construit 6 sommets c j1,..., c j6 reliés à l 1, l 2, l 3 et à nos 3 sommets de départ. l1l1 l2l2 l3l3 c j1 c j2 c j3 c j4 c j6 c j5

On veut montrer que ce gadget est 3- coloriable ssi un des l i est vert. c j6 est forcément vert. c j4 et c j5 sont forcément rouge et bleu. Si c j5 est rouge alors l 3 est vert mais si l 3 est rouge alors c j5 est bleu. Les sommets c j1, c j2, c j3 ont des couleurs toutes différentes. l1l1 l2l2 l3l3 c j1 c j2 c j3 c j4 c j6 c j5

Supposons que l 1 est vert. On peut donc colorier c j 1 en rouge, c j 2 en vert et c j3 en vert. (peut importe la couleur de l 2 ) On peut donc colorier c j4 en rouge et c j5 en bleu. Le coloriage est valide peut importe la couleur de l 3. l1l1 l2l2 l3l3 c j1 c j2 c j3 c j4 c j6 c j5

Supposons que l 3 est vert mais que l 1 et l 2 sont rouges. On doit colorier c j1 et c j2 en bleu et vert et donc c j3 en rouge. On peut colorier c j5 en rouge et c j4 en bleu pour compléter le coloriage. l1l1 l2l2 l3l3 c j1 c j2 c j3 c j4 c j6 c j5

Il reste à montrer que si l 1, l 2 et l 3 sont tous rouges, ce sous-graphe nest pas 3-coloriable. On doit colorier c j5 en bleu et c j4 en rouge. Les trois sommets c j1, c j2 et c j3 doivent avoir des couleurs différentes mais aucun ne peut être rouge! l1l1 l2l2 l3l3 c j1 c j2 c j3 c j4 c j6 c j5

On construit en temps polynomial un graphe avec 2n + 6m + 3 sommets. Si la formule de départ est satisfaite, alors on peut utiliser les valeurs des x i satisfiant la formule pour colorier les l i en rouge et vert. Comme chaque clause contient un litéral vrai, chaque composante de clause dans le graphe contient un l i colorié vert et est coloriable. Sil existe un 3-coloriage du graphe, alors les l i sont verts ou rouges et lon peut assigner des valeurs correspondantes aux x i. Comme les composantes de clauses sont toutes 3-coloriables, chacune contient un l i qui est vert. Donc la formule est satisfaite.

Problèmes de formation déquipes Mariage tri-dimensionel (3DM) Entrée: Trois ensembles disjoints de personnes K 1, K 2, K 3 (compétences différentes) avec |K 1 | = |K 2 | = |K 3 | = n. Ensemble déquipes possibles T K 1 K 2 K 3. Question: Peut-on trouver dans T n équipes de 3 personnes telles que chaque personne soit assigné à une et une seule équipe?

Théorème: 3-DM est NP-complet. Démonstration: 3-SAT P 3-DM Réduction à priori difficile. Comment représenter la valeur de variables booléennes à travers les équipes et les compétences?

Soient x 1,..., x n les variables et C 1,..., C m les clauses de la 3-SAT formule. On peut supposer que chaque clause contient exactement 3 litéraux et que la formule contient 3m litéraux en tout. (en comptant les répétitions) Notre seule porte de sortie: sassurer de mettre en correspondance les choix de valeurs aux x i avec le choix de nos équipes On forme 3 groupes dexperts de taille 6m.

Groupe dexperts K 1 : répartis en n sous-groupes correspondant aux n variables. Le sous-groupe i contient 2z i experts, où z i est le nombre doccurrences de x i ou i dans une clause. Pour suivre la construction, on dénote ces experts x i l et i l pour 1 l z i. On veut que le choix de x i = 0 ou de x i = 1 se traduise par un choix déquipes particulier. Pour y arriver: on crée des experts dans les groupe K 2 et K 3 tels que leur répartition dans une équipe nous forcent 1. soit à assigner tous les x i l à des équipes en laissant tous les i l sans équipe; 2. soit à assigner tous les i l en laissant tous les x i l. sans équipe.

On crée dans K 2 les 3m personnes a i l où 1 i n et 1 l z i. On crée dans K 3 les 3m personnes b i l où 1 i n et 1 l z i. À noter: il y a z i experts a i l et z i experts b i l mais 2z i experts x i l et i l. Chaque a i l et b i l ne fait partie que de deux équipes et cest cette rigidité qui va nous permettre dencoder les valeurs booléennes.

Supposons z i = 4. On forme 8 équipes à partir de x i 1,..., x i 4, i 1,... i 4, a i 1,..., a i 4, b i 1,..., b i 4. Pour placer les a et b dans des équipes on a seulement deux choix. Lun deux laisse tous les x i l sans équipe, lautre tous les i l. xi2xi2 i 2 ai2ai2 bi2bi2 xi1xi1 i 1 ai1ai1 bi1bi1 xi4xi4 i 4 ai4ai4 bi4bi4 xi3xi3 i 3 ai3ai3 bi3bi3

Il faut maintenant représenter les clauses C j. On place un expert p j 2 dans le groupe K 2 et un expert p j 3 dans le groupe K 3. On force p j 2 et p j 3 à faire partie dune même équipe complétée par un expert de K 1. Pour refléter limpact des valeurs booléennes sur la satisfaction des C j, on choisit donc (x i l, p j 2, p j 3 ) T, ssi x i apparaît dans C j et ( i l, p j 2, p j 3 ) T ssi i apparaît dans C j.

Il faut maintenant représenter les clauses C j. On place un expert p j 2 dans le groupe K 2 et un expert p j 3 dans le groupe K 3. p j 2 et p j 3 doivent former une équipe complétée par un expert de K 1. Pour relier les valeurs booléennes aux clauses, on choisit donc (x i l, p j 2, p j 3 ) T, ssi x i apparaît dans C j et ( i l, p j 2, p j 3 ) T ssi i apparaît dans C j.

Notre intention est donc: Choix de valeurs booléennes choix des équipes pour les a i l et b i l. Satisfaction des clauses possibilité dassigner les p 2 j, p 3 j à une équipe. Lorsque ces équipes sont formées, les experts de K 1 correspondants aux litéraux faux sont tous assignés à une équipe pour chaque clause, un litéral restant dans K 1 est assigné à une équipe. Il reste donc 2m experts de K 1 à placer dans des équipes.

On ajoute à K 2 les experts q j 2 pour 1 j 2m et à K 3 les experts q j 2 pour 1 j 2m. Pour tous les experts x i l, i l de K 1, on ajoute comme équipes possibles (x i l, q j 2, q j 3 ) et ( i l, q j 2, q j 3 ). La transformation est maintenant complète. Elle se fait clairement en temps polynomial.

Supposons que x 1,..., x n {0,1} satisfont la formule. Si x i = 0, on place tous les experts a i l, b i l dans les équipes (x i l,a i l,b i l ), laissant les i l sans équipe pour linstant. Si x i = 1, on place tous les experts a i l, b i l dans les équipes ( i l,a i l+1,b i l ), laissant les i l sans équipe pour linstant. Si x i est vrai, alors les experts x i l de K 1 nont pas encore déquipe. Si x i apparaît dans C j, alors on peut donc former une équipe (x i l,p j 2,p j 3 ). Comme chaque C j contient un litéral vrai on peut donc assigner des équipes à tous les p j 2,p j 3. Dans les groupes K 2, K 3, il ne reste que des experts q 2, q 3 qui forment les dernières équipes. Donc, il existe un mariage tri-dimensionnel!

Supposons quil existe un mariage. Pour chaque i, considérons les a i l, b i l. Sils forment des équipes contenant tous les x i l, alors on choisit x i = 0. Sinon, on choisit x i = 1. On a assigné des valeurs booléennes aux x i et on veut montrer quelles satisfont. Pour chaque j, les points p 2 j et p 3 j font partie dune équipe qui est complétée par un x i l ou un i l. Si cest par un x i l, alors x i apparaît dans C j et x i = 1. Même raisonnement pour lautre cas. Donc chaque C j contient un litéral vrai et est satisfiable.

Couverture densemble (Set-cover, SC) Entrée: Un ensemble S, des sous ensembles A 1,..., A n de S, un entier k. Question: S est-il lunion de k A i ? On peut voir 3DM comme un cas particulier de SC où S = K 1 K 2 K 3, où les équipes possibles sont des sous-ensembles de S avec 3 éléments et où lon cherche une couverture de S avec n = |K i | équipes. Donc SC est NP-complet.

SAT p 3-SAT CLQ p IS p VC DHC p HC TSP 2,, sym TSP NP-complet! SubIso +grand sub commun DS 3-COL Knapsack Subset-sum PART BP SWI 3DM SC 1.Donc tous NP-complets! 2.Donc il existe des transformations polynomiales entre tous ces problèmes! DLP p LP BMST

Où est la frontière? Des problèmes apparemment très semblables peuvent être de complexité très différente. La différence entre des problèmes dans P et des problèmes NP-complets est souvent subtile.

Dans PNP-complets 2-SAT k-SAT pour k 3 2-COL k-COL, k 3 Mariage Mariage tri- dimensionnel Plus court chemin entre deux points dun graphe Plus long chemin entre deux points dun graphe Faire les séries avec répartition des points (0,1,2) Faire les séries avec répartition des points (0,1,3)

On a vu que VC est NP-complet mais le problème de couverture par arêtes est dans P. Entrée: graphe G = (V,E), entier k. Question: Existe-t-il une couverture par arêtes E E avec |E| k? (E est une couverture par arêtes si pour tout v V, il existe u V avec (u,v) E.)

Réduction transitive ( P) Entrée: graphe dirigé G = (V,E), entier k. Question: Existe-t-il E V V avec |E| k, tel quil existe un chemin de u vers v dans G si et seulement si il existe un chemin de u vers v dans G = (V,E).

Plus petit sous-graphe équivalent (NP- complet) Entrée: graphe dirigé G = (V,E), entier k. Question: Existe-t-il E E avec |E| k, tel quil existe un chemin de u vers v dans G si et seulement si il existe un chemin de u vers v dans G = (V,E).

2-SAT P... mais Max-2-SAT est NP- complet! Entrée: Formule 2-CNF avec m clauses et entier k m. Question: Peut-on assigner des valeurs aux x i qui satisfont au moins k clauses?

SAT et le théorème de Schaefer Soit = {R 1,..., R k } un ensemble de relations booléennes avec R i {0,1} j i. Problème de satisfiabilité généralisée ( ): Entrée: variables booléennes x 1,..., x n et liste de contraintes C 1,..., C m. Chaque contrainte est de la forme C i = (x i 1,..., x i s ) R j. Question: Peut-on assigner des valeurs aux x i telles que toutes les contraintes soient satisfaites?

Exemples: Le problème 3-SAT correspond à = {R 0,R 1,R 2,R 3 } avec 1. (x,y,z) R 0 x y z; 2. (x,y,z) R 1 y z; 3. (x,y,z) R 2 z; 4. (x,y,z) R 3 ̅z.

Exemples: Le problème 2-SAT correspond à = {R 0,R 1,R 2 } avec 1. (x,y) R 0 x y; 2. (x,y) R 1 y; 3. (x,y) R 2.

Théorème [Schaefer (78)] Pour tout le problème Gen-SAT( ) est soit dans P soit NP-complet. Il nexiste que six cas qui sont dans P SAT 2. Horn-SAT 3. co-Horn-SAT 4. 0-valide-SAT 5. 1-valide-SAT 6. Linéaire-SAT

Horn-SAT: cas particulier de SAT où chaque clause a au plus un litéral positif. i 1 i 2... i k y Intuitivement: si presque toutes les occurrences de variables sont négatives, alors choisir tous les x i = 0 semble être un bon point de départ.

Algorithme polynomial pour Horn-SAT Entrée: Instance de Horn-SAT 1. Initialiser tous les x i à Si une clause est insatisfaite cest quelle est de la forme C = x j. Donc choisir x j = Enlever les occurrences de j. Enlever les clauses où x j apparaît. 4. Répéter 2 et 3 jusquà ce que la formule soit satisfaite où quune clause devienne vide.

Les autres cas de Schaefer 1. co-Horn-SAT: dual de Horn-SAT 2. 0-valide: cas où la solution i x i = 0 satisfait toutes les contraintes valide: cas où la solution i x i = 1 satisfait toutes les contraintes. 4. Linéaire-SAT: cas où toutes les relations sont équivalents à des conjonctions de ou-exclusif de litéraux, e.g. ( 1 x 2 x 3 ) (x 3 x 5 ). Algorithme utilisant lalgèbre linéaire.