Les langages foliaires sont une belle façon de définir uniformément de nombreuses classes de complexité. La plupart des classes de complexité sont généralement spécifiées par un modèle de calcul (par exemple, TM déterministe / randomisé) et une ressource liée (temps logarithmique, espace poly, etc.). Cependant, dans la formulation du langage feuille, il n'y a qu'un seul modèle de calcul, et la classe est spécifiée en donnant son langage feuille.
Les détails sont trop longs à expliquer, je vais donc diriger les lecteurs intéressés vers l'une de ces deux enquêtes:
- Caractérisations uniformes des classes de complexité par H Vollmer
- Cours de langue des feuilles par KW Wagner
Les deux enquêtes expliquent très bien la formulation dans les premières pages.
Dans l'enquête de Wagner, il dit «qu'il s'avère que pratiquement toutes les classes de complexité considérées jusqu'à présent peuvent être décrites par des langages foliaires».
Ma question concerne cette déclaration. Je sais qu'il y a des classes pour lesquelles nous ne connaissons pas de caractérisation du langage feuille, donc cela signifie que les classes n'ont pas nécessairement une telle caractérisation, ou nous ne l'avons pas trouvée.
Nous attendons-nous à ce que chaque classe de complexité (disons entre P et PSPACE) ait une caractérisation du langage feuille? (Limitons-nous aux classes de complexité "naturelles".) Y a-t-il un résultat de ce genre dans la littérature?
(Une question connexe à laquelle je serais heureux de connaître la réponse: existe-t-il une méthode (heuristique) pour proposer un langage feuille pour une classe donnée?)
EDIT: Suresh souligne qu'il existe une courte définition des langues foliaires dans l'article Wikipedia. Je le copie ci-dessous.
Plusieurs classes de complexité sont généralement définies en termes de machine de Turing non déterministe en temps polynomial, où chaque branche peut accepter ou rejeter, et la machine entière accepte ou rejette en fonction des conditions des branches. Par exemple, une machine de Turing non déterministe accepte si au moins une branche accepte et rejette uniquement si toutes les branches rejettent. Une machine de Turing non déterministe, d'autre part, n'accepte que si toutes les branches acceptent et rejette si une branche rejette. De nombreuses classes peuvent être définies de cette manière.