Aller au contenu

Langage creux

Un article de Wikipédia, l'encyclopédie libre.
Ceci est la version actuelle de cette page, en date du 19 juin 2021 à 13:55 et modifiée en dernier par Golmote (discuter | contributions). L'URL présente est un lien permanent vers cette version.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

En théorie de la complexité, un langage creux est un langage où le nombre de mots de longueur n est borné par un polynôme en n. Ils sont utiles dans l'étude de la classe NP[1]. L'adjectif creux illustre bien un tel langage : sur un alphabet à deux lettres, comme il y a 2 n mots de longueur n, alors s'il n'y a qu'un nombre polynomial de mots de longueur n, cela signifie que la proportion de mots de longueur n dans un langage creux tend vers 0, quand n tend vers l'infini.

Tous les langages unaires (i.e. les langages dont les mots s'écrivent sur une seule lettre) sont creux. Le langage des mots sur l'alphabet {0, 1} où il y a exactement k occurrences de 1 est un langage creux.

Lien avec les classes de complexité

[modifier | modifier le code]
  • Si tout langage creux est coNP-complet, alors P = NP.
  • Si tout langage creux est NP-complet, alors P = NP (Théorème de Mahaney).
  • S'il existe un langage creux P-complet, alors L = P.

Notes et références

[modifier | modifier le code]
  1. (en) Steven Fortune, « A Note on the Sparse Complete Sets », Technical Report, Cornell University,‎ (lire en ligne, consulté le )