En informatique, un schéma d'approximation en temps polynomial (en anglais polynomial-time approximation scheme, abrégé en PTAS) est une famille d'algorithmes d'approximation pour des problèmes d'optimisation combinatoire. On dit aussi plus simplement schéma d'approximation polynomial. Le plus souvent, les problèmes d'optimisation combinatoire considérés sont NP-difficiles.
Plusieurs variantes des PTAS existent : des définitions plus restrictives comme les EPTAS et FPTAS, ou d'autres qui reposent sur les algorithmes probabilistes comme les PRAS et FPRAS.
Définition
Un PTAS est un algorithme qui prend en arguments une instance d'un problème d'optimisation et un paramètre et qui produit, en temps polynomial, une solution qui est optimale à un facteur près (ou pour un problème de maximisation).
Par exemple, pour le problème du voyageur de commerce euclidien, un PTAS prend en entrée la donnée de n coordonnées dans le plan (ou dans un espace euclidien de dimension d) dans un espace euclidien, ainsi que le paramètre . Le PTAS produit alors un tour dont la longueur est au plus , où est la longueur du tour le plus court[1],[2].
On demande de plus que le temps d'exécution d'un PTAS soit polynomial en la taille de l'instance pour chaque fixé, mais il peut être différent pour des valeurs différentes de . Ainsi, un algorithme en temps ou même en est considéré comme un PTAS.
Variantes
Schémas déterministes
Un problème qui se pose dans la pratique avec les algorithmes PTAS est que l'exposant du polynôme peut croître très rapidement quand diminue, par exemple quand le temps est en . Une façon d'y répondre est de définir des schémas d'approximation temps polynomial dits efficaces (en anglais EPTAS pour efficient polynomial-time approximation scheme), pour lesquels on demande un temps d'exécution en pour une constante indépendante de . On est ainsi assuré que l'accroissement la taille du problème a le même effet relatif sur l'accroissement du temps de calcul, indépendamment du choisi ; la constante cachée dans le peut par contre dépendre arbitrairement de . Par exemple, la complexité d'un EPTAS peut par exemple être .
Un schéma encore plus restrictif, et utile en pratique, est le schéma d'approximation entièrement en temps polynomial (en anglais FPTAS pour fully polynomial-time approximation scheme), dans lequel l'algorithme doit être en temps polynomial à la fois en la taille du problème et en . Par exemple, la complexité d'un FPTAS peut par exemple être . Tous les problèmes de la classe FPTAS sont à complexité FPT. Un exemple de problème qui possède un FPTAS est le problème du sac à dos[réf. nécessaire].
Tout problème d'optimisation NP-complet avec une fonction d’objectif bornée polynomialement (Strongly NP-complete) ne peut avoir de solution FPTAS sauf si P=NP[3]. La réciproque n'est toutefois pas vraie : si P n'est pas égal à NP, le problème du sac-à-dos à deux contraintes n'est plus fortement NP-difficile, mais n'a pas de schéma d'approximation FPTAS même si l’objectif optimal est polynomialement bornée[4].
Sauf si P = NP, on a l'inclusion stricte FPTAS ⊊ PTAS ⊊ APX. Dans ce cas, un problème APX-difficile ne possède pas de schéma PTAS.
Une autre variante déterministe des PTAS est le schéma d'approximation en temps quasi polynomial (en anglais QPTAS pour quasi-polynomial-time approximation scheme). Un tel schéma a une complexité en temps en pour chaque fixé.
Schémas randomisés
Certains problèmes qui n'ont pas de PTAS peuvent admettre un algorithme probabiliste avec des propriétés similaires, appelé un schéma d'approximation en temps polynomial randomisé (en anglais PRAS pour polynomial-time randomized approximation scheme). Un PRAS est un algorithme qui prend en entrée une instance d'un problème d'optimisation et de comptage, et qui produit en temps polynomial une solution qui a une forte probabilité d'être optimale à un facteur près. Par convention, forte probabilité signifie une probabilité plus grande que 3/4, même si la plupart des classes de complexité est « robuste » (c'est-à-dire insensible) quant à des variations de la valeur exacte. Comme les PTAS, les PRAS doivent avoir un temps d'exécution polynomial en , mais pas forcément en ; avec les mêmes restrictions que plus haut sur le temps d'exécution en fonction de , on définit un schéma d'approximation en temps polynomial randomisé efficace ou EPRAS similaire aux EPTAS, et un schéma d'approximation randomisé entièrement en temps polynomial ou FPRAS similaire aux FPTAS[3]. Mark Jerrum et Alistair Sinclair ont été distingués par le prix Gödel en 1996 pour avoir prouvé que le calcul du nombre de couplages d'un graphe bipartite et celui du permanent d'une matrice à coefficients positifs pouvaient être réalisés par un algorithme de la classe FPRAS[5].
Notes et références
- Sanjeev Arora, « Polynomial-time Approximation Schemes for Euclidean TSP and other Geometric Problems », Journal of the ACM, vol. 45, no 5, , p. 753–782.
- Sanjeev Arora a reçu le prix Gödel en 2010 pour le schéma d'approximation polynomiale du problème du voyageur de commerce dans le cas euclidien.
- (en) Vijay Vazirani, Approximation algorithms, Springer Verlag, 2001 (puis 2003), 380 p. (ISBN 978-3-540-65367-7) p. 294–295.
- Hans Kellerer, Ulrich Pferschy et David Pisinger, Knapsack Problems, Springer, 2010 (réimpression en softcover de la version de 2004), 568 p. (ISBN 978-3-642-07311-3).
- (en) Alistair Sinclair et Mark Jerrum, « Approximate counting, uniform generation and rapidly mixing Markov chains », Information and Computation, vol. 82, no 1, , p. 93–133 (ISSN 0890-5401, DOI 10.1016/0890-5401(89)90067-9, lire en ligne, consulté le )
Articles connexes
Liens externes
- (en) La classe APX sur le Complexity Zoo
- (en) La classe PTAS sur le Complexity Zoo
- (en) La classe EPTAS sur le Complexity Zoo
- (en) La classe FPTAS sur le Complexity Zoo
- Pierluigi Crescenzi, Viggo Kann, Magnús Halldórsson, Marek Karpinski, et Gerhard Woeginger, A compendium of NP optimization problems. Une liste de problèmes d'optimisation de la classe NP qui possèdent des schémas.