E N D
Complexit´ e II Les Classes de Complexit´ e P et NP Les quatre probl` emes pr´ esent´ es en introduction ` a la section 1 sont de natures diverses. Leurs r´ esolutions semblent plus on moins ”´ evidentes” ou ”rapides”. Cette notion de difficult´ e de r´ esolution a tr` es tˆ ot ´ eveill´ e l’int´ erˆ et des chercheurs. La notion de complexit´ e a ´ et´ e introduite pour qualifier la nature plus ou moins ardue des probl` emes qui admettent une solution sous forme de proc´ edure effec- tive. 1 La classe de complexit´ e qui nous int´ eresse a priori, P, correspond aux probl` emes pouvant ˆ etre r´ esolus en temps polynomial. Si tous les algorithmes po- lynomiaux ne sont pas efficaces (un algorithme de complexit´ e n100est inutilisable en pratique), un algorithme exponentiel, de complexit´ e 2n, est clairement inef- ficace. Malheureusement une tr` es large proportion de probl` emes “int´ eressants” ont peu d’espoir d’admettre un algorithme de r´ esolution polynomial. La plupart de ces probl` emes appartiennnent ` a une classe de complexit´ e plus vaste, NP. La diff´ erence entre P et NP est que pour un probl` eme de P il est possible de trouver en temps polynomial la r´ eponse ` a toute instance, tandis que pour un probl` eme de NP il est possible de v´ erifier en temps polynomial qu’une r´ eponse est correcte. La th´ eorie de la complexit´ e se d´ efinit sur les probl` emes de d´ ecision, et cherche ` a d´ eterminer le plus petit temps d’ex´ ecution n´ ecessaire ` a un algorithme pour d´ ecider d’un probl` eme. La mod´ elisation adopt´ ee au chapitre pr´ ec´ edent de la notion de r´ esolution de probl` eme et de l’ex´ ecution d’un algorithme conduit ` a reformuler formellement notre objet d’´ etude comme la d´ etermination du plus petit temps de calcul n´ ecessaire ` a une machine de T¨ uring pour d´ ecider un lan- gage. Rappelons que le passage des probl` emes de d´ ecision ` a la reconnaissance de langages se fait par le choix d’un codage naturel des instances. La complexit´ e d’un probl` eme ne sera ainsi d´ efinie qu’` a un polynome pr` es, d´ ependant du choix du codage naturel. Les complexit´ es en temps et en espace (m´ emoire) sont ainsi d´ efinies par rapport au mod` ele de la machine de T¨ uring comme le nombre de transitions et le nombre de cases m´ emoires utilis´ ees. Nous exprimons la complexit´ e en fonction de la taille de l’instance ` a traiter, c’est-` a-dire en fonction de la taille |w| du mot en entr´ ee. Nous dirons ainsi que la machine de T¨ uring d´ eterministe T d´ ecide un langage L en temps f(n) si pour tout mot d’entr´ ee w sur Σ∗, la machine T accepte (ssi w ∈ L) ou rejete (ssi w / ∈ L) apr` es au plus f(|w|) transitions. 24
Il est important de remarquer que la complexit´ e d’un algorithme, et donc d’un probl` eme, est d´ efinie comme une complexit´ e dans le pire des cas, c’est-` a-dire par rapport ` a l’entr´ ee la plus d´ efavorable pour l’algorithme. On peut alors d´ efinir la classe TIME(f(n)) comme l’ensemble des langages pouvant ˆ etre d´ ecid´ es en temps O(f(n)) par une machine de T¨ uring d´ eterministe. D´ efinition 6 La classe P est l’ensemble des langages L pouvant ˆ etre d´ ecid´ es par une machine de T¨ uring d´ eterministe polynomiale. [ k TIME(nk) P = On dira par extension qu’un probl` eme de d´ ecision Π appartient ` a P si pour une fonction d’encodage naturelle, le langage LΠ∈ P. Par exemple, le probl` eme Reachability d´ ecidant de l’existence d’un chemin entre 2 sommets d’un graphe est polynomial (en fait lin´ eaire). La classe NP est d´ efinie par rapport aux machines de T¨ uring non d´ eterministes (NTM). Rappelons qu’une NTM accepte un mot simplement si il existe une ex´ ecution acceptant ce mot. Ainsi une NTM T reconnait le langage L en temps f(n) si : – Pour tout mot w ∈ L, il existe une ex´ ecution de T acceptant w en au plus f(|w|) transitions. – Pour tout mot w / ∈ L, aucune ex´ ecution de T (quelle que soit sa longueur) ne conduit ` a un ´ etat accepteur. w ∈ L f (|w|) Acc´ ept´ e Rejet´ e Reconnaˆ ıtre un langage en temps polynomial n’implique pas ` a premi` ere vue que l’on puisse le d´ ecider en temps polynomial. NP est ainsi l’alter ego de P, marquant la diff´ erence reconnaˆ ıtre versus d´ ecider. Nous d´ efinissons la classe NTIME(f(n)) comme l’ensemble des langages pouvant ˆ etre reconnus en temps O(f(n)) par une machine de T¨ uring non d´ eterministe. D´ efinition 7 La classe NP est l’ensemble des langages L pouvant ˆ etre reconnus 25
par une machine de T¨ uring non d´ eterministe polynomiale. [ k NTIME(nk) NP = Il est clair que nous avons l’inclusion P ⊆ NP. En effet, la machine de T¨ uring d´ eterministe est un cas particulier de machine de T¨ uring non d´ eterministe. Le probl` eme ouvert le plus c´ el` ebre de la complexit´ e est de savoir si P = NP ou si cette inclusion est stricte, P 6= NP. Attention, soulignons que la complexit´ e d’un probl` eme est d´ efinie par rapport ` a un codage naturel de ses instances. Consid´ erons par exemple le probl` eme du test de primalit´ e d’un nombre : Prime Instance : un entier N Question : N est-il premier? Il existe un algorithme connu pour r´ epondre ` a cette question en temps O(√N). Mais un codage naturel de Prime consiste ` a repr´ esenter N en binaire (ou d´ ecimal). Le mot d’entr´ ee ´ etant ainsi cod´ e sur logN bits, la complexit´ e de l’algorithme est en fait exponentielle. Ce probl` eme est un exemple de probl` eme dont il n’est pas facile simplement de prouver qu’il est dans NP. Une autre caract´ erisation possible de NP consiste, plutˆ ot qu’` a exhiber un algorithme polynomial non d´ eterministe reconnaissant un langage, ` a exhiber un certificat de positivit´ e concis (polynomial). C’est-` a-dire que pour tout mot du langage, il existe un preuve d’appartenance v´ erifiable en temps polynomial. D´ efinition 8 NP est l’ensemble des langages L tels que pour tout mot w ∈ L, il existe une preuve πwd’appartenance de w ` a L v´ erifiable en temps (d´ eterministe) polynomiale en |w|. Ainsi pour le probl` eme HamiltonianCircuit d´ ecidant l’existence d’un cycle Hamiltonien dans un graphe : HamiltonianCircuit (HC) Instance : Un graphe G = (V,E) Question : Existe-t-il un cycle Hamiltonien, c’est-` a-dire un cycle passant une fois et une seule par chaque sommet. Le probl` eme HC appartient ` a NP. Consid´ erons comme codage naturel la matrice d’adjacence du graphe. Un certificat de positivit´ e consiste ` a donner une permutation des sommets. Ce certificat est de taille O(nlogn). On peut v´ erifier en temps O(n2) que la permutation correspond ` a un cycle du graphe. Ce certificat est bien polynomial en la taille de l’instance O(n2). 26
2 R´ eduction Polynomiale Le principe de l’´ etude de la complexit´ e est de classifier les probl` emes par rapport au crit` ere de temps d’ex´ ecution sur une machine de T¨ uring. Les deux classes P et NP que nous avons d´ efinies ne semblent pas assez fines pour discri- miner la difficult´ e des probl` emes. Nous aimerions introduire une relation d’ordre sur les langages, signifiant qu’un langage est plus facile ` a d´ ecider qu’un autre. Cette relation d’ordre est d´ efinie par la r´ eduction polynˆ omiale. D´ efinition 9 Soient L1et L2 deux langages sur un alphabet Σ. Une fonction τ de Σ∗vers Σ∗est une r´ eduction de L1vers L2si et seulement si ∀x ∈ Σ∗, x ∈ L1 ⇔ τ(x) ∈ L2 Si la transformation τ est polynˆ omiale, on dit que la r´ eduction est po- lynˆ omiale. Cette r´ eduction est ´ egalement appel´ ee r´ eduction de Karp, nous ver- rons plus loin qu’il existe d’autres types de r´ eduction. Du point de vue des probl` emes, τ est une r´ eduction polynomiale du probl` eme Π au probl` eme Π0si elle est une r´ eduction polynomiale entre les langages corres- pondants. La r´ eduction τ transforme toutes les instances positives Π en instances positives de Π0, et toutes instances n´ egatives de Π en instances n´ egatives de Π0. L’existence d’une r´ eduction polynˆ omiale de Π vers Π0montre que Π0est au moins aussi difficile que Π. En effet si Π peut ˆ etre r´ esolu en temps polynomial, alors Π0peut l’ˆ etre aussi; si par contre Π requiert un temps exponentiel, alors Π0ne peut ˆ etre r´ esolu par un algorithme polynomial. Notons bien que le sens premier de la r´ eduction de Π vers Π0est encore plus fort : une r´ eduction prouve qu’` a une transformation polynomiale pr` es des instances, c’est-` a-dire ` a un codage naturel pr` es de Π, le probl` eme Π est simplement un sous-probl` eme de Π0. I0 I τ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? YΠ NΠ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? YΠ0 NΠ0 ? ? ? ? ? ? ? ? Π0 Π Fig. 7 – R´ eduction entre probl` emes D’un point de vue algorithmique, une r´ eduction est un “pr´ e-processing” des instances du probl` eme Π, qui permet d’utiliser tout algorithme polynomial de 27
r´ esolution pour Π0pour r´ esoudre Π en temps polynomial. On notera Π ∝ Π0si il existe une r´ eduction polynomiale de Π vers Π0. Nous dirons que Π se r´ eduit ` a Π0. Propri´ et´ e 1 La r´ eduction polynˆ omiale est un pr´ e-ordre sur les langages : c’est une relation r´ eflexive et transitive. Cette propri´ et´ e n’est pas difficile ` a montrer. Elle est importante car elle permettra d’´ etablir des r´ eductions ` a partir de probl` emes de r´ ef´ erence. On notera par ≡ l’´ equivalence associ´ ee : Π ≡ Π0si et seulement si Π ∝ Π0et Π0∝ Π. 2.1 Un exemple simple de r´ eduction D´ etaillons un exemple de r´ eduction polynomiale du probl` eme de d´ ecision qui cherche ` a d´ eterminer si un graphe poss` ede une chaˆ ıne hamiltonnienne ` a partir du probl` eme du cycle hamiltonien. HamiltonianPath (HP) Instance : un graphe G = (V,E) Question : est-ce que le graphe poss` ede une chaˆ ıne hamiltonienne (chaˆ ıne qui passe une fois et une seule par tous les sommets du graphe)? Pour montrer que nous avons la r´ eduction HP ∝ HC, consid` erons une ins- tance de HP, c’est-` a-dire un graphe G.`A partir de G nous construisons une instance particuli` ere τ(G) de HC en ajoutant ` a G un nouveau sommet ν reli´ e ` a tous les autres. La transformation τ est ´ evidemment polynomiale. Montrons que c’est une r´ eduction, c’est-` a-dire que G admet une chaˆ ıne hamiltonienne si et seulement si τ(G) poss` ede un cycle hamiltonien. Si G poss` ede une chaˆ ıne hamiltonienne ϕ, alors le cycle νϕν est hamiltonien dans τ(G). R´ eciproquement, si τ(G) admet un cycle hamiltonien, son sous- graphe priv´ e de ν, G, poss` ede une chaˆ ıne hamiltonienne. On peut ´ egalement ´ etablir que nous avons la r´ eduction du cycle hamitonien au circuit hamiltonienne, HC ∝ HP. Ce r´ esultat n’est pas aussi imm´ ediat, mˆ eme s’il semble facile de d´ eduire une chaˆ ıne hamiltonienne ` a partir d’un cycle hamiltonien, cela ne suffit pas ` a d´ efinir une r´ eduction. Consid´ erons la transfor- mation φ suivante d’une instance G de HC vers une instance φ(G) de HP : On duplique un sommet quelconque x du graphe G en x0, puis on relie x et x0respectivement ` a deux nouveaux sommets y et y0comme c’est indiqu´ e dans la figure 8. Cette transformation est polynomiale. C’est une r´ eduction : G admet un cycle hamiltonien si et seulement si φ(G) poss` ede une chaˆ ıne hamiltonienne. En effet, si G poss` ede un cycle hamiltonien, la chaˆ ıne form´ ee de l’arˆ ete y ` a x, de la partie du cycle jusqu’` a un voisin de x, puis des arˆ etes de ce voisin ` a x0et celle de x0` a y0est une chaˆ ıne hamiltonienne de φ(G). R´ eciproquement, s’il existe une chaˆ ıne hamiltonienne ϕ dans φ(G), elle est n´ ecessairement de la 28
y0 y φ x x x Fig. 8 – R´ eduction HC ∝ HP. forme yxψx0y0. Alors xψx est un cycle hamiltonien sur G. Nous venons de montrer que les probl` emes HC et HP sont ´ equivalents : nous pouvons transformer tout algorithme polynomial pour HC en un algorithme polynomial pour HP, et inversement. 2.2 Exemple : R´ eductions de probl` emes particuliers Consid´ erons deux probl` emes voisins, les versions de d´ ecision des probl` emes du voyageur de commerce (D-TSP) et de l’existence d’un circuit hamiltonnien dans un graphe (HC que nous avons d´ ej` a pr´ esent´ e). D-TSP Instance : un ensemble V de villes, la matrice des distances inter-villes (di,j) et une constante k. Question : D´ eterminer s’il existe un parcours ferm´ e, passant par toutes les villes, de longueur inf´ erieure ` a k. Il est facile de d´ emontrer que ces deux probl` emes admettent un algorithme de r´ esolution exponentiel en consid´ erant toutes les permutations possibles (en comparant la somme de la longueur de leurs tours pour D-TSP). A ce jour, il n’existe pas d’algorithmes polynomiaux connus pour r´ esoudre ces probl` emes, et nombreux sont les informaticiens qui pensent qu’il n’en existe sans doute pas... On peut r´ eduire HC vers D-TSP (HC α D-TSP). D´ ecrivons un algorithme polynomial qui transforme une instance quelconque de HC en une instance positive de D-TSP si et seulement si l’instance de HC est positive. L’instance est la suivante : l’ensemble des villes correspond aux sommets du graphe G, les distances sont donn´ ees par di,j= 1 si i et j sont reli´ es dans G, 2 sinon. La constante k est ´ egale au nombre de villes. Cette transformation est polynomiale de mani` ere ´ evidente. De plus, une instance positive quelconque de HC fournit un cycle hamiltonien dans G. Ce cycle correspond ` a un parcours de longueur n des n villes exactement une fois chacune. Elle est positive pour D-TSP. Inversement, la r´ eduction transforme les 29
instances positives de D-TSP en instances positives de HC. En effet, la solution de D-TSP poss` ede par d´ efinition des arˆ etes de coˆ ut unitaire puisque la longueur totale est k, c’est donc aussi une solution de HC. La classe NP-complet La r´ eduction polynomiale permet de construire des classes d’´ equivalence. ´Etablir qu’un langage L appartient ` a NP-complet consiste ` a montrer que L est “le” langage le plus difficile de NP, au sens o` u il est un ´ el´ ement maximum de NP pour la r´ eduction polynomiale. D´ efinition 10 Un langage L appartient ` a NP-complet ssi il appartient ` a NP et si tout langage de NP se r´ eduit polynomialement ` a lui : L ∈ NP et ∀L0∈ NP, L0∝ L Il est facile de voir que NP-complet est une classe d’´ equivalence pour la r´ eduction polynomiale, puisque par d´ efinition si deux langages L1 et L2 ap- partiennent ` a NP-complet, on a L1 ∝ L2 et L2 ∝ L1. Evidemment, notre d´ efinition n’indique pas s’il existe ou non des langages dans cette classe... En effet la relation ∝ ´ etant simplement un pr´ e-ordre et non un ordre total, a priori il peut exister deux langages maximaux pour la r´ eduction polynomiale, qui soient par ailleurs incomparables. Dans une telle configuration ∝ n’admettrait pas d’´ el´ ement maximum (NP-complet = ∅) mais uniquement des ´ el´ ements maxi- maux. 3 Par contre si NP-complet n’est pas vide, cette classe contient les langages les plus “difficiles” de NP, au sens o` u si l’on peut d´ ecider n’importe lequel de ces langages en temps polynomial, alors tout langage de NP peut ˆ etre d´ ecid´ e en temps polynomial. Propri´ et´ e 2 Si un langage de NP-complet peut ˆ etre d´ ecid´ e par un algorithme polynomial, alors tous les langages de NP sont d´ ecidables en temps polynomial : P ∩ NP-complet 6= ∅ ⇒ P = NP Si la question de savoir si NP-complet est non vide a ´ et´ e r´ esolue par le c´ el` ebre th´ eor` eme de Cook que nous pr´ esentons ` a la section suivante, la question de savoir si NP-complet et P sont disjoints est toujours d’actualit´ e. Ladner [?] a montr´ e que soit P = NP, soit il existe une infinit´ e de classes d’´ equivalences distinctes sur NP, comprenant entre autres P et NP-complet. De plus, dans ce cas on peut montrer que ces classes sont denses. Cela signifie que pour tout couple de probl` emes P1et P2dans NP non ´ equivalents et tels que P1∝ P2alors, il existe un autre probl` eme P1,2de NP tel que P1∝ P1,2∝ P2non ´ equivalent ` a P1et P2. Ladner a ´ egalement montr´ e qu’il existait des probl` emes de NP non comparables entre eux. Enfin, mˆ eme si NP admet un plus grand et un plus petit ´ el´ ement (respectivement P et NP-complet), il n’a pas une structure de 30
Treillis. Nous pouvons donner une premi` ere structure grossi` ere pour NP comme repr´ esent´ e dans la figure 9 ci-dessous. NP-C NP P Fig. 9 – Structure possible de NP, si P 6= NP 3.1 Le Th´ eor` eme de Cook Nous allons montrer dans cette section l’existence d’un premier probl` eme de NP-complet. Ce premier probl` eme ` a avoir ´ et´ e d´ emontr´ e NP-complet, par Cook, est un probl` eme de logique : Satisfiability. 3.1.1 Le probl` eme Satisfiability (Sat) Le probl` eme Sat est un probl` eme de logique propositionnelle, encore appel´ ee logique d’ordre 0 ou logique des pr´ edicats. Rappelons qu’un pr´ edicat est d´ efini sur un ensemble de variables logiques, ` a l’aide des 3 op´ erations ´ el´ ementaires suivantes : la n´ egation NON (¬x que nous noterons aussi ¯ x), la conjonction ET (x∧y) et la disjonction OU (x∨y). Un litt´ eral est un pr´ edicat form´ e d’une seule variable (x) ou de sa n´ egation ¯ x. Une clause est un pr´ edicat particulier, form´ ee uniquement de la disjonction de litt´ eraux, par exemple C = x ∨ ¯ y ∨ z. Une formule est sous forme normale conjonctive si elle s’´ ecrit comme la conjonction de clauses. Le probl` eme Sat consiste ` a d´ ecider si une formule en forme normale conjonctive est satisfiable, c’est-` a-dire si il existe une assignation τ de valeur de v´ erit´ e ({VRAI,FAUX}) aux variables telle que toutes les clauses sont VRAI. Satisfiability (Sat) Instance : Un ensemble de clauses C = {C1,...,Cm} Question : La formule C1∧ ··· ∧ Cmest-elle satisfiable? 31
Par exemple la formule (x ∨ ¯ y ∨ z) ∧ (¯ x ∨ ¯ y) ∧ (x ∨ ¯ z) est satisfaite avec l’assignation τ(x) = VRAI et τ(y) = FAUX. Il est facile de se convaincre que le probl` eme Sat est dans NP. Un certificat de positivit´ e consiste ` a donner une assignation des variables, codable sur un vecteur de n bits, si n est le nombre de variables des clauses. La v´ erification que toutes les clauses sont satisfaites est alors clairement polynomiale (plus pr´ ecis´ ement, dans O(nm)). La partie suivante ´ etablie que ce probl` eme est dans NP-complet. 3.1.2 D´ emonstration du th´ eor` eme de Cook Nous allons maintenant d´ emontrer le th´ eor` eme de Cook, qui ´ etablit l’exis- tence d’un probl` eme NP-complet : Th´ eor` eme 1 (Cook’s Theorem) Sat ∈ NP-complet Compte tenu de notre remarque pr´ ec´ edente Sat ∈ NP, il nous faut prouver que : ∀L ∈ NP il existe une r´ eduction polynomiale de L vers Sat. La difficult´ e vient du fait qu’il faut prouver l’existence d’une r´ eduction pour tous les langages L de NP. La seule indication dont on dispose est l’existence d’une TM non d´ eterministe qui accepte L en temps polynomial. Repr´ ecisons tout d’abord la notion de temps d’ex´ ecution sur une NTM non d´ eterministe sur un mot w ∈ L : c’est le minimum des temps d’ex´ ecution parmi toutes les ex´ ecutions acceptant w. L’id´ ee de la preuve du th´ eor` eme de Cook est de coder l’ex´ ecution d’une NTM T reconnaissant L comme une formule logique. Nous allons montrer pour cela comment coder les donn´ ees de L, toutes les in- formations sur le ruban de T, mais aussi les ´ etats et les transitions. Montrons l’existence d’une transformation qui ` a chaque mot w et tout lan- gage (probl` eme) L ∈ NP associe une instance LSAT qui est positive si et seule- ment si w ∈ L. On consid` ere une TM non d´ eterministe (Q,Γ,Σ,∆,?,q0,qA) dont la complexit´ e est born´ ee par un polynˆ ome p(n) et w un mot de Σ∗de lon- gueur n. Cette machine accepte le mot w si et seulement si il existe une ex´ ecution de TM sur w de longueur au plus p(n) qui m` ene vers un ´ etat accepteur. Une telle ex´ ecution peut ˆ etre repr´ esent´ ee par p(n) configurations successives de TM. Chaque configuration est caract´ eris´ ee par l’´ etat, le contenu du ruban et la po- sition de la tˆ ete de lecture. On propose de la repr´ esenter par un ensemble de tableaux : – Un tableau R ` a deux dimensions de taille (p(n) + 1) par (p(n) + 1) qui indique pour chaque configuration et chaque case du ruban le symbole de Γ se trouvant dans cette case. On peut noter ici que le nombre de cases visit´ ees est au plus p(n)+1 car on visite au plus une nouvelle case ` a chaque transition. – Un tableau Q mono-dimensionnel de taille (p(n) + 1) donnant l’´ etat de chaque configuration i. On note K le nombre d’´ etats. 32
– Un tableau P mono-dimensionnel de taille (p(n) + 1) donnant la position de la tˆ ete de lecture dans chaque configuration i. – Enfin, un tableau C mono-dimensionnel de taille (p(n) + 1) donnant le choix non d´ eterministe effectu´ e par la machine ` a chaque ´ etape. On note r le nombre maximum de ces choix. Ce tableau a un status un peu particulier, il n’est pas strictement n´ ecessaire ` a la description logique de l’ex´ ecution, mais sera utile pour v´ erifier que le contenu des tableaux d´ efinit bien une ex´ ecution valide. La transformation produit une formule logique qui est satisfaite que pour un contenu de ces tableaux qui d´ efinit une ex´ ecution acceptant w. On introduit maintenant une variable propositionnelle par case des tableaux (il y en a un nombre polynomial O(p(n)2) : – rijσpour 0 ≤ i,j ≤ p(n) et σ ∈ Γ. Cette valeur est ` a 1 si le symbole σ est dans la case (i,j). – qikpour 0 ≤ i ≤ p(n) et k ∈ Q. Cette valeur est 1 si l’´ etat de la configu- ration i est k et 0 sinon. – pij pour 0 ≤ i,j ≤ p(n). Cette valeur est ` a 1 si la tˆ ete de lecture pointe sur la case j. – cispour 0 ≤ i ≤ p(n) et 1 ≤ s ≤ r si la fonction de transition s’effectue sur le choix s ` a l’´ etape i. Ces formules n’ont de sens que s’il n’existe qu’un seul symbole de Γ ` a un moment donn´ e sur une case, qu’un seul ´ etat et que la tˆ ete de lecture ne pointe que sur une seule case. Il est donc n´ ecessaire de restreindre le nombre de fonc- tions d’interpr´ etation possibles. Tout d’abord, exprimons que chaque case ne contient qu’un seul symbole de Γ : rijσ=⇒ rijσ0 ∀i,j pour σ 6= σ0. ce qui se traduit en forme normale conjonc- tive par la formule (V De plus, (W de Γ, ainsi, il suffit d’exprimer pour toutes les cases les deux conditions ` a la fois : σ6=σ0(rijσ∨ rijσ0). σ∈Γrijσ) exprime que le contenu de la case est bien un symbole ^ ^ σ6=σ0 _ σ∈Γ (rijσ∨ rijσ0) ∧ ( ( rijσ)) 0≤i,j≤p(n) On v´ erifie ais´ ement que cette formule est sous forme normale conjonctive et que sa longueur est polynomiale, pr´ ecis´ ement, elle est dans O(p(n)2). Il faut exprimer de la mˆ eme mani` ere que l’on a qu’une seule configuration ` a la fois, que la tˆ ete de lecture ne pointe que sur une seule case et qu’il n’y a qu’un seul choix possible ` a un moment donn´ e pour une transition. On donne ci-dessous la formule logique qui concerne le tableau P des positions de la tˆ ete de lecture dont la longueur est dans O(p(n)3) : ^ ^ _ (pij∨ pij0) ∧ ( ( pij)) 0≤i≤p(n) 0≤j,j0≤p(n)j6=j0 0≤j≤p(n) 33
Il reste maintenant ` a exprimer sous forme logique que toute fonction d’in- terpr´ etation d´ efinit bien une ex´ ecution de la machine acceptant le mot w : – La premi` ere configuration est la configuration initiale. Ceci s’ex- prime par les conditions que les n caract` eres du mot d’entr´ ee w figurent sur le ruban au d´ epart (le reste ´ etant le mot blanc), que la position de la tˆ ete de lecture soit sur la premi` ere case du mot et que l’´ etat soit l’´ etat initial. Ici, nous avons suppos´ e que le mot ´ etait rang´ e ` a partir de la po- sition j = 0, ce qui est un peu abusif car les d´ eplacements de la tˆ ete de lecture peuvent se faire aussi bien vers la droite que vers la gauche. Ceci ne change ´ evidemment pas fondamentalement la formule donn´ ee (on pourrait par exemple consid´ erer un tableau R plus large (−p(n) ` a +p(n))) ou plus simplement consid´ erer une machine de T¨ uring ` a ruban infini d’un seul cot´ e. ^ ^ r0jwj+1∧ r0j?] ∧ q00∧ p00 [ 0≤j≤n−1 n≤j≤p(n) – Le passage d’une ´ etape ` a la suivante est bien conforme ` a la fonc- tion de transition. Il nous faut exprimer deux conditions : les cases du ruban qui ne sont pas plac´ ees sous la tˆ ete de lecture ne sont pas modifi´ ees et (ce qui est le plus d´ elicat) que le passage d’une configuration ` a la suivante est bien conforme ` a la transition (symbole, ´ etat et choix) : Tout d’abord, pr´ ecisons la formule qui exprime que les cases non plac´ ees sous la tˆ ete de lecture ne sont pas modifi´ ees : ^ [(rijσ∧ pij) =⇒ r(i+1)jσ] 0≤i≤p(n) 0≤j≤p(n) σ∈Γ que l’on transforme en forme normale conjonctive : ^ (rijσ∨ pij∨ r(i+1)jσ) D´ etaillons maintenant la formule qui atteste de la conformit´ e du passage de la configuration i ` a i + 1 qui passe de l’´ etat k ` a l’unique ´ etat k0 ∀ position j ` a l’´ etape i : rijσ∧ qik∧ pij∧ cis=⇒ q(i+1)k0 Qui s’´ ecrit en forme normale conjonctive : rijσ∨ qik∨ pij∨ cis∨ q(i+1)k0 On obtient une formule similaire pour le passage du symbole σ ` a σ0). Pour assurer que le d´ eplacement est bien conforme, il faut consid´ erer une 34
variable suppl´ ementaire d (d = −1,0,+1) qui traduit de fa¸ con unique la relation de transition. Finalement, la formule est : ^ [(rijσ∨qik∨pij∨cis∨ q(i+1)k0)∧(rijσ∨qik∨pij∨cis∨ r(i+1)jσ0)∧(rijσ∨qik∨pij∨cis∨ p(i+1)(j+d)) 0≤i,j≤p(n) σ∈Γ 1≤s≤r 1≤k≤K – Finalement, on exprime que l’on atteint bien l’´ etat accepteur en p(n) + 1 ´ etapes :W Toutes ces transformations sont polynomiales. La formule finale est obtenue comme la conjonction de toutes les formules pr´ ec´ edentes. i6=p(n)qi,qA Quelques probl` emes NP-complets Nous donnons dans cette section le r´ esum´ ede quelques probl` emes de r´ eference et leurs r´ eductions. Nous avons suivi partiellement la pr´ esentation historique de Garey et Johnson, nous l’avons retenue ici pour son caract` ere p´ edagogique en remettant au goˆ ut du jour certaines preuves. Ces probl` emes sont connus et les d´ etails peuvent ˆ etre trouv´ es dans [8]. Ces six probl` emes font eux-mˆ emes partie des 21 probl` emes originaux introduits par Karp en 1972 [?]. 3.2 3.2.1 Variations autour de SAT Le probl` eme 3Sat est une forme simplifi´ ee de Sat. 3SAT Instance : Une collection de clauses C = {c1,c2,...cm} d’un ensemble fini U de variables telles que card(ci) = 3 pour 1 ≤ i ≤ m. Question : Existe-t-il une affectation de U qui satisfasse toutes les clauses de C ? La r´ eduction de 3Sat ` a partir de Sat est presque imm´ ediate. La d´ emonstration est classique et pr´ esente dans la plupart des ouvrages. Nous ne la pr´ esentons pas en d´ etails ici, l’id´ ee est de transformer les clauses de SAT en clauses de cardinalit´ e 3 en introduisant de nouvelles variables logiques. On peut ´ egalement consid´ erer des variantes comme 3Sat-NAE (not all equal). ce probl` eme correspond toujourts ` a la satisfaisabilit´ e d’une formule lo- gique form´ ee de la conjonction de m clauses d’exactement 3 litt´ eraux o` u l’on impose de plus que dans chaque clause, au moins une valeur d’un litt´ eral soit VRAI et au moins une soit FAUX. Une autre variante int´ eressante est 4Sat-E2 o` u exactement 2 litt´ eraux sont VRAI et 2 sont FAUX dans chaque clause compos´ ee d’exactement 4 litt´ eraux. Ces deux probl` emes sont NP-complets. 35
On peut se poser naturellement la question de la complexit´ e de 2Sat (d´ efini comme 3Sat avec des clauses form´ ees d’exactement 2 litt´ eraux). Si le probl` eme 3Sat est NP-complet, a contrario 2Sat est polynomial : il admet mˆ eme un algorithme lin´ eaire! Ceci fait l’objet de l’exercice ?? ` a la fin du chapitre. 3.2.2 IndependentSet Le probl` eme que nous consid´ erons maintenant un probl` eme bien connu en th´ eorie des graphes. On consid` ere un graphe G. Un stable de G est un ensemble de sommets deux ` a deux non adjacents. La question est de d´ eterminer s’il existe dans G un stable de cardinalit´ e fix´ ee. Plus formellement : IndependentSet (IS) Instance : un graphe G = (V,E) et un entier K Question : Existe-t-il dans G un stable de cardinalit´ e sup´ erieure ou ´ egale ` a K ? La d´ emonstration classique s’obtient par r´ eduction ` a partir de 3Sat, elle est laiss´ ee au lecteur. 3.2.3 VertexCover Le probl` eme VC (transversal) fait partie des six probl` emes de base de Garey et Johnson [8]. a NP-compl´ etude y est prouv´ ee par une r´ eduction ` a partir de 3Sat. Nous allons ici prouver qu’il est NP-complet directement ` a partir de IS. On appelle transversal d’un graphe G = (V,E) un ensemble C de sommets de V tel que toute arˆ ete de E a au moins une de ses extr´ emit´ es dans C. Le probl` eme VertexCover consiste ` a d´ ecider si un graphe admet un transversal de cardinalit´ e inf´ erieure ` a un entier K donn´ e. Vertex Cover (VC) Instance : un graphe G et un entier K. Question : Existe-t-il un transversal de cardinalit´ e inf´ erieure ou ´ egale ` a K ? Remarquons tout d’abord trivialement que ce probl` eme est bien dans NP. Un ensemble C de sommets est un transversalsi et seulement si son compl´ ementaire S = V − C est un stable. La r´ eduction polynomiale ` a partir de IS est donc imm´ ediate. 3.2.4 Autres probl` emes classiques Voil` a une liste de probl` emes NP-complets classiques : 3DM Instance : 3 ensembles disjoints X, Y et Z de mˆ eme cardinalit´ e, un en- semble M ⊆ X × Y × Z. 36
Question : L’ensemble M contient-il un couplage parfait? C’est-` a-dire existe-il dans M un ensemble de |X| triplets disjoints? partition Instance : un ensemble fini A dont chaque ´ el´ ement poss` ede un poids s(a). Question : Existe-t-il un sous-ensemble A0de A tel quePa ∈ A0s(a) = Pa ∈ A − A0s(a)? On peut montrer que ce probl` eme est NP-complet par plusieurs m´ ethodes. Une fa¸ con est de le r´ eduire ` a partir d’une variante de la variante 3sat-nae de sat. 3.2.5 Retour sur HC Nous avons d´ ej` a pr´ esent´ e le probl` eme de la recherche d’un cycle hamiltonnien dans un graphe. Nous avons prouv´ e que le probl` eme D-TSP se r´ eduisait poly- nomialement ` a partir de HC. Il existe une d´ emonstration classique qui montre que HC est NP-complet ` a partir de VC. Ceci prouve par transitivit´ e que D-TSP est lui aussi NP-complet. 3.2.6 Un bilan provisoire La figure ci-dessous donne les sch´ emas de r´ eduction de quelques probl` emes fondamentaux ` a partir du probl` eme SAT. SAT ILP 3SAT IS 3DM VC Clique Partition HC HP Knapsack O2M TSP Garey & Johnson Montré en cours Fig. 10 – Quelques r´ eductions ` a partir de SAT. On peut construire un tableau plus complet, contenant d’autres probl` emes, comme le coloriage, l’ordonnancement, etc.. Un site est mis ` a jour r´ eguli` erement 37
[compendium]. Fronti` ere entre P et NP L’´ etude de la complexit´ e de certains probl` emes permettent de conclure qu’ils sont polynomiaux, d’autres qu’ils sont NP-complets. Pour ces derniers, en l’´ etat des connaissances aujourd’hui, il est inenvisageable de trouver des algorithmes efficaces pour les r´ esoudre. Il est donc important d’´ etudier des probl` emes ` a la fronti` ere, relaxer des probl` emes difficiles pour obtenir des sous-probl` emes polynomiaux... Prenons l’exemple d’un probl` eme d’ordonnancement g´ en´ eral : le probl` eme avec contraintes de pr´ ec´ edence et temps unitaires est polynomial pour m = 2, il est NP-complet pour m arbitraire. Par contre, sa complexit´ e est inconnue pour m = 3. Il est polynomial pour certaines structures de pr´ ec´ edences comme les arbres. Le probl` eme ` a nombre non born´ e de machines pour des tˆ aches quel- conques avec pr´ ec´ edence est polynomial (algorithme de plus long chemin). 3.3 On rappelle le probl` eme de l’ordonnancement ` a 2 machines : O2M Instance : : n tˆ aches ind´ ependantes de dur´ ees pj(enti` eres) pour 1 ≤ j ≤ n, D un entier. Question : : Existe-t-il un ordonnancement r´ ealisable de dur´ ee inf´ erieure ou ´ egale ` a D? On r´ eduit facilement ce probl` eme ` a partir de partition. On peut ´ egalement introduire un ´ el´ ement de comparaison suppl´ ementaire avec le probl` eme du Sac-` a-dos.Il est possible de montrer formellement l’´ equivalence de ces trois probl` emes (Partition, Sac-` a-dos et O2M). Ceci fait l’objet d’un exer- cice ` a la fin du chapitre. En particulier, comme on a montr´ e que Partition ´ etait NP-complet, les deux autres se sont ´ egalement... 4 Autres classes de Complexit´ e 4.1 Compl´ ementaire Suivant le type de r´ eponses que l’on cherche, on peut s’interroger sur la classe des langages L (probl` emes) dont le compl´ ement est dans NP. Ceci d´ efinit la classe co-NP = {L | L ∈ NP}. Remarquons tout d’abord que si un probl` eme est dans NP, son compl´ ement ne l’est pas forc´ ement. En effet, le caract` ere non d´ eterministe de la TM ne permet pas simplement d’inverser les r´ eponses : elle n’accepte une ex´ ecution que s’il existe une ex´ ecution qui l’accepte, elle re- fuse donc si TOUTES les ex´ ecutions refusent, condition qui n’est pas forc´ ement v´ erifiable par une TM non d´ eterministe. 38
Par exemple, il a ´ et´ e facile d’´ etablir HC ∈ NP. V´ erifier qu’il n’y a pas de cycle hamiltonnien dans un graphe (ce qui correspond ` a HC ∈ co-NP) est plus difficile sans les ´ enum´ erer tous... De fa¸ con sym´ etrique, consid´ erons le probl` eme qui cherche ` a ´ etablir la prima- lit´ e d’un entier. Rappelons ce probl` eme qui a d´ ej` a ´ et´ e introduit dans la section 1 : Prime Instance : un entier N. Question : N est-il premier? On montre facilement que Prime est dans co-NP en exhibant un certificat concis pour le ”non”. En effet, si l’entier n’est pas premier, il s’´ ecrit comme produit de ses diviseurs dont il est facile de v´ erifier que le produit (avec leurs ordres de multiplicit´ e) est bien ´ egal ` a l’entier. Par contre, comme nous l’avons d´ ej` a ´ evoqu´ e, il n’est pas ´ evident de montrer que Prime ∈ NP. On a facilement P = co − P, il est en effet ´ equivalent de chercher les ins- tances positives ou n´ egatives si le temps est polynomial sur une machine de T¨ uring d´ eterministe. Flotmax et Coupemin sont deux probl` emes duaux qui ap- partiennent tous deux ` a NPTco-NP. En fait, ils appartiennent ` a P. On de mani` ere ´ evidente P ⊂ NPTco-NP. L’inclusion stricte reste une question ouverte. 4.2 Retour sur la notion de complexit´ e Nous avons introduit la notion de complexit´ e pour distinguer (classifier) les probl` emes par niveaux de difficult´ e. Nous avons beaucoup insist´ e sur la com- plexit´ e en temps (nombres d’op´ erations ´ el´ ementaires requises pour r´ esoudre un probl` eme). Cependant, la complexit´ e en espace est ´ egalement tr` es importante et bien sˆ ur, elle est li´ ee la complexit´ e en temps. Plusieurs tentatives ont ´ et´ e lanc´ ees pour d´ efinir la complexit´ e par le contenu en calcul (longueur du programme de r´ esolution du probl` eme). La complexit´ e de Kolmogorov est d´ efinie par la longueur du plus petit programme existant pour r´ esoudre un probl` eme. Elle se mesure ´ egalement en fonction de la taille de l’instance. Consid´ erons ` a titre d’exemple le probl` eme de compter le nombre de ”1” d’une suite binaire de longueur n. La complexit´ e en temps de ce probl` eme est trivialement dans O(n), en effet, il existe un algorithme simple qui r´ epond ` a la question en parcourant les termes de la suite o` u l’on incr´ emente un compteur ` a chaque fois que l’on rencontre un ”1”. C’est ´ egelement une borne inf´ erieure car il est n´ ecessaire de parcourir tous les termes... La complexit´ e en espace est dans O(log2(n)), c’est l’espace n´ ecessaire ` a stocker un compteur (entier) et le terme courant de la suite. La complexit´ e en contenu en calcul est dans O(1) car 39
l’algorithme ne d´ epend pas de la taille de la suite. Nous pr´ esentons dans la suite de cette section les principaux r´ esultats exis- tants dans chacun de ces domaines. Pour la complexit´ e en temps, nous nous interrogerons sur les classes au del` a de NP, puis sur la complexit´ e parall` ele, qui est une tentative pour r´ eduire la complexit´ e en temps des probl` emes en consid´ erant des mod` eles de calcul plus puissants. Nous d´ etaillerons ensuite des classes de complexit´ e en espace, au del` a de NP, mais aussi ` a l’int´ erieur de P (cette classification est li´ ee ` a la complexit´ e parall` ele). Enfin, nous ouvrirons sur la complexit´ e en contenu en calcul en liaison avec la th´ eorie de l’information. 4.3 Complexit´ e en temps Nous avons d´ efini les classes de complexit´ e P et NP et nous avons ´ etudi´ e leurs relations. Comme nous l’avons ´ evoqu´ e, une des questions importantes non r´ esolue est de d´ eterminer si l’inclusion de P dans NP est stricte ou non. De mani` ere analogue ` a ces deux classes, nous pouvons d´ efinir la classe EXPTIME des algorithmes ` a complexit´ e born´ ee par une exponentielle sur une machine de T¨ uring d´ eterministe : TIME(2nk) [ k EXPTIME = On d´ efinit de mani` ere analogueNEXPTIME pour les machines non d´ eterministes. On a de mani` ere ´ evidente l’inclusion de EXPTIME dans NEXPTIME. De mˆ eme que pour P et NP, on se pose naturellement la question de l’inclusion stricte de EXPTIME dans NEXPTIME, qui est ´ egalement un probl` eme ou- vert. On peut par contre d´ emontrer que l’inclusion P dans EXPTIME est stricte, P ⊂ EXPTIME. Remarquons que EXPTIME = co−EXPTIME car le mod` ele sous-jacent est la machine de T¨ uring d´ eterministe. De mˆ eme, on montre facilement que co-NP ⊂ EXPTIME. 4.4 Complexit´ e en m´ emoire La classe PSPACE est d´ efinie par les langages accept´ es par une machine de T¨ uring d´ eterministe dont le nombre de cases utilis´ ees est born´ ee par un po- lynˆ ome en la taille du mot d’entr´ ee. Plus formellement : k=1SPACE(nk) o` u SPACE(nk) est l’ensemble des langages PSPACE =S accept´ es par une machine de T¨ uring d´ eterministe dont la complexit´ e en espace est born´ ee par O(nk). De mˆ eme, NSPACE est l’ensemble des langages reconnus en espace polynomial sur une TM non d´ eterministe. On a en particulier PSPACE = NPSPACE. On en d´ eduit NP ⊂ PSPACE. 40
Il est int´ eressant de pouvoir distinguer quels probl` emes poss` edent des so- lutions efficaces en m´ emoire de celles qui n’en ont pas. Ainsi, on d´ efinit de mani` ere analogue ` a la complexit´ e en temps, la classe PSPACE-complet. Nous consid´ erons ci-dessous un probl` eme de jeu ` a deux joueurs I et II. Le premier joueur commence par donner un nom de ville (par exemple La B´ erarde), le se- cond doit en trouver un autre qui commence par la derni` ere lettre du nom de la ville pr´ ec´ edente (par exemple Entragues), et ainsi de suite sans redite entre les villes. En utilisant un formalisme de graphe, on peut le reformuler de la fa¸ con suivante : JEUGEO Instance : un tableau de n mots (suites de k caract` eres au plus) et un mot initial. Question : est-ce que la configuration est gagnante pour le joueur I ? Dire que le probl` eme JEUGEO ∈ PSPACE-complet assure qu’il n’existe pas d’algorithmes polynomiaux qui permettent de d´ ecider qu’une position arbi- traire est gagnante... Un autre probl` eme PSPACE-complet est celui de la satisfaisabilit´ e d’une formule bool´ eenne dont toutes les variables sont associ´ ees ` a un quantificateur. Structuration de P De mˆ eme que l’on a d´ efini la classe PSPACE, on peut d´ efinir une nouvelle classe des langages accept´ es en temps polylogarithmique sur une machine de T¨ uring d´ eterministe (et sur une TM non d´ eterministe) : 4.5 k=1SPACE((log(n))k). L =S k=1NSPACE((log(n))k). NL =S Avec la mˆ eme id´ ee, on d´ efinit αLune r´ eduction au sens de l’espace polylo- garithmique. GAP - Graph Accessibility Problem Instance : un graphe orient´ e G = (V,E) d’ordre n et deux sommets s et t appartenant ` a V Question : existe-t-il un chemin de s ` a t dans G? Montrons que ce probl` eme est NL-complet. Tout d’abord, GAP est dans NL. En effet, on peut d´ ecrire un algorithme qui passe en revue les sommets successifs d’un chemin ´ el´ ementaire (donc, de longueur inf´ erieure ` a n). Il ne garde en m´ emoire ` a chaque ´ etape que 3 entiers : les indices des deux sommets cons´ ecutifs sur le chemin et un compteur. 41
Il faut ensuite montrer que ∀ langage de NL, il existe une r´ eduction vers GAP. L’id´ ee est proche de celle qui a permis d’´ etablir le th´ eor` eme de Cook. On consid` ere une machine de T¨ uring quelconque qui accepte un programme de NL. Soit s le mot d’entr´ ee. Elle accepte ce mot si et seulement si la sortie de GAP appliqu´ e au graphe des ex´ ecutions possibles de cette TM est positive. En effet, la s´ equence des descriptions instantan´ ees repr´ esente un chemin dans ce graphe. On peut ´ egalement montrer que le probl` eme 2SAT est NL-complet. 4.6 Bilan On peut r´ ecapituler les r´ esultats actuellement connus : P ⊆ NP ⊆ PSPACE ⊆ EXPTIME P ⊂ EXPTIME P ⊂ PSPACE P ⊆ NP et P ⊆ co-NP P ⊆ (NPTco-NP) sans information sur l’inclusion stricte EXPTIME ⊆ NEXPTIME EXPTIME = co − EXPTIME P = co − P PSPACE = NPSPACE PSPACE ⊆ EXPTIME La figure suivante 11 repr´ esente graphiquement les r´ esultats que nous venons de pr´ esenter. EXPTIME PSPACE co−NP NP P Fig. 11 – Structure compl` ete (en supposant NP 6= co-NP). 42
NP-compl´ etude au sens fort Les langages NP-complet sont les langages les plus “difficiles” de NP au sens de la r´ eduction polynomiale. On peut partitionner cette classe en distinguant les langages NP-complet au sens fort (strongly NP-complet) et les langages NP-complet au sens faible (NP-complet in the ordinary sense). Cette distinc- tion est li´ ee aux probl` emes num´ eriques, dans lesquels des nombres interviennent. Intuitivement, le sens fort signifie que la complexit´ e du probl` eme provient de sa structure mˆ eme, tandis que le sens faible est induit pas la nature des instances trait´ ees. 5 Partition Instance : Une suite d’entiers a1,...,an. Question : Existe-t-il une partition A ∪ B de [1..n] telle que X i∈A X i∈B ai = ai Le probl` eme Partition ∈ NP-complet. Cependant il peut ˆ etre r´ esolu par programmation dynamique en calculant le pr´ edicat P(i,a), vrai ssi il existe une partition A∪B de [1..i] telle que s(A) = a. La relation liant les pr´ edicats P(i,a) est simplement : P(i + 1,a) = P(i,a) ∨ (P(i,a − ai+1) ∧ a ≥ ai+1) En posant 2C =P vrai. L’algorithme dynamique r´ esout donc Partition en temps O(nC). Faut- il en d´ eduire que Partition ∈ P, et donc P = NP,...?Non, car la taille d’une instance x de Partition n’est pas n, mais nombre doit ˆ etre cod´ es. En faisant intervenir amax= maxi{ai}, on peut borner la taille |x| par O(nlogamax), tandis que notre algorithme s’ex´ ecute en temps O(n2amax), qui n’est pas bien sˆ ur polynomialement born´ e par |x|...L’algorithme de programmation dynamique pour Partition est dit pseudo-polynomial : iai, une instance de Partition est positive ssi P(n,C) est P ilogai, puisque chaque D´ efinition 11 Pour une instance x d’un probl` eme de d´ ecision num´ erique, on note Max(x) la valeur du plus grand entier apparaissant dans l’instance. Par convention, pour les probl` emes non num´ erique, on pose Max(x) = 1. D´ efinition 12 Un algorithme est dit pseudo-polynomial si son temps d’ex´ ecution sur une instance x est polynomialement born´ e par |x| et Max(x). Bien qu’un algorithme pseudo-polynomial comme l’algorithme de program- mation dynamique pour Partition puisse avoir un temps d’ex´ ecution expo- nentiel par rapport ` a la taille de l’instance, il reste un algorithme efficace dans bien des cas, en particulier si Max(x) est faible. Peut-on obtenir un algorithme pseudo-polynomial pour tout probl` eme de NP-complet? La r´ eponse est li´ ee ` a la d´ efinition de la NP-complet au sens fort : 43
D´ efinition 13 Pour un probl` eme de d´ ecision Π et un polynˆ ome p, on note Πp le sous-probl` eme de Π restreint aux instances x telles que Max(x) ≤ p(|x|). D´ efinition 14 Un probl` eme Π ∈ NP-complet est NP-complet au sens fort ssi il existe un polynˆ ome p tel que Πpest NP-complet. Sinon il est NP-complet au sens faible. Les probl` emes NP-complet au sens faible sont simplement d´ efinis ici en creux par rapport au sens fort, comme NP-complet en creux par rapport au sens fort, comme NP-complet / NP-complet au sens fort. Propri´ et´ e 3 Si P 6= NP, un probl` eme NP-complet au sens fort n’admet pas d’algorithme pseudo-polynomial. Par contre rien n’assure qu’un probl` eme au sens faible admette un tel algo- rithme pseudo-polynomial. En effet, si pour tout polynˆ ome p, le sous-probl` eme Πpest dans P, un algorithme pseudo-polynomial existe effectivement. Mais la NP compl´ etude au sens faible implique seulement que Πp / ∈ NP-complet,... 44
Exercices du Chapitre II Retour sur HC Nous avons d´ ej` a pr´ esent´ e le probl` eme de la recherche d’un cycle hamiltonnien dans un graphe. On demande de montrer la r´ eduction HC α SAT de HC vers SAT (bien sˆ ur, ceci n’am` ene rien de nouveau en vertus du th´ eor` eme de Cook sinon une d´ emonstration beaucoup plus courte!). Indication : On introduit des variables logiques pour faire le lien entre les deux probl` emes: xij= VRAI si le sommet i est en position j sur le cycle (pour 1 ≤ i,j ≤ n). Il faut traduire sous forme logique les contraintes suivantes : – un sommet i apparaˆ ıt ` a la ji` eme position : ∀j, 1 ≤ j ≤ n _ i xij – au plus un sommet doit apparaˆ ıtre ` a la j` eme place : ^ (xij∨ xkj) <≤i,j,k≤n pour i 6= k – le sommet i n’apparaˆ ıt qu’une seule fois dans le cycle : ∀i, 1 ≤ i ≤ n _ j xij et (xij∨ xkj) pour j 6= k ∀i,j,k – respect de la structure du graphe : Deux sommets non li´ es par un arc ne sont pas cons´ ecutifs dans le cycle. On v´ erifie facilement que cette r´ eduction est bien polynomiale O(n2) va- riables et O(n3) clauses. 5.1 Equivalence Partition, Sac-` a-dos et ordonnancement sur deux machines Cet exercice a´ et´ e sugg´ er´ epar Evripidis Bampis. Il s’agit de montrer l’´ equivalence de trois probl` emes proches avec le minimum d’efforts. Ces trois probl` emes Partition, Sac-` a-dos et O2M ont ´ et´ e d´ efini dans le cours. Evidemment, il est inutile de montrer les 6 ´ etapes de r´ eduction. Certaines sont triviales, d’autres moins... 45
ˆ ındications – Partition α O2M est tr` es facile en posant D =1 – La r´ eciproque est plus dure ` a montrer, mais aussi plus int´ eressante. O2M α partition : On d´ efinit I = 2D −P p´ eriodes d’inactivit´ es. On introduit des xx dont les valeurs sont telles que d’une part, la somme est ´ egale ` a I et d’autre part, on peut construire n’importe quel xx entre 0 et I en additionnant les valeurs d’un sous- ensemble de ces nouveaux xx. Attention ici ` a garder la r´ eduction polynomiale. On introduit toutes les puissances de 2 dont la valeur est strictement inf´ erieure ` a I sur 2 qui ram` ene leur somme ` a I (exemple 56, on prend 1, 2, 4, 8, 16 et 25). La r´ eduction est polynomiale car on rajoute log2I nombres... – Sac-` a-dos α Partition. Indication : On introduit deux variables suppl´ ementaires ` a celles du sac ` a dos an+1= 2H + 2K et an+2= 4H et l’instance de partition avec ces n + 2 donn´ ees. De plus, on remarque que les variables an+1et an+2sont forc´ ement dans deux ensembles diff´ erents. – Il reste la derni` ere r´ eduction Partition α Sac-` a-dos... Ppj. 2 j=1,npj (la justification de ce I est le cumul des 5.2 2SAT L’objectif de cet exercice est d’´ etudier la complexit´ e du probl` eme SAT pour des formules form´ ees d’exactement deux litt´ eraux. Nous avons vu que 3SAT´ etait un probl` eme difficile, on demande de d´ emontrer que 2SAT est polynomial. Indications l’id´ ee est de repr´ esenter la formule logique par un graphe, puis, de montrer que 2SAT correspond ` a un probl` eme de cheminement dans ce graphe. Pour chaque clause (x ∨ y) on associe quatre sommets : x,x,y et y. Si x est FAUX, alors y doit ˆ etre VRAI. On ´ ecrit alors x ⇒ y ce qui se traduit par un arc entre x et y. Sym´ etriqusement, il existe un arc entre x et y. Il suffit de v´ erifier que dans le graphe ainsi construit, il n’y a pas de chemin entre un sommet et son compl´ ementaire, pour tous les sommets. 5.3 NP et co-NP Que pensez-vous des classes (co-NP)-complet et co-(NP-complet)? 46