Réduction en espace logarithmique

En théorie de la complexité, une réduction en espace logarithmique est une réduction calculable par une machine de Turing disposant d'un espace de travail logarithmique.

Définition

modifier

La machine de Turing utilisée pour une réduction en espace logarithmique est constituée de trois rubans au lieu d'un : un ruban d'entrée (en lecture seule), un ruban de travail (de taille logarithmique en la taille du ruban d'entrée), et un ruban de sortie (en écriture seule et tel que la tête d'écriture ne peut écrire deux fois sur une même case). Conceptuellement, une réduction en espace logarithmique est une réduction ne nécessitant qu'un nombre constant de pointeurs sur l'entrée.

Propriétés

modifier

Le nombre de configurations possibles de la machine de turing en espace logarithmique est polynomialement bornée par la taille de l'entrée, par conséquent, une réduction en espace logarithmique est aussi une réduction en temps polynomial. La réciproque est probablement fausse; en effet, tout langage non trivial de P se réduit en temps polynomial à tout autre langage non trivial de P; cependant, L et NL sont inclus dans P, et une réduction en espace logarithmique d'un langage NL-complet à un langage de L impliquerait NL = L.

À ce jour, L = NL est une question ouverte. De même, nous ne savons pas si l'utilisation de réduction en espace logarithmique (au lieu de réduction en temps polynomial) définit le même ensemble de problèmes NP-complets.

S'il existe des notions de réduction plus faibles encore que les réductions en espace logarithmique, elles sont peu utilisées en pratique car les classes de complexité incluses dans L sont peu étudiées.

Notes et références

modifier

Bibliographie

modifier