Un MPA (automate multipebble) est un 2DFA (automate fini déterministe bidirectionnel) qui peut utiliser un nombre arbitraire de cailloux (en fait au plus cailloux sur une entrée donnée w - l'entrée est écrite sur la bande entre deux extrémités -marqueurs comme # w # ). Pendant le calcul, un MPA peut détecter si le symbole sous la tête a un caillou, puis il peut mettre un caillou (retirer le caillou) s'il n'y a pas de caillou (un caillou).
est un homomorphisme, où σ est un symbole et k > 0 .
Pour tout langage déterministe contextuel il n'est pas difficile de montrer qu'il existe un k > 0 tel que h k ( L ) puisse être reconnu par un MPA. Donc, en gros, on peut dire que
tout «problème» décidable par une DTM à espace linéaire (machine de Turing déterministe) peut être résolue par une MPA.
Est-ce également vrai pour n'importe quelle langue en ? Les AMP peuvent-elles décider de tous les langages déterministes contextuels?
est la longueur de w .
est lesymbole i t h de w , où 1 ≤ i ≤ | w | .
.
la source
Réponses:
Peut-être que vous pouvez construire un langage dans DPSACE (n) qui ne peut pas être reconnu par un MPA avec utilisant un argument de diagonalisation (probablement l'idée est similaire à celle dans la réponse de Ben, mais je n'y ai pas creusé):k=1
Supposons que sur l'alphabet vous encodez un MPA en utilisant une liste de transitions:Σ={0,1}
où est l'état actuel, a est le symbole actuel, p est l'état de galet, s ′ est le nouvel état, p ′ est le nouvel état de galet, L | R est la direction du mouvement, #s a p s′ p′ L|R # est un indicateur de fin).
Une machine de Turing sur l'entrée x peut vérifier s'il s'agit d'une description valide d'un M P A x et la simuler sur l'entrée x pour 4 | x | étapes en utilisant 6 | x | + journal | x | cellules, en étirant l'entrée de cette manière:M x MPAx x 4|x| 6|x|+log|x|
Où:
la source
Puisque ce langage est décidable dans l'espace linéaire, il est également exprimable en DCSL.
la source