Par exemple, nous pouvons dire que nous avons un programme abstrait qui, étant donné une chaîne binaire finie en entrée, supprime tous les zéros (c'est-à-dire que 0010001101011 est évalué à 111111), ce qui est certainement une fonction calculable par Turing.
Comment un système de balises cycliques peut-il calculer cela (ce qu'il peut, par définition, étant Turing-complet) alors qu'il s'arrête uniquement lorsqu'il atteint la chaîne vide? L'article de Wikipedia donne un exemple de conversion vers un système à 2 balises, mais il ajoute un arrêt émulé que le système d'origine n'a pas.
Je ne trouve aucune référence à la façon dont un système d'étiquette cyclique s'arrête de manière significative. Quelle est sa sortie censée être? J'ai pensé à des choses comme
- Nombre d'étapes (mais alors l'entrée restreint la sortie possible sans une sorte d'encodage sophistiqué que je ne trouve pas)
- La dernière production (mais qui n'a qu'une plage de sortie finie)
- Points fixes (qui ne peuvent pas être détectés dans ce système et n'existent qu'avec des règles de production et des intrants très limités)
mais ils ne fonctionnent pas, du moins pas du tout que je puisse voir.
la source
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 tout0 s à 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
productions:
calcul:
balise cyclique
encodage de l'alphabet à 2 balises:
calcul:
la source