Démontrer qu'une fonction booléenne calculable en T (n) par une machine RAM est en DTIME (T (n) ^ 2)

10

La question est l'exercice 1.9 du livre d'Arora-Barak Computational Complexity - A Modern Approach :


Définissez une machine RAM Turing comme une machine Turing disposant d'une mémoire à accès aléatoire. Nous formalisons ceci comme suit: La machine a un tableau infini A qui est initialisé à tous les blancs. Il accède à ce tableau comme suit. L'une des bandes de travail de la machine est désignée comme bande d'adresse. De plus, la machine a deux symboles alphabétiques spéciaux dénotés par R et W et un état supplémentaire que nous dénotons par q_access. Chaque fois que la machine entre q_access, si sa bande d'adresse contient 'i'R (où' i 'dénote la représentation binaire de i) alors la valeur A [i] est écrite dans la cellule à côté du symbole R. Si sa bande contient 'i'Wa (où a est un symbole dans l'alphabet de la machine), alors A [i] est réglé sur la valeur a.

Montrer que si une fonction booléenne est calculable dans le temps (pendant un certain temps constructible T ) par une RAM TM, alors elle est dans D T I M E ( T ( n ) 2 ) .fT(n)TDTIME(T(n)2)


La solution triviale en utilisant une paire supplémentaire d'enregistrement sur bande (adresse, valeur) se révèle être en , car cette bande peut être de taille O ( T ( n ) 2 ) avec O ( T ( n ) ) paires tandis que l'adresse de chaque paire peut être de taille O ( T ( n ) ) .DTIME(T(n)3)O(T(n)2)O(T(n))O(T(n))

cc
la source
Comment connaissez-vous la limite de la taille de l'adresse? Ma première écriture ne pourrait-elle pas être à ? Et si vous pouvez le lier à T ( n ) , alors la taille de l'adresse est log ( T ( n ) ) , pas T ( n ) . 22T(n)T(n)log(T(n))T(n)
Xodarap
1
Étant donné que l'adresse doit être écrite dans la bande par une machine de Turing à temps , la taille (c'est-à-dire la longueur de chaîne) de l'adresse ne peut pas dépasser O ( T ( n ) ) , l'espace d'adressage accessible est O ( 2 T ( n ) ) . T(n)O(T(n))O(2T(n))
cc
3
Notez que Arora et Barak demandent explicitement dans leur introduction d'autres pas publier des réponses à leurs questions. Voir aussi la politique sur les questions de devoirs .
Kaveh
Désolé. J'étudie le livre par moi-même et je m'inquiète de cette question. Je ne sais pas si une telle simulation existe vraiment ou si c'est juste une faute de frappe. Si vous connaissez la réponse, envoyez-moi un e-mail en privé à [email protected], et je fermerai ensuite la question. O(T(n)2)
cc
Vous pouvez en trouver plus dans le premier chapitre du manuel d'informatique théorique.
Kaveh

Réponses:

2

Vous écrivez dans les commentaires :

T(n)O(T(n))

Pouvez-vous utiliser un argument similaire pour améliorer les limites

O(T(n)2)O(T(n))O(T(n))

vous mentionnez dans la question? Vous devrez peut-être vous rappeler quelles opérations sont possibles en temps constant sur la RAM, c'est-à-dire en utilisant la définition précise que les auteurs utilisent.

Raphael
la source
J'espère que cet indice est assez vague pour respecter les souhaits des auteurs du livre mais aussi quelque peu utile. (Heuristique: je dirais autant à un élève si le problème a été donné comme exercice. Probablement pas à un examen, cependant.)
Raphael