Théorème d'accélération linéaire

Le théorème d'accélération linéaire ou de speedup linéaire est un théorème de théorie de la complexité, un domaine de l'informatique théorique. On peut en fait distinguer deux théorèmes, l'un concernant les classes de complexité en espace et l'autre les classes de complexité en temps. Tous deux ont pour conséquence de regrouper les mesures de complexité qui ne diffèrent que d'une constante, et justifie donc la notation grand O utilisée dans le domaine.

Le théorème de d'accélération en temps est dû à Juris Hartmanis et Richard Stearns[1].

Énoncés

Théorème d'accélération en temps

Pour toute machine de Turing T {\displaystyle T} , calculant une fonction g {\displaystyle g} en temps f ( n ) {\displaystyle f(n)} (où n {\displaystyle n} est la taille de l'entrée) et toute constante 1 > c > 0 {\displaystyle 1>c>0} , il existe une machine de Turing T {\displaystyle T'} calculant g {\displaystyle g} en temps 2 + n + c f ( n ) {\displaystyle 2+n+cf(n)} [2].

Théorème d'accélération en espace

Pour toute machine de Turing T {\displaystyle T} , calculant une fonction g {\displaystyle g} en espace f ( n ) {\displaystyle f(n)} (où n {\displaystyle n} est la taille de l'entrée) et toute constante 1 > c > 0 {\displaystyle 1>c>0} , il existe une machine de Turing T {\displaystyle T'} calculant g {\displaystyle g} en espace c f ( n ) {\displaystyle cf(n)} .

Idée de la démonstration

L'idée principale de la preuve est de coder plusieurs lettres en une seule : en faisant des groupes de lettres on peut utiliser moins de place (puisque seul compte le nombre de cases utilisées et pas la taille des lettres) et « sauter » de groupe de lettres en groupe de lettres, ce qui prend moins de temps. En faisant des groupes de 1/c lettres on obtient les résultats annoncés.

L'idée est simplement que plusieurs calculs peuvent être faits en une étape de calcul. Ceci est comparable au changement de taille des registres de processeur de 32 à 64 bits[3].

Conséquences

En théorie de la complexité, les constantes multiplicatives ne sont pas prises en compte.

Notes et références

  1. (en) Sanjeev Arora et Boaz Barak, Computational Complexity : A Modern Approach, Cambridge University Press, (ISBN 0-521-42426-7)
  2. (en) Christos Papadimitriou, Computational Complexity, Addison-Wesley, (ISBN 978-0-201-53082-7) chapitre 2.4. Linear speedup
  3. Sylvain Perifel, Complexité algorithmique, Ellipses, , 432 p. (ISBN 9782729886929, lire en ligne), chap. 2.1.1 (« Classes de complexité en temps »), Un peu de recul, p. 33.
v · m
Théorie de la complexité (informatique théorique)
Classes de complexité
(liste)
Classes classiques
Classes randomisées et quantiques
Autres
Classes de fonctions calculables
Hiérarchies
Familles de classes
Théorèmes et outils
Théorèmes structurels
Outils et réductions
Approches non-standard
  • icône décorative Portail de l'informatique théorique