Une séparation explicite entre constructibilité temporelle et constructibilité spatiale?

10

Montrer une fonction qui est constructible dans l'espace mais pas dans le temps.f(n)

Ce problème est-il lié à une éventuelle séparation entre les classes de complexité DTIME (f (n)) et SPACE (f (n))?

Tian Liu
la source
3
en.wikipedia.org/wiki/Constructible_function Pour autant que je sache, cette question n'est pas liée à TIME (f (n)) vs SPACE (f (n)), mais notez que ces deux classes sont connues pour être différentes. Recherchez les articles "On Time Versus Space", "On Time Versus Space II", "On Time Versus Space III"
Ryan Williams
Une observation rapide: je pense que le problème revient à demander si DTIME (f (n)) )TALLY et SPACE (f (n)) ∩TALLY peut être différent pour une fonction f (n) constructible dans l'espace, où TALLY est la classe de langues qui sont des sous-ensembles de 1 ^ *.
Tsuyoshi Ito
Oups, ils peuvent ne pas être équivalents. Voici une preuve d'une direction. S'il existe une langue L = {1 ^ n | n∈S} ∈ TALLY∩ (ESPACE (f (n)) ∖ DTIME (f (n))) pour une fonction de construction d'espace f (n), puis f (n) et f (n) + χ_S (n ) (où χ_S (n) est la fonction caractéristique de S) sont constructibles dans l'espace mais pas les deux sont constructibles dans le temps, et donc au moins l'un d'entre eux est une fonction constructible dans l'espace mais pas constructible dans le temps.
Tsuyoshi Ito
2
Merci à Ryan, par votre commentaire, je sais que TIME (f (n)) est contenu dans SPACE (f (n) / log f (n)) par Hopcroft et al, et que ce dernier est correctement contenu dans SPACE (f (n )) par le théorème de la hiérarchie spatiale.
Tian Liu
Grâce à Tsuyoshi, des idées très intelligentes, si f (n) et f (n) + χ_S (n) sont constructibles dans le temps, alors nous pouvons décider si n∈S dans au plus f (n) +1 fois, donc L ALLTALLY ∩ DTIME (f (n)), une contradiction. mais peut-on appeler vos constructions "explicites"? lequel n'est pas constructible dans le temps, f (n) ou f (n) + χ_S (n)? par "explicite" si je veux dire que nous pouvons décider de la valeur f (n) pour tout n, alors votre construction est explicite.
Tian Liu

Réponses:

6

Une fonction est constructible dans le temps s'il existe une machine de Turing M qui, sur l'entrée 1 n , calcule la fonction x T ( | x | ) dans le temps O ( T ( n ) ) .T:NNM1nxT(|x|)O(T(n))

Une fonction est constructible dans l'espace s'il existe une machine de Turing M qui, sur l'entrée 1 n , calcule la fonction x S ( | x | ) dans l'espace O ( S ( n ) ) .S:NNM1nxS(|x|)O(S(n))

Certains textes exigent que les fonctions constructibles temps / espace ne soient pas décroissantes. Certains textes nécessitent que les fonctions constructibles temporelles satisfassent , et les fonctions constructibles spatiales satisfassent S ( n ) log n . Certains textes n'utilisent pas la notation O ( ) dans la définition.T(n)nS(n)lognO()

ff(n)lognf(n)=o(n)

Le problème de constructibilité n'est pas directement lié à une éventuelle séparation entre les classes de complexité DTIME (f (n)) et SPACE (f (n)). Cependant, l'énoncé des théorèmes de la hiérarchie du temps et de l'espace incorpore la constructibilité. Par exemple:

fgf(n)logf(n)=o(g(n))DTIME(f(n))DTIME(g(n))

Voir le livre d'Arora & Barak ou celui de Papadimitriou pour plus d'informations. (Ce dernier utilise le terme «fonction de complexité appropriée» pour désigner celle qui est à la fois constructible dans le temps et dans l'espace.)

MS Dousti
la source
Merci. Je préfère la définition selon laquelle une fonction est constructible dans le temps / l'espace s'il existe une machine de Turing qui fonctionne exactement à ce pas / carrés de bande. Bien sûr, par les théorèmes d'accélération linéaire temps / espace, cela équivaut à vos définitions / manuels.
Tian Liu
Sadeq, vos définitions de «constructible dans le temps» et de «constructible dans l'espace» sont identiques mot à mot. Voulez-vous dire que ce ne sont que deux noms différents pour exactement le même concept? Sinon, vous devriez peut-être corriger vos définitions.
Yitz
Ce n'est qu'une faute de frappe.
Tsuyoshi Ito
Désolé Yitz. J'ai corrigé la faute de frappe.
MS Dousti
4

f(n)=logn1nO(logn)O(logn)

Mohammad Al-Turkistany
la source
Merci au commentaire et à la réponse. Mais pouvez-vous montrer une fonction f (n) qui est au moins linéaire, c'est-à-dire f (n)> = n, pour la séparation? Il semble qu'une fonction constructible dans le temps ne puisse pas être inférieure à n pour une raison apparente: avoir à lire tous les bits d'entrée, sinon un argument adverse peut montrer que la fonction n'est pas correctement calculée.
Tian Liu
f(n)=n
f(n)=n+1
2

EXPTIME=EXPSPACEEXPSPACECOMPLETELEXPSPACEL{0,1}kNLM2nk

f(n)={8n+2if (first logn+1k bits of bin(n))L8n+1else

2nffL

Cette réponse utilise la même idée.

David G
la source