Loading AI tools
classe de complexité des algorithmes De Wikipédia, l'encyclopédie libre
La classe P, aussi noté parfois PTIME ou DTIME(nO(1)), est une classe très importante de la théorie de la complexité, un domaine de l'informatique théorique et des mathématiques. Par définition, un problème de décision est dans P s'il est décidé par une machine de Turing déterministe en temps polynomial par rapport à la taille de l'entrée. On dit que le problème est décidé en temps polynomial.
Les problèmes dans P sont considérés comme « faisables » (feasible en anglais), faciles à résoudre (dans le sens où on peut le faire relativement rapidement). C'est la thèse de Cobham émise par le scientifique américain Alan Cobham[1],[2]. René Lalement attribue cette thèse à Cook[3]. La classe P est incluse dans la classe NP, conduisant à l'un des grands problèmes ouverts de la théorie de la complexité, à savoir : P est-il égal à NP ?
Un problème est dans P s'il existe un algorithme qui le décide en temps polynomial. Citons :
Aussi, parfois la preuve de l'appartenance à P, qui se fait généralement par la découverte d'un algorithme polynomial, a demandé des années de recherche :
La classe P peut être définie sur des problèmes algorithmiques généraux pour lesquels il existe une solution en temps polynomial, et pas seulement les problèmes de décision[4], auquel cas , mais , où DEC est la classe des problèmes de décision.
On note TIME(t(n)) la classe des problèmes de décision qui peuvent être décidés en temps de l'ordre de grandeur de t(n) sur une machine déterministe (où n est la taille de l'entrée). Alors par définition
P peut aussi être défini à l'aide de familles uniformes de circuits booléens. Un langage L est dans P si, et seulement si, il existe une famille de circuits booléens , uniforme en temps polynomial (c'est-à-dire qu'il existe une machine de Turing déterministe qui produit sur l'entrée 1n) telle que
La définition par circuits peut être affaiblie en utilisant une famille uniforme en espace logarithme et donne toujours une définition équivalente pour la classe P.[réf. nécessaire] Si on relâche l'hypothèse d'uniformité, on définit la classe P/poly.
On a l'inclusion évidente P NP, mais l'une des grandes questions ouvertes de l'informatique théorique est le problème P = NP ?.
On peut placer P dans la hiérarchie des langages, classés selon l'espace requis : elle contient NL (la classe des problèmes pouvant être résolus sur une machine non-déterministe en espace logarithmique) et est contenu par PSPACE (la classe des problèmes pouvant être résolus en espace polynomial). Les inclusions sont les suivantes (on ne sait pas si elles sont strictes) :
Par ailleurs, P est le premier niveau de la hiérarchie polynomiale. Et P est incluse dans les classes polynomiales sur des machines plus puissantes (quantiques ou utilisant du hasard par exemple), comme ZPP, BPP et BQP.
Un problème de décision A est dit P-complet, ou complet pour la classe P, s'il est dans la classe P et si tout problème de la classe P peut être réduit à A en espace logarithmique (c'est-à-dire que la traduction d'une instance x du problème à une instance de A peut s'effectuer en utilisant un espace O(log |x|)). Les problèmes suivants sont P-complets.
S'il existe un langage creux qui est P-complet, alors P = LOGSPACE[13].
On parle dans certains cas, d'algorithmes en temps fortement ou faiblement polynomial. Cette distinction existe pour les problèmes dont l'entrée contient des entiers. On parle de temps faiblement polynomial si les entiers doivent être donnés en écriture unaire (c'est-à-dire que le nombre n compte pour une taille n) pour avoir un temps polynomial, et on parle de temps fortement polynomial si même l'écriture compacte (n a taille log(n)) donne une complexité polynomiale.
(en) Sanjeev Arora et Boaz Barak, Computational Complexity : A Modern Approach, Cambridge University Press, (ISBN 0-521-42426-7), chap. 1 (« The computational model —and why it doesn’t matter »)
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.