Bien que les versions sans interruption de l'étiquette cyclique puissent être d'un intérêt particulier pour les automates cellulaires, un système d'étiquette cyclique peut également être conçu pour simuler une machine de Turing universelle de telle sorte qu'elle s'arrête si les TM s'arrêtent, affichant un mot de sortie qui code la sortie de la machine:
Simulez la MT avec un système à 2 balises qui code toutes les configurations instantanées de la TM, en utilisant un "alphabet de sortie" distinct pour coder toute configuration d'arrêt, de sorte que le système de balises s'arrête (en effaçant ce mot lettre par lettre) ssi le TM s'arrête. ( Cet article montre en détail comment cela peut être fait en utilisant une formulation de machine Wang de MT.)
Simulez le système à 2 balises par un système de balises cycliques comme décrit dans la section système de balises cycliques de l'article Wikipedia . Étant donné que chaque lettre de l'alphabet de sortie à 2 balises a une chaîne vide en tant qu'appendice (provoquant l'arrêt de la simulation à 2 balises), le système de balises cycliques aura le même comportement d'arrêt / sortie.
La clé de cette approche est qu'un alphabet de sortie désigné, par exemple {αi}, permet à chacune de ses lettres d'avoir la chaîne vide comme annexe (αi→ϵ), ce qui entraîne l'effacement et l'arrêt de la simulation.
NB : Pour les trois types de système (TM, étiquette, étiquette cyclique), l'identification univoque de la production peut être assurée à l'aide d' un alphabet de sortie spécifié, et cela peut être fait pour les stopper et non hésitants variétés de ces systèmes. (Étant donné que les MT "standard" sont du type à arrêt, il est ironique que les machines informatiques originales de Turing étaient de la variété sans arrêt avec alphabet de sortie{0,1}.)
Avec la même approche, nous pouvons également construire directement un système simple à 2 balises pour effacer tout 0s à partir d'une chaîne binaire, puis simulez-la avec une balise cyclique. Les calculs deviennent rapidement fastidieux, nous ne l'appliquerons donc qu'à la chaîne d'entrée101, arrêt avec la chaîne de sortie 11. (Le symbole -
désignera la chaîne vide.)
2 balises
input alphabet {a,b}, output alphabet {c}
input encoding:
<0> = aa
<1> = bb
input = <101> = bbaabb
output decoding: <cc> = 1
productions:
a -> -
b -> cc
c -> -
calcul:
bbaabb <-- input word <101>
aabbcc
bbcc
cccc <-- output word <11>
cc
-
balise cyclique
encodage de l'alphabet à 2 balises:
<a> = 100
<b> = 010
<c> = 001
cyclic tag system = [-,001001,-,-,-,-]
cyclic tag input = <bbaabb> = 010010100100010010
calcul:
appendant dataword
--------- ---------------------------------------------------------------
- 010010100100010010 <-- input word <bbaabb> = <<101>>
001001 10010100100010010
- 0010100100010010001001
- 010100100010010001001
- 10100100010010001001
- 0100100010010001001
- 100100010010001001
001001 00100010010001001
- 0100010010001001
- 100010010001001
- 00010010001001
- 0010010001001
- 010010001001
001001 10010001001
- 0010001001001001
- 010001001001001
- 10001001001001
- 0001001001001
- 001001001001 <-- output word <cccc> = <<11>>
001001 01001001001
- 1001001001
- 001001001
- 01001001
- 1001001
- 001001
001001 01001
- 1001
- 001
- 01
- 1
- -