Combien de temps pour reconnaître les palindromes dans l'espace logarithmique?

20

Il est bien connu que les palindromes peuvent être reconnus en temps linéaire sur des machines de Turing à bandes, mais pas sur des machines de Turing à bande unique (auquel cas le temps nécessaire est quadratique). L'algorithme de temps linéaire utilise une copie de l'entrée et utilise donc également un espace linéaire.2

Peut-on reconnaître des palindromes en temps linéaire d'une machine de Turing multitape, en utilisant uniquement un espace logarithmique? Plus généralement, quel type de compromis espace-temps est connu pour les palindromes?

Bruno
la source

Réponses:

22

En utilisant des séquences croisées ou la complexité de la communication, il est simple de dériver le compromis pour une machine séquentielle de Turing en utilisant le temps et l'espace .O ( T ( n ) ) O ( S ( n ) )T(n)S(n)=Ω(n2)O(T(n))O(S(n))

Ce résultat a été obtenu pour la première fois par Alan Cobham en utilisant des séquences de croisements dans le document The problem problem for the set of perfect squares paru au SWAT (plus tard FOCS) 1966.

Kristoffer Arnsfelt Hansen
la source
25

Vous pouvez utiliser le même argument utilisé pour prouver la limite de temps sur une seule bande.Ω(n2)

Supposons que vous ayez une MT avec un espace qui reconnaisse les palindromes { xS(n){x0n3xR|x|=n/3}xRxT(n)0n/3S(n)Ω(n/S(n))n/3

T(n)S(n)=Ω(n2)

Marzio De Biasi
la source
Ops ... après avoir écrit la réponse, j'ai vu que Kristoffer avait déjà publié la solution. Accepte sa réponse, je ne laisse la mienne que parce qu'elle contient quelques détails supplémentaires.
Marzio De Biasi
5
Je suppose que c'était pratiquement simultané.
Kristoffer Arnsfelt Hansen
Comme vous l'avez suggéré, j'ai accepté la réponse de Kristoffer puisqu'il était un peu plus tôt ... Merci à vous deux!
Bruno
1
{x0n3xR|x|=|y|=n/3}{x0n3xR|x|=n/3}R
2

En plus des autres réponses, il convient de noter que si la randomisation est autorisée, les palindromes peuvent être reconnus avec un espace O (1) et un temps O (n) en hachant le côté gauche de la chaîne, en hachant la transposition du côté droit de la chaîne et vérifier si les hachages sont égaux. Cela ne devrait pas être difficile à faire sur une machine de Turing.

boulette de mobius
la source