1 / 23

COURS

SHDQKJSDFKJDJLSFSSFSFSKFKJLNCWXNC.?C

kalamon
Download Presentation

COURS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. – 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. [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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. ˆ ı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

More Related