Théorème de Savitch

Théorème de Savitch Dans la théorie de la complexité computationnelle, Théorème de Savitch, démontré par Walter Savitch dans 1970, donne une relation entre la complexité de l'espace déterministe et non déterministe. Il indique que pour toute fonction {aileron de style d'affichage Omega (Journal(n))} , {style d'affichage {mathématiques {NSPACE}}la gauche(volé(pas vrai)droit)sous-ensemble {mathématiques {DSPACE}}la gauche(volé(pas vrai)^{2}droit).} Autrement dit, si une machine de Turing non déterministe peut résoudre un problème en utilisant {style d'affichage f(n)} espace, une machine de Turing déterministe peut résoudre le même problème dans le carré de cette borne d'espace.[1] Bien qu'il semble que le non-déterminisme puisse produire des gains exponentiels dans le temps, ce théorème montre qu'il a un effet nettement plus limité sur l'encombrement.[2] Contenu 1 Preuve 2 Corollaires 3 Voir également 4 Remarques 5 Références 6 External links Proof The proof relies on an algorithm for STCON, le problème de déterminer s'il existe un chemin entre deux sommets dans un graphe orienté, qui coule dans {style d'affichage Oleft((journal n)^{2}droit)} l'espace pour {displaystyle n} sommets. L'idée de base de l'algorithme est de résoudre récursivement un problème un peu plus général, tester l'existence d'un chemin d'un sommet s à un autre sommet t qui utilise au plus k arêtes, où k est un paramètre donné en entrée de l'algorithme récursif. STCON peut être résolu à partir de ce problème en définissant k sur n. Pour tester un chemin k-edge de s à t, on peut tester si chaque sommet u peut être le milieu du s-t chemin, en recherchant récursivement des chemins de la moitié de la longueur de s à u et de u à t. Utiliser un pseudo-code (en syntaxe Python) nous pouvons exprimer cet algorithme comme suit: def k_edge_path(s, t, k) -> bool: """k est initialement égal à n (qui est le nombre de sommets)""" si k == 0: return s == t if k == 1: revenir (s, t) in edges for u in vertices: si k_edge_path(s, tu, sol(k / 2)) et k_edge_path(tu, t, plafond(k / 2)): return True return False This search calls itself to a recursion depth of {style d'affichage O(journal n)} niveaux, dont chacun nécessite {style d'affichage O(journal n)} bits pour stocker les arguments de la fonction et les variables locales à ce niveau: k et tous les sommets (s, t, tu) exiger {style d'affichage O(journal n)} bits chacun. La complexité totale de l'espace auxiliaire est donc {style d'affichage Oleft((journal n)^{2}droit)} .[Noter 1] Bien que décrit ci-dessus sous la forme d'un programme dans un langage de haut niveau, le même algorithme peut être implémenté avec le même espace asymptotique borné sur une machine de Turing.
Pour voir pourquoi cet algorithme implique le théorème, considérer ce qui suit. Pour n'importe quelle langue {style d'affichage Lin {mathématiques {NSPACE}}(F(n))} , il y a une machine de Turing {style d'affichage M} qui décide {displaystyle L} dans l'espace {style d'affichage f(n)} . Supposons w.l.o.g. l'alphabet est un alphabet binaire {style d'affichage {0,1}} (à savoir. {style d'affichage Lsubseteq {0,1}^{*}} ). Pour tout mot d'entrée {style d'affichage xin {0,1}^{*}} , il existe un graphe orienté {style d'affichage G_{X}^{M}} dont les sommets sont les configurations de {style d'affichage M} lors de l'exécution sur l'entrée {style d'affichage x} . Il peut y avoir une infinité de telles configurations; par exemple. lorsque {style d'affichage M} continue d'écrire un symbole sur la bande et de déplacer la tête vers la droite en boucle, à l'infini. Les configurations deviennent alors arbitrairement grandes. Cependant, nous savons qu'au plus {style d'affichage(pas vrai)} l'espace est nécessaire pour décider si {style d'affichage xin L} , donc on ne s'intéresse qu'aux configurations de taille au maximum {style d'affichage(pas vrai)} ; appeler une telle configuration admissible. Il existe un nombre fini de configurations admissibles; à savoir {style d'affichage 2 ^{Oleft(F(n)droit)}} . Par conséquent, le sous-graphe induit {style d'affichage [G_{X}^{M}]} de {style d'affichage G_{X}^{M}} contenant (exactement) les configurations admissibles a {style d'affichage 2 ^{Oleft(F(n)droit)}} sommets. Pour chaque entrée {style d'affichage xin {0,1}^{n}} , {style d'affichage [G_{X}^{M}]} a un chemin de la configuration de départ à une configuration d'acceptation si et seulement si {style d'affichage xin L} . Ainsi, en décidant de la connectivité dans {style d'affichage [G_{X}^{M}]} , nous pouvons décider d'appartenir à {style d'affichage x} dans {displaystyle L} . Par l'algorithme ci-dessus, cela peut être fait de manière déterministe dans l'espace {style d'affichage Oleft(la gauche(journal 2^{Oleft(F(n)droit)}droit)^{2}droit)=Ogauche(volé(pas vrai)^{2}droit)} ; Par conséquent {displaystyle L} est dans {style d'affichage {mathématiques {DSPACE}}la gauche(volé(pas vrai)^{2}droit)} .
Puisque cela vaut pour tout {aileron de style d'affichage Omega (journal n)} et tout {style d'affichage Lin {mathématiques {NSPACE}}la gauche(volé(pas vrai)droit)} , on obtient l'énoncé du théorème: Pour toutes les fonctions {aileron de style d'affichage Omega (journal n)} , {style d'affichage {mathématiques {NSPACE}}la gauche(volé(pas vrai)droit)sous-ensemble {mathématiques {DSPACE}}la gauche(volé(pas vrai)^{2}droit)} . ^ Notez qu'il peut y avoir jusqu'à {displaystyle n^{2}} arêtes dans le graphe d'entrée, chaque arête consommant {displaystyle 2log n} espace, d'où la somme (c'est à dire., pas seulement auxiliaire) la complexité de l'espace est {style d'affichage O(n^{2}journal n)} (et cette limite est serrée). Cependant, les arêtes peuvent être représentées implicitement, via la machine de Turing non déterministe sous inspection. Corollaries Some important corollaries of the theorem include: PSPACE = NPSPACE Cela découle directement du fait que le carré d'une fonction polynomiale est toujours une fonction polynomiale. On pense qu'une relation similaire n'existe pas entre les classes de complexité temporelle polynomiale, P et NP, même si c'est encore une question ouverte. NL ⊆ L2 STCON est NL-complet, et donc toutes les langues de NL sont également dans la classe de complexité {style d'affichage {mathématiques {Couleur {Bleu}L}}^{2}={mathématiques {DSPACE}}la gauche(la gauche(se connecter correctement)^{2}droit)} . See also Exponential time hypothesis Immerman–Szelepcsényi theorem Notes ^ Arora & Barak (2009) p.86 ^ Arora & Barak (2009) p.92 Références Arora, Sanjeev; Barack, Boaz (2009), Complexité informatique. Une approche moderne, la presse de l'Universite de Cambridge, ISBN 978-0-521-42426-4, Zbl 1193.68112 Papadimitriou, Christos (1993), "Section 7.3: La méthode d'accessibilité", Complexité informatique (1st ed.), Addison Wesley, pp. 149–150, ISBN 0-201-53082-1 Savitch, Walter J.. (1970), "Relations entre les complexités de bande non déterministes et déterministes", Journal des sciences informatiques et des systèmes, 4 (2): 177–192, est ce que je:10.1016/S0022-0000(70)80006-X, hdl:10338.dmlcz/120475, Michael (1997), "Section 8.1: Théorème de Savitch", Introduction à la théorie du calcul, Publication SWP, pp. 279–281, ISBN 0-534-94728-X External links Lance Fortnow, Fondements de la complexité, Leçon 18: Théorème de Savitch. Accédé 09/09/09. Richard J.. Lipton, Théorème de Savitch. Donne un compte rendu historique sur la façon dont la preuve a été découverte. Catégories: Théorie de la complexité structurelleThéorèmes de la théorie de la complexité computationnelle
Si vous voulez connaître d'autres articles similaires à Théorème de Savitch vous pouvez visiter la catégorie Structural complexity theory.
Laisser un commentaire