Complexité paramétrée
En informatique, et plus précisément en algorithmique, la complexité paramétrée 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. Les algorithmes FPT sont utilisés pour résoudre des problèmes d'optimisation, en algorithmique des graphes, en intelligence artificielle, en bio-informatique...
Sommaire |
[modifier] Algorithme FPT
Un algorithme est dit FPT en un paramètre
(fixed-parameter tractable, traduit littéralement en soluble à paramètre fixé) s'il permet de résoudre un problème paramétré par
en temps proportionnel à
, où
est une fonction polynomiale en la taille des données du problème, et
est une fonction quelconque.
On espère ainsi que pour de petites valeurs de
,
restera petit (même si exponentiel en
) et on pourra résoudre rapidement le problème. L'exponentielle portant sur
et pas sur la taille des données du problème, c'est cette fonction
qu'on va tenter d'optimiser avec l'approche de complexité paramétrée. Ainsi, pour évaluer la performance d'un algorithme FPT, 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
.
Par exemple, il est possible de résoudre le problème de couverture des sommets d'un graphe par un algorithme FPT en temps
, ou plus précisément
.
[modifier] Arbre de recherche borné
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.
[modifier] Références
- (en) Rod Downey, M. Fellows, Parameterized complexity, New York, Springer, 1999, relié (ISBN 978-0-387-94883-6) (LCCN 97022882) [lire en ligne]
- (en) Flum, J., Grohe, M., Parameterized Complexity Theory, Berlin, Springer, 2006 (ISBN 978-3-540-29952-3) (LCCN 2005938662) [lire en ligne]
- (en) Rolf Niedermeier, Invitation to Fixed-Parameter Algorithms, Oxford, Oxford University Press, 2006 (ISBN 978-0-19-856607-6) (LCCN 2006296258) [lire en ligne]
- 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.