HOME

TheInfoList



OR:

A tag system is a deterministic
computational model A computational model uses computer programs to simulate and study complex systems using an algorithmic or mechanistic approach and is widely used in a diverse range of fields spanning from physics, chemistry and biology to economics, psychology, ...
published by
Emil Leon Post Emil Leon Post (; February 11, 1897 – April 21, 1954) was an American mathematician and logician. He is best known for his work in the field that eventually became known as computability theory. Life Post was born in Augustów, Suwałki Govern ...
in 1943 as a simple form of a
Post canonical system A Post canonical system, also known as a Post production system, as created by Emil Post, is a string-manipulation system that starts with finitely-many strings and repeatedly transforms them by applying a finite set j of specified rules of a cert ...
. A tag system may also be viewed as an abstract machine, called a Post tag machine (not to be confused with
Post–Turing machine A Post–Turing machineRajendra Kumar, ''Theory of Automata'', Tata McGraw-Hill Education, 2010, p. 343. is a "program formulation" of a type of Turing machine, comprising a variant of Emil Post's Turing-equivalent model of computation. Post's mode ...
s)—briefly, a
finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
whose only tape is a FIFO
queue __NOTOC__ Queue () may refer to: * Queue area, or queue, a line or area where people wait for goods or services Arts, entertainment, and media *''ACM Queue'', a computer magazine * ''The Queue'' (Sorokin novel), a 1983 novel by Russian author ...
of unbounded length, such that in each transition the machine reads the symbol at the head of the queue, deletes a constant number of symbols from the head, and appends to the tail a symbol-string that depends solely on the first symbol read in this transition. Because all of the indicated operations are performed in a single transition, a tag machine strictly has only one state.


Definitions

A ''tag system'' is a triplet (''m'', ''A'', ''P''), where * ''m'' is a positive integer, called the ''deletion number''. * ''A'' is a finite alphabet of symbols, one of which is a special ''halting symbol''. All finite (possibly empty) strings on ''A'' are called ''words''. * ''P'' is a set of ''production rules'', assigning a word ''P(x)'' (called a ''production'') to each symbol ''x'' in ''A''. The production (say ''P()'') assigned to the halting symbol is seen below to play no role in computations, but for convenience is taken to be ''P()'' = '. A ''halting word'' is a word that either begins with the halting symbol or whose length is less than ''m''. A transformation ''t'' (called the ''tag operation'') is defined on the set of non-halting words, such that if ''x'' denotes the leftmost symbol of a word ''S'', then ''t''(''S'') is the result of deleting the leftmost ''m'' symbols of ''S'' and appending the word ''P(x)'' on the right. Thus, the system processes the m-symbol head into a tail of variable length, but the generated tail depends solely on the first symbol of the head. A ''computation'' by a tag system is a finite sequence of words produced by iterating the transformation ''t'', starting with an initially given word and halting when a halting word is produced. (By this definition, a computation is not considered to exist unless a halting word is produced in finitely-many iterations. Alternative definitions allow nonhalting computations, for example by using a special subset of the alphabet to identify words that encode output.) The term ''m-tag system'' is often used to emphasise the deletion number. Definitions vary somewhat in the literature (cf References), the one presented here being that of Rogozhin. The use of a halting symbol in the above definition allows the output of a computation to be encoded in the final word alone, whereas otherwise the output would be encoded in the entire sequence of words produced by iterating the tag operation. A common alternative definition uses no halting symbol and treats all words of length less than ''m'' as halting words. Another definition is the original one used by Post 1943 (described in the historical note below), in which the only halting word is the empty string.


Example: A simple 2-tag illustration

This is merely to illustrate a simple 2-tag system that uses a halting symbol.
2-tag system 
    Alphabet:  
    Production rules:
         a  -->  ccbaH
         b  -->  cca
         c  -->  cc

Computation
    Initial word: baa
                    acca
                      caccbaH
                        ccbaHcc
                          baHcccc
                            Hcccccca (halt).


Example: Computation of Collatz sequences

This simple 2-tag system is adapted from e Mol, 2008 It uses no halting symbol, but halts on any word of length less than 2, and computes a slightly modified version of the
Collatz sequence The Collatz conjecture is one of the most famous unsolved problems in mathematics. The conjecture asks whether repeating two simple arithmetic operations will eventually transform every positive integer into 1. It concerns integer sequence, seq ...
. In the original Collatz sequence, the successor of ''n'' is either (for even ''n'') or 3''n'' + 1 (for odd n). The value 3''n'' + 1 is clearly even for odd ''n'', hence the next term after 3''n'' + 1 is surely . In the sequence computed by the tag system below we skip this intermediate step, hence the successor of ''n'' is for odd ''n''. In this tag system, a positive integer ''n'' is represented by the word aa...a with ''n'' a's.
2-tag system 
    Alphabet:  
    Production rules:
         a  -->  bc
         b  -->  a
         c  -->  aaa

Computation
    Initial word: aaa <--> n=3
                    abc  
                      cbc
                        caaa
                          aaaaa  <--> 5
                            aaabc
                              abcbc
                                cbcbc
                                  cbcaaa
                                    caaaaaa
                                      aaaaaaaa  <--> 8
                                        aaaaaabc
                                          aaaabcbc
                                            aabcbcbc
                                              bcbcbcbc
                                                bcbcbca
                                                  bcbcaa
                                                    bcaaa
                                                      aaaa  <--> 4
                                                        aabc
                                                          bcbc
                                                            bca
                                                              aa  <--> 2
                                                                bc
                                                                  a  <--> 1
                                                                   (halt)


Turing-completeness of ''m''-tag systems

For each ''m'' > 1, the set of ''m''-tag systems is
Turing-complete In computability theory, a system of data-manipulation rules (such as a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing-complete or computationally universal if it can be used to simulate any Tur ...
; i.e., for each ''m'' > 1, it is the case that for any given Turing machine T, there is an ''m''-tag system that emulates T. In particular, a 2-tag system can be constructed to emulate a
Universal Turing machine In computer science, a universal Turing machine (UTM) is a Turing machine that can simulate an arbitrary Turing machine on arbitrary input. The universal machine essentially achieves this by reading both the description of the machine to be simu ...
, as was done by Wang 1963 and by Cocke & Minsky 1964. Conversely, a Turing machine can be shown to be a Universal Turing Machine by proving that it can emulate a Turing-complete class of ''m''-tag systems. For example, Rogozhin 1996 proved the universality of the class of 2-tag systems with alphabet and corresponding productions , where the ''Wk'' are nonempty words; he then proved the universality of a very small (4-state, 6-symbol) Turing machine by showing that it can simulate this class of tag systems.


The 2-tag halting problem

This version of the
halting problem In computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run forever. Alan Turing proved in 1936 that a g ...
is among the simplest, most-easily described undecidable
decision problem In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question of the input values. An example of a decision problem is deciding by means of an algorithm whethe ...
s: Given an arbitrary positive integer ''n'' and a list of ''n''+1 arbitrary words ''P''1,''P''2,...,''P''''n'',''Q'' on the alphabet , does repeated application of the tag operation ''t'': ''ijX'' → ''XP''''i'' eventually convert ''Q'' into a word of length less than 2? That is, does the sequence ''Q'', ''t''1(''Q''), ''t''2(''Q''), ''t''3(''Q''), ... terminate?


Historical note on the definition of tag system

The above definition differs from that of Post 1943, whose tag systems use no halting symbol, but rather halt only on the empty word, with the tag operation ''t'' being defined as follows: * If ''x'' denotes the leftmost symbol of a nonempty word ''S'', then ''t''(''S'') is the operation consisting of first appending the word ''P(x)'' to the right end of ''S'', and then deleting the leftmost ''m'' symbols of the result — deleting all if there be less than ''m'' symbols. The above remark concerning the Turing-completeness of the set of ''m''-tag systems, for any ''m'' > 1, applies also to these tag systems as originally defined by Post.


Origin of the name "tag"

According to a footnote in Post 1943, B. P. Gill suggested the name for an earlier variant of the problem in which the first ''m'' symbols are left untouched, but rather a check mark indicating the current position moves to the right by ''m'' symbols every step. The name for the problem of determining whether or not the check mark ever touches the end of the sequence was then dubbed the "problem of tag", referring to the children's
game of tag Tag (also called touch and go AG'', tig, it, tiggy, tips, tick, tip) is a playground game This is a list of games that used to be played by children, some of which are still being played today. Traditional children's games do not include comm ...
.


Cyclic tag systems

A cyclic tag system is a modification of the original tag system. The alphabet consists of only two symbols, 0 and 1, and the production rules comprise a list of productions considered sequentially, cycling back to the beginning of the list after considering the "last" production on the list. For each production, the leftmost symbol of the word is examined—if the symbol is 1, the current production is appended to the right end of the word; if the symbol is 0, no characters are appended to the word; in either case, the leftmost symbol is then deleted. The system halts if and when the word becomes empty.


Example

Cyclic Tag System
 Productions: (010, 000, 1111)

Computation
 Initial Word: 11001
    Production         Word
    ----------         --------------
       010             11001
       000              1001010
       1111              001010000
       010                01010000
       000                 1010000
       1111                 010000000
       010                   10000000
        .                      .
        .                      .
Cyclic tag systems were created by
Matthew Cook Matthew Cook (born February 7, 1970) is a mathematician and computer scientist who is best known for having proved Stephen Wolfram's conjecture that the Rule 110 cellular automaton is Turing-complete. Biography Cook was born in Morgantown, West ...
and were used in Cook's demonstration that the
Rule 110 cellular automaton The Rule 110 cellular automaton (often called simply Rule 110) is an elementary cellular automaton with interesting behavior on the boundary between stability and chaos. In this respect, it is similar to Conway's Game of Life. Like Life, Rule 110 ...
is universal. A key part of the demonstration was that cyclic tag systems can emulate a
Turing-complete In computability theory, a system of data-manipulation rules (such as a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing-complete or computationally universal if it can be used to simulate any Tur ...
class of tag systems.


Emulation of tag systems by cyclic tag systems

An ''m''-tag system with alphabet and corresponding productions is emulated by a cyclic tag system with ''m*n'' productions (''Q1'', ..., ''Qn'', -, -, ..., -), where all but the first ''n'' productions are the empty string (denoted by ''). The ''Qk'' are encodings of the respective ''Pk'', obtained by replacing each symbol of the tag system alphabet by a length-''n'' binary string as follows (these are to be applied also to the initial word of a tag system computation): ''a1'' = 100...00 ''a2'' = 010...00 . . . ''an'' = 000...01 That is, ''ak'' is encoded as a binary string with a in the kth position from the left, and 's elsewhere. Successive lines of a tag system computation will then occur encoded as every (''m*n'')th line of its emulation by the cyclic tag system.


Example

This is a very small example to illustrate the emulation technique.
2-tag system
    Production rules: (a --> bb, b --> abH, H --> H)
    Alphabet encoding: a = 100, b = 010, H = 001 
    Production encodings: (bb = 010 010, abH = 100 010 001, H = 001)

Cyclic tag system 
    Productions: (010 010, 100 010 001, 001, -, -, -)

Tag system computation
    Initial word: ba
                    abH
                      Hbb (halt)

Cyclic tag system computation
    Initial word: 010 100 (=ba)

    Production       Word
    ----------       -------------------------------
  * 010 010          010 100  (=ba)
    100 010 001       10 100
    001                0 100 100 010 001
    -                    100 100 010 001
    -                     00 100 010 001
    -                      0 100 010 001
  * 010 010                  100 010 001  (=abH)
    100 010 001               00 010 001 010 010
    001                        0 010 001 010 010
    -                            010 001 010 010
    -                             10 001 010 010
    -                              0 001 010 010
  * 010 010       emulated halt -->  001 010 010  (=Hbb)
    100 010 001                       01 010 010
    001                                1 010 010
    -                                    010 010 001
    ...                                    ...
Every sixth line (marked by '') produced by the cyclic tag system is the encoding of a corresponding line of the tag system computation, until the emulated halt is reached.


See also

*
Queue automaton A queue machine, queue automaton, or pullup automaton (PUA) is a finite state machine with the ability to store and retrieve data from an infinite-memory queue. It is a model of computation equivalent to a Turing machine, and therefore it can proc ...


References

* * *
Marvin Minsky Marvin Lee Minsky (August 9, 1927 – January 24, 2016) was an American cognitive and computer scientist concerned largely with research of artificial intelligence (AI), co-founder of the Massachusetts Institute of Technology's AI laboratory, an ...
1961, ''Recursive Unsolvability of Post's Problem of "Tag" and other Topics in Theory of Turing Machines", ''the Annals of Mathematics, 2nd ser., Vol. 74, No. 3. (Nov., 1961), pp. 437–455. . * {{cite book , last=Minsky, first=Marvin, author-link=Marvin Minsky, date=1967, title=Computation: Finite and Infinite Machines , url=https://archive.org/details/computationfinit0000mins/page/267 , publisher=Prentice–Hall, Inc., location=Englewoord Cliffs, N.J., pages=267–273, lccn=67-12342 :: In a chapter 14 titled "Very Simple Bases for Computability", Minsky presents a very readable (and exampled) subsection 14.6 ''The Problem of "Tag" and Monogenic Canonical Systems''
pp. 267–273
(this sub-section is indexed as "tag system"). Minsky relates his frustrating experiences with the general problem: "Post found this (00, 1101) problem "intractable," and so did I, even with the help of a computer." He comments that an "effective way to decide, for any string S, whether this process will ever repeat when started with S" is unknown although a few specific cases have been proven unsolvable. In particular he mentions Cocke's Theorem and Corollary 1964. * Post, E.: "Formal reductions of the combinatorial decision problem", ''American Journal of Mathematics'', 65 (2)
197–215
(1943). (Tag systems are introduced o
p. 203ff
) * Rogozhin, Yu.: "Small Universal Turing Machines", ''Theoret. Comput. Sci.'' 168, 215–240, 1996. * Wang, H.: "Tag Systems and Lag Systems", ''Math. Annalen'' 152, 65–74, 1963.


External links

* https://mathworld.wolfram.com/TagSystem.html * https://mathworld.wolfram.com/CyclicTagSystem.html * https://www.wolframscience.com/nks/p95/ (cyclic tag systems) * https://www.wolframscience.com/nks/p669/ (emulation of tag systems) Models of computation