Ouvrir le menu principal

En algorithmique, la complexité paramétrée (ou complexité paramétrique) est une mesure de la complexité d'un problème en fonction de plusieurs paramètres, et pas seulement la taille totale des données en entrée. Elle est étudiée depuis les années 90 comme approche pour la résolution exacte de problèmes NP-complets. Cette approche est utilisée en optimisation combinatoire, notamment en algorithmique des graphes, en intelligence artificielle, en théorie des bases de données[1] et en bio-informatique.

Sommaire

Exemples et intérêtModifier

En pratique, bien que les instances peuvent être grandes, certaines parties des instances sont petites. L'idée est de mesurer la taille de ces parties avec un paramètre. La complexité paramétrée permet de développer des algorithmes efficaces en pratique, si on considère que le paramètre est petit.

Requête dans une base de donnéesModifier

Considérons l'évaluation d'une requête dans une base de données[2], comme une requête SQL delete * from students where average < 18. La complexité temporelle de ce problème est exponentielle en la taille de l'entrée (base de données + requête). Cependant, généralement, la base de données est énorme alors que la requête est petite. Cela tombe bien, puisque la complexité est de  où k est la taille de la requête et n est la taille de la base de données. Ainsi, en considérant k comme un paramètre, la complexité est linéaire. On dit alors que l'évaluation d'une requête dans une base de données est dans la classe FPT (fixed-parameter tractable, traduit littéralement en soluble à paramètre fixé), en prenant comme paramètre la taille de la requête.

 
Sur cet exemple, n = 6 et k = 2.

Problème de couverture par sommetsModifier

Considérons l'exemple du problème de couverture par sommets (vertex cover) d'un graphe. Étant donné un graphe, on note   le nombre de sommets du graphe et   la taille d'une solution, c'est-à-dire d'une couverture minimale. Fellows et Langston donne un premier résultat de complexité paramétrée[3] en 1986 pour ce problème. Ils montrent que l'on peut résoudre le problème en temps polynomial en   si on considère   comme un paramètre. Cela signifie que, bien que le problème de couverture par sommets soit NP-complet, on peut le résoudre efficacement s'il existe des solutions petites. En d'autres termes, le problème de couverture par sommets avec la taille d'une solution comme paramètre est dans la classe FPT.

Plus précisément, Fellows et Langston remarquèrent que la théorie autour du théorème de Robertson-Seymour permet d'obtenir un algorithme en   pour ce problème[4].

De nombreuses améliorations ont ensuite été faites[3]. L'un des meilleurs résultat est un algorithme en temps  [5].

Problème de satisfiabilitéModifier

Le problème de satisfiabilité, aussi appelé problème SAT, consiste à savoir si une formule de la logique propositionnelle peut être mise à vrai. Un algorithme naïf consiste à parcourir la table de vérité, et pour toute attribution des valeurs de vérité des propositions atomiques apparaissant dans la formule, de regarder si cette attribution rend la formule vraie. On obtient donc un algorithme en    est la taille de la formule, et   est le nombre de propositions atomiques dans la formule, considéré comme un paramètre. Ainsi, si une formule contient peu de propositions atomiques, on peut considérer que le problème SAT est solvable en temps linéaire.

Le problème MAX-SAT est la version d'optimisation du problème SAT : étant donné une forme normale conjonctive F, et un entier k, peut-on satisfaire au moins k clauses de F ? Le problème MAX-SAT est NP-complet (même si les clauses contiennent au plus 2 littéraux, MAX-2SAT). Si par contre, on considère k comme un paramètre, alors MAX-SAT est dans FPT[6].


Techniques algorithmiques classiquesModifier

Parmi les techniques classiques permettant de construire des algorithmes FPT, on compte[7] :

  • les techniques liées au théorème de Robertson et Seymour, parfois appelée Well-quasi-ordering techniques (techniques de beaux ordres en traduction littérale), donnant des résultats d'existence peu utilisables en pratique;
  • l'utilisation de décompositions de graphes comme la décomposition arborescente avec la largeur d'arbre comme paramètre associé;
  • le color coding (hashing)
  • des méthodes plus élémentaires comme les arbres de recherches bornés ou la kernelisation, c'est-à-dire la réduction à une instance plus petite, un kernel (noyau).

Largeur arborescenteModifier

Article détaillé : Largeur arborescente.

En complexité paramétrée, une quête est de trouver un bon paramètre pour un problème, afin qu'il soit dans FPT. La largeur arborescente est un paramètre qui rend de nombreux problèmes algorithmiques sur les graphes dans FPT[8] :

  • Le problème SAT avec la largeur arborescente du graphe d’incidence variables/clauses comme paramètre est dans FPT ;
  • Le problème de coloration avec la largeur arborescente du graphe est dans FPT. Par contre, le problème de coloration avec le nombre de couleurs requises n'est pas dans FPT, à moins que P = NP ; en effet, le problème de coloration avec trois couleurs est déjà NP-complet
  • Le problème de chercher un ensemble indépendant
  • Le problème de couverture de sommets
  • Le problème du cycle hamiltonien

Le théorème de Courcelle montre que, pour toute propriété exprimable en logique monadique du second ordre, le problème de savoir si un graphe vérifie cette propriété avec la largeur arborescente comme paramètre est solvable en temps linéaire et est donc dans FPT.

Arbre de recherche bornéModifier

L'arbre de recherche borné est une stratégie classique de conception d'algorithmes FPT. Il s'agit de localiser un ensemble de conflits qui empêche de résoudre le problème, et d'essayer de régler chaque conflit avec un nombre borné de façons possibles.

Par exemple, le problème Cluster Editing, utile en partitionnement de données, qui consiste à faire le minimum d'ajouts et suppressions d'arêtes dans un graphe pour obtenir une union de cliques disjointes, est NP-complet. En appelant   le nombre d'ajouts et de suppressions impliqués dans la solution optimale, ce problème se résout par un algorithme FPT en arbre de recherche borné de complexité  . Cet algorithme part de la constatation qu'un graphe est une union de clique si et seulement s'il ne contient aucun graphe   induit, c'est-à-dire un ensemble de 3 sommets qui ne contient que 2 arêtes (un sommet est relié aux deux autres, qui sont indépendants). La stratégie consiste donc à identifier un graphe   induit (en temps  , en testant tout ensemble de trois sommets), et à le supprimer de trois façons possibles : soit en supprimant une arête entre deux sommets adjacents (deux possibilités), soit en ajoutant une arête entre les deux sommets indépendants. On obtient donc trois graphes, sur lesquels on applique à nouveau cette recherche et suppression de  . Si après ces deux étapes de recherche/suppression de   on ne trouve plus de  , on a trouvé une solution en deux éditions d'arêtes qui permettent de régler le problème. Sinon, on a examiné au total 9 cas (ou plus généralement   cas au bout de   étapes) pour déduire qu'il était impossible de trouver une solution en deux (plus généralement  ) éditions d'arêtes.


Classes de complexitéModifier

 
Relations entre les classes de complexité paramétrée (cf. Fig. 5.1 de [9]).

En théorie de la complexité, les problèmes de décision sont décrits comme des langages sur un alphabet fini, c'est-à-dire des ensembles    est un alphabet fini. Ici, un problème paramétré est défini comme un couple   où :

  •  ;
  •   est une fonction calculable en temps polynomial[9].

D'autres sources[8] définissent un problème paramétré comme un sous-ensemble  , qui contient des couples (x, k) où x est l'instance et la seconde composante k est le paramètre. Dans la suite, on utilisera  pour dénoter la valeur du paramètre correspondant à x. Des fois, pour alléger les notations, nous utiliserons aussi k pour désigner la valeur du paramètre et n pour la taille de |x|.

Étant donné une valeur de k fixée, l'ensemble des instances pour lesquelles la valeur du paramètre vaut k s'appelle une tranche (slice). Formellement, une tranche de   est un ensemble   pour un certain k.

Classe FPTModifier

Un problème paramétré   est dans la classe FPT (fixed-parameter tractable, traduit littéralement en soluble à paramètre fixé) s'il admet un algorithme qui résout le problème en temps proportionnel à  , où   est une fonction polynomiale, |x| est la taille de l'instance x, et   est une fonction quelconque calculable[10].

On espère ainsi que pour des instances x avec de petites valeurs de  ,   reste petit (même si, par exemple,   est exponentiel en  ) afin de résoudre rapidement le problème. Notez que la fonction   ne dépend que de   : on bannit des fonctions   comme  . Pour évaluer la performance d'un tel algorithme, on néglige parfois le polynôme en la taille des données, et on étend alors la notation de Landau pour écrire que l'algorithme peut être résolu en temps  .

Il existe des définitions alternatives pour la classe FPT , par exemple le temps requis peut être remplacé par  . De manière équivalente, un problème paramétré est dans la classe FPT s'il admet un noyau (kernel) (voir kernalisation).

La classe P est incluse dans FPT. De plus elle contient tous les problèmes d'optimisation de la classe NP, qui admettent un schéma d'approximation en temps polynomial : plus précisément si le problème de décision associé au problème d'optimisation est dans NP et qu'il admet un schéma d'approximation en temps polynomial, alors le problème paramétré standard (où le paramètre est égal à la valeur à optimiser) est dans FPT (Th. 1.32 dans [9]).

para-NPModifier

para-NP défini par Flum et Grohe[11], est la classe des problèmes paramétrés  pour lesquels il existe une machine de Turing non-déterministe FPT en le paramètre k[12]. Selon Flum et Grohe[9], ce n'est pas un bon candidat pour être l'analogue de la classe NP pour des problèmes paramétrés, d'où la définition de la classe W[P].

Un problème paramétré est para-NP-complet pour des réductions fpt si, et seulement si, s'il existe une union finie de tranche de   qui est NP-complète (Th. 2.14 de [9]).

Réduction FPTModifier

Un problème paramétré   se réduit à un autre problème paramétré   s'il existe une transformation  , appelée réduction fpt telle que :

  •   si et seulement si  ;
  •   est calculable par un algorithme fpt (en le paramètre   ;
  • Il existe une fonction calculable   telle que  pour tout instance x[13].

Classe XPModifier

On définit la classe XP non uniforme comme la classe des problèmes paramétrés dont chaque tranche est dans PTIME[12]. Cette classe est étrange dans le sens où elle contient des problèmes indécidables. C'est pourquoi l'on définit la classe XP dite uniforme, ou plus simplement la classe XP, qui contient les problèmes qui peuvent être résolus en temps  où f est une fonction calculable[12]. La classe a un rôle similaire en théorie de la complexité paramétrée que la classe EXPTIME en théorie de la complexité classique : le problème de savoir si M s'arrête sur le mot vide en moins de nk étapes, étant donné M est une machine de Turing déterministe, n écrit en unaire et un entier k, avec k paramètre est XP-complet (avec réductions fpt) (cf. Th. 2.25 dans [9]).

Hiérarchie WModifier

 
Trame en tissage, weft en anglais, qui a donné le nom à la hiérarchie W.

Avant de définir la hiérarchie W, définissons la classe W[P] qui est l'union de toutes les classes de la hiérarchie W. La classe W[P] être vue comme la version paramétrée de la classe NP. Selon Flum et Grohe, c'est une des classes de complexité paramétrée les plus importantes (cf. p. 45 de [9]). La lettre W vient du mot weft (terminologie en textile, trame en français) et la lettre P dans "W[P]" est pour "polynomial". La hiérarchie W[14],[15] est une suite de classes de complexité W[0], W[1], etc. dont la définition est basé sur le weft d'un circuit booléen.

Un problème paramétré est dans W[P] s'il est décidé par une machine de Turing non-déterministe en au plus f(k).p(n) étapes de calcul, avec au plus h(k) log n étapes de calcul non-déterministes, où f, h sont des fonctions calculables et p est un polynôme (n est la taille de l'entrée, et k la valeur du paramètre).

Le weft d'un circuit booléen est le nombre maximal de portes avec au moins 3 entrées sur tout chemin de la racine à une feuille. La hiérarchie W est définie comme suit. Un problème paramétré est dans W[i] si toute instance   peut être transformée (en temps FPT) en un circuit logique de weft au plus i, tel que   si et seulement si il existe une assignation des entrées qui satisfait le circuit et qui assigne 1 à au plus k entrées. On a W[0] = FPT et   pour tout  .

Le problème Bounded-CNF-SAT (étant donné une forme normale conjonctive, et k un entier, est-elle satisfaite par une assignation avec au plus k variables mises à vraies ?) est W[2]-complet[6]. Le problème Bounded-3CNF-SAT (le même problème mais restreint au forme normale conjonctive avec au plus 3 littéraux par clause, comme dans le problème 3-SAT) est par contre dans FPT. Le problème Weighted-CNF-SAT (étant donné une forme normale conjonctive, et k un entier, est-elle satisfaite par une assignation avec exactement k variables mises à vraies ?) est W[2]-complet[6]. Weighted-c-CNF-SAT est W[1]-complet pour toute constante  .

W[SAT] est l'analogue de W[P] mais des formules propositionnelles au lieu des circuits. Un problème complet pour W[SAT] est le problème :

  • entrée : une formule propositionnelle monotone (le fait de supposer monotone n'est pas important pour la dureté) phi, un entier k
  • sortie : oui, si on peut être au plus k variables à vraie pour rendre phi vraie ; non sinon.

W[1] est la restriction de W[SAT] à des formules CNF. W[2] est la restriction de W[SAT] à des conjonctions de disjontions de conjonctions de littéraux.

Hiérarchie AModifier

Il existe une autre hiérarchie, la hiérarchie A, qui est le pendant de la hiérarchie polynomiale mais en complexité paramétrée. On a A[1] = W[1].

HistoireModifier

La notion FTP (fixed-parameter tractability) a été introduite par Downey et Fellows[16]. Le prix IPEC Nerode de l'EATCS récompense les articles exceptionnels en complexité paramétrée depuis 2013.

Notes et référencesModifier

  1. (en) « On the Complexity of Database Queries », Journal of Computer and System Sciences, vol. 58, no 3,‎ , p. 407–427 (ISSN 0022-0000, DOI 10.1006/jcss.1999.1626, lire en ligne, consulté le 24 février 2018)
  2. (en) « Cours à l'ENS Lyon »
  3. a et b Voir Downey et Fellows 1999, 1.3, «The Story of Dr. O, Continued» p. 5.
  4. Michael R Fellows et Michael A Langston, « Nonconstructive advances in polynomial-time complexity », Information Processing Letters, Elsevier, vol. 26, no 3,‎ , p. 157-162
  5. Jianer Chen, Iyad A. Kanj et Ge Xia, « Improved Parameterized Upper Bounds for Vertex Cover », dans MFCS 2006, vol. 4162, (DOI 10.1007/11821069_21), p. 238-249
  6. a b et c « Fixed-Parameter Tractability - Handbook of Satisfiability », sur www.kr.tuwien.ac.at (consulté le 26 février 2018)
  7. Downey et Fellows 1999 1.7 «A distinctive Positive Toolkit»
  8. a et b « Complexité paramétrique - Cours à l'école polytechnique. »
  9. a b c d e f et g J. Flum et M. Grohe, Parameterized Complexity Theory (Texts in Theoretical Computer Science. An EATCS Series), Springer-Verlag New York, Inc., (ISBN 3540299521, lire en ligne)
  10. (en) « Parameterized model-checking problems - Stéphane Demri »
  11. (en) « Describing parameterized complexity classes », Information and Computation, vol. 187, no 2,‎ , p. 291–319 (ISSN 0890-5401, DOI 10.1016/S0890-5401(03)00161-5, lire en ligne, consulté le 13 avril 2018)
  12. a b et c Martı́n Ugarte, « An introduction to Parameterized Complexity Theory », sur Université pontificale catholique du Chili, .
  13. (en) Parameterized Complexity Theory | J. Flum | Springer (lire en ligne)
  14. Downey et Fellows 1999
  15. (en) La classe W[t sur le Complexity Zoo]
  16. Rod G. Downey et Michael R. Fellows, « Fixed-Parameter Tractability and Completeness I: Basic Results », SIAM Journal on Computing, vol. 24, no 4,‎ , p. 873–921 (ISSN 0097-5397, DOI 10.1137/S0097539792228228, lire en ligne, consulté le 13 avril 2018)

Voir aussiModifier

BibliographieModifier

  • (en) Rod Downey et M.R. Fellows, Parameterized complexity, New York, Springer, (ISBN 978-0-387-94883-6, LCCN 97022882)
  • (en) Rod Downey et M. R. Fellows, Fundamentals of Parameterized Complexity, Springer, (ISBN 978-1-4471-5559-1)
  • (en) J. Flum et M. Grohe, Parameterized Complexity Theory, Berlin, Springer, (ISBN 978-3-540-29952-3, LCCN 2005938662)
  • (en) Rolf Niedermeier, Invitation to Fixed-Parameter Algorithms, Oxford, Oxford University Press, (ISBN 978-0-19-856607-6, LCCN 2006296258)
  • (en) Marek Cygan, Fedor V. Fomin, Łukasz Kowalik, Daniel Lokshtanov, Daniel Marx, Marcin Pilipczuk, Michał Pilipczuk et Saket Saurabh, Parameterized Algorithms, , xvii+ 613 p. (ISBN 978-3-319-35702-7)
  • The Computer Journal. Volume 51, Numbers 1 and 3 (2008). Double numéro spécial sur la complexité paramétrée de 15 articles, édité par R. Downey, M. Fellows et M. Langston.

Liens externesModifier

Articles connexesModifier