En théorie de la complexité, la hiérarchie polynomiale est une hiérarchie de classes de complexité qui étend la notion de classes P, NP, co-NP. La classe PH est l'union de toutes les classes de la hiérarchie polynomiale.
Il existe plusieurs définitions équivalentes des classes de la hiérarchie polynomiale.
On peut définir la hiérarchie à l'aide des quantificateurs universel () et existentiel (). Tout d'abord, pour tout polynôme , et tout langage , on définit
c'est-à-dire que l'ensemble contient exactement l'ensemble des mots pour lesquels il existe un mot de taille polynomiale en la longueur de x tel que le mot est dans . Intuitivement, le mot joue le rôle d'un certificat pour , certificat relativement petit par rapport à . De la même façon on définit
On étend ces définitions aux classes de langages
Maintenant, on peut définir les classes de la hiérarchie polynomiale par récurrence de la façon suivante :
En particulier, et .
La hiérarchie polynomiale est également définissable à l'aide de machine de Turing avec oracle. dénote la classe des problèmes pouvant être décidés par des machines de complexité augmentées d'un oracle de complexité .
On pose
Puis pour tout i ≥ 0 :
La hiérarchie polynomiale peut se définir à l'aide de machines de Turing alternantes. est la classe des langages décidés par une machine de Turing alternante en temps polynomial, dans laquelle toute exécution est composée de i suites de configurations de même type (existentielles ou universelles), la première suite ne contenant que des configurations existentielles. La définition de est similaire mais les configurations dans la première suite sont universelles.
Savoir si une formule de la logique propositionnelle est minimale, c'est-à-dire s'il n'existe pas de formules plus courtes équivalentes, est un problème algorithmique dans .
Une autre propriété importante, interne à la hiérarchie polynomiale, est la suivante : , ce qui signifie que si à un niveau deux classes sont égales, alors toutes les classes « au-dessus » sont égales.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
En informatique théorique, plus précisément en théorie de la complexité, P/poly est la classe de problèmes de décision décidés par une famille de circuits booléens de tailles polynomiales. Cette classe a été introduite par Karp et Lipton en 1980. Cette classe est importante, car comme P est incluse dans P/poly, si on démontre que NP ⊈ P/poly, alors on résout le problème ouvert P est différent de NP. Il y a deux définitions équivalentes, la première donnée avec le modèle de calcul des circuits booléens, l'autre avec des machines de Turing.
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).
En informatique théorique, et notamment en théorie de la complexité, un problème complet pour une classe de complexité est un problème de décision qui fait partie des problèmes les plus difficiles à résoudre de cette classe. En ce sens, il est un représentant de la classe. C'est une notion centrale en complexité. Elle permet notamment d'établir des inclusions entre les classes en ne considérant qu'un seul problème. Un problème p est dit difficile pour une classe C pour un certain type de réduction s'il existe une réduction de ce type, depuis n'importe quel problème de la classe vers p.
L'objectif de ce cours est d'introduire les étudiants à la pensée algorithmique, de les familiariser avec les fondamentaux de l'Informatique et de développer une première compétence en programmation (
After introducing the foundations of classical and quantum information theory, and quantum measurement, the course will address the theory and practice of digital quantum computing, covering fundament
Introduit la complexité computationnelle, les problèmes de décision, la complexité quantique et les algorithmes probabilistes, y compris les problèmes dures au NP et les problèmes complets au NP.
Explore la décomposition dans la programmation en évaluant les expressions et en ajoutant de nouvelles formes, en mettant l'accent sur les solutions orientées objet et les compromis impliqués.
We discuss two extensions to a recently introduced theory of arrays, which are based on considerations coming from the model theory of power structures. First, we discuss how the ordering relation on the index set can be expressed succinctly by referring t ...
Elsevier Science Inc2024
In this thesis, we give new approximation algorithms for some NP-hard problems arising in resource allocation and network design. As a resource allocation problem, we study the Santa Claus problem (also known as the MaxMin Fair Allocation problem) in which ...
EPFL2023
,
Witness encryption is a cryptographic primitive which encrypts a message under an instance of an NP language and decrypts the ciphertext using a witness associated with that instance. In the current state of the art, most of the witness encryption construc ...