Talk:Turing machine/Archive 2

message: I don't know much about this subject, but this line looks incorrect:  "... is a non-deterministic Turing machine (NDTM or DTM)."  Is there a typo there?  Can't be "DTM" because that is a deterministic Turing machine.  Colin99 22:47, 9 February 2006 (UTC)
thread_title:  Possible error? 

message: Old Read   Wr.      New     Old Read   Wr.      New
  St. Sym.   Sym. Mv. St.     St. Sym.   Sym. Mv. St.
  - - - - - - - - - - - -     - - - - - - - - - - - -
   s1  1  ->  0    R   s2      s4  1  ->  1    L   s4
   s2  1  ->  1    R   s2      s4  0  ->  0    L   s5
   s2  0  ->  0    R   s3      s5  1  ->  1    L   s5
   s3  0  ->  1    L   s4      s5  0  ->  1    R   s1
   s3  1  ->  1    R   s3
  Step State Tape   Step State Tape
  - - - - - - - -   - - - - - - - - -
     1  s1   11        9  s2   1001
     2  s2   01       10  s3   1001
     3  s2   010      11  s3   10010
     4  s3   0100     12  s4   10011
     5  s4   0101     13  s4   10011
     6  s5   0101     14  s5   10011
     7  s5   0101     15  s1   11011
     8  s1   1101       -- halt --
why does this example halt? There is no rule for s1 and 0. --Abdull 19:26, 5 March 2006 (UTC)
replies: text: If there is no rule, the machine halts. At least, that's a common convention... DanielCristofani 03:42, 6 March 2006 (UTC)
thread_title:  Broken example? 

message: Could you please give an example of an algorithm for which the number of states is significantly different on a real machine and on a Turing machine ?
Thanks
King mike 21:15, 29 May 2006 (UTC)
thread_title:  Comparison with real machines : example needed 

message: [1] Scott Aaronson, "NP-complete Problems and Physical Reality", ACM SIGACT News, 2005, quant-ph/0502072,   http://www.arxiv.org/pdf/quant-ph/0502072
(Great overview of different models of computation in context of physical implementations.)
[2] Selmer Bringsjord and Michael Zenzen, "Superminds: People Harness Hypercomputation, and More", 2003, Kluwer Academic Publishers,Studies in Cognitive Systems Volume 29, ISBN 1-4020-1094-X
(Argues that human thinking is not algorithmic, and that human mind is capable of processing information in truly hyper-computing manner)
[3] H.T.Siegelmann, "Computation Beyond the Turing Limit", Science vol.268, 1995, pp.545--548
(A model of neural nets with truly real-valued weights. )
[4] "Alan Turing: Life and Legacy of a Great Thinker", Christof Teuscher (editor), Springer; 1 edition, June 2006, ISBN 3540200207.
[5] A.M.Turing 1948. ‘Intelligent Machinery’. National Physical Laboratory Report. In Meltzer, B., Michie, D. (eds) 1969. Machine Intelligence 5. Edinburgh: Edinburgh University Press. Digital facsimile viewable at http://www.AlanTuring.net/intelligent_machinery.
(one of the classics. introduces the notion of u-machines, and formulates clearly the notion of mechanical computation, etc)
[6] Anastasios Vergis and Kenneth Steiglitz and Bradley Dickinson, "The complexity of analog computation", Mathematics & Computer Simulations 28, 1986, pp.91--113. http://www.cs.princeton.edu/courses/archive/fall04/cos576/papers/vergis_steiglitz_dickinson86.pdf
(argument for strong Church-Turing thesis: any analog computer can be simulated efficiently, in polynomial time by a gidital computer)
Check also "Jack Copeland", "hypercomputation", "multi-tape asynchronous machine", etc.
--Marni 03:01, 1 July 2006 (UTC)
thread_title:  References 

message: Can this article be written so that nonexperts can understand it? Thanks. (Bjorn Tipling 20:03, 4 July 2006 (UTC)
thread_title:  I do not understand this article 

message: G'day, I'm pretty good with maths and chemistry (and a bit of computing) but bits of this are way over my head. Models equivalent to the Turing machine model' sub-chapter on Minskys programs equivalent to Turing machines needs some kind of explanation; interesting but I don't know what you're talking about! ben 17:42, 11 July 2006 (UTC)
thread_title:  Models equivalent to the Turing machine model 

message: A lot of figures, new examples, references, etc. are well come!
We only need "wiki time" to see, merge, adapt, correct, etc. ... or "Wvbailey modifications" will be a tractor and the old versions and consensus will vanish.
:As I wrote immediately above most of the original text is still there, it may be on new pages Turing machine examples and Turing machine equivalents.wvbaileyWvbailey 15:33, 13 August 2006 (UTC)
thread_title:  reverting recent Wvbailey's modifications 

message: Minsky (1967) spends about 20 pages giving us a definition of a "finite-state machine". It includes the following (italics in original):
:"...a class of machines known as finite-state machines or finite automata. These are the machines which proceed in clearly separate 'discrete' steps from one to another of a finite number of configurations or states." (p. 11)
:"2.0.1 Moments of Time. The theory of finite-state machines deal with time in a rather peculiar way. The behavior of a machine is described as a simple, linear sequence of events in time. These events occur only at discrete "moments" -- between which nothing happens. One may imagine these moments as occuring regularly like the ticking of a clock, and we identify the moments with integers -- the variable for time, t, takes on only the values 0, 1, 2, ...
:"the system [must meet] the conditions we will impose -- that by the end of each interval the machine does, in effect, "settle down" into one of a finite number of describable states" (p. 12)"
In this context the word "state" is derived as follows:
:state n. from Latin status, pp. of stare to stand. more at STAND. a condition or stage in the physical being of something.
:stand from Latin stare from Greek histanai to cause to stand. usage #1: to maintain one's position (~ firm). usage #2: (1592) an act of stopping or staying in one place.
There is another usage of "state" -- in mechanical dynamics theory. "State" here is the instantaneous snap-shot of an object relative to a frame of reference, but giving both its position (x, y, z) and velocity (dx/dt, dy/dt, dz/dt). The following is from pages 39-40 of Robert H. Cannon Jr, Dynamics of Physical Systems, McGraw-Hill Book Company, 1967.  
:'The state of a system. What we mean by the state of a mechanical system may be introduced by analogy with configuration: The state of a system is often defined by an independent set of position coordinates, plus their derivatives. Thus, state implies configuration plus velocity. Configuration tells only where the system is, but state tells both where it is and how fast (and in what direction) it is going; and as expressed by professor L. Zadeh, 'the state of a system at a given time, plus its differential equations of motion and inputs, will detrmine its configuration for all future time....
:: Although state comes from the Latin status, a standing or position, a more helpful image for our purposes is that of a stopping or freezing of action, as when a moving-picture film is stopped on one frame, but the instantaneous speed and direction of motion are revealed by blurring of the picture."    
 
Thus conventional, canonical state-machine analysis doesn't allow for "incoming" actions produced by a state. Input causes a change to a new state. "Outgoing" action, maybe -- at least in terms of "direction of change" shown by the arrow. Mealy machines represent a problem because:
:"One restriction we will introduce here is this -- the output state at the moment t does not depend on the input state at that same instant. This is to say that we won't admit the possibility of signals traversing a unit instantly" (Minsky (1967) p. 14).
And there really is no need for 'Mealy machines' anyway, because any 'Mealy' can be converted into a 'Moore' (cf Booth (1967), p. 960. Here he discusses this problem, that a 'Mealy' produces no output unless there's an input. He also notes that "a short time is allowed after the input symbol is applied before the output is observed", etc. 
This is bizarre. No input e.g. (0,0,0,0) produces no output (0,0,0,0) but the machine is in a particular state, call it "B". As soon as an input is applied i.e. (0,1,0,0) the machine goes to a new state, call it "D". During its brief time going from B to D it produces an output (0,0,1,1). This appears as a pulse during the transition.  If D is to sustain this pulse it must have a recirculating path back to itself i.e. (0,1,0,0) produces a recirculation back to D and maintains (0,0,1,1). Clearly, this is not trival stuff. 
There appears to be a kind of pseudo-state used by software folks -- but you can always atomize this so-called "state of many colors" into true states each of one color. I've questioned this on a talk page. Over the years I've both written and debugged thousands of lines of pseudo-state-machine software -- thousands of pieces of equipment use the code-- and I have no idea what the fuck the article is talking about. wvbaileyWvbailey 14:29, 17 August 2006 (UTC)
thread_title:  finite state machines, what are they? 

message: Reading with more attention, and reading other fonts... we can see "Turing Machice" as two (not very distinct but) separable things: 
# The Alan Turing invention/concept... as (or near) he described in 1936 (without variants).
# A very simple, basic (the theoretical basis) and power concept to understand algorithm, computer, computability, etc. "Turing Machine" is only a label for a lot of "model and representation variants" (Turing-equivalent and/or UTM-equivalence)... and a lot of (historically) simultaneous seminal ideas. It was the label, grouping then, is only a homage to the first and/or main autor of this conceptualizations.
Proposal: re-structure the article, breaking or evidencing, as a possible, the 2 separable themes.
-- Krauss 15/8/2006.
I was working on a "history" but didn't finish it. Am unsure how to proceed -- there are too many variants. From my sources, what exists as a "modern" single-tape "off-line" Turing machine are all of the following. See the next sections for a survey of various text-book authors' interpretations:
A nutshell description of a "Turing machine":
:"A Turing machine is a finite-state machine associated with an external storage or memory medium." (Minsky (1967) p. 117)
:"A Turing machine is essentially a finite-state sequential machine that has the ability to communicate with an external store of information"(Booth (1967), p. 354)
This storage medium or "scrach-paper" (Stone 1972 p. 8) is called the TAPE:
# The TAPE either (i) effectively-infinitely long in both directions, or (ii) left ended and infinitely long to the right. OR the tape is of finite length but either one or both ends can have more tape added onto it whenever the machine needs more tape. 
# TAPE is divided into discrete SQUARES. 
# The Turing machine passes the tape through/over a read/write HEAD. When the HEAD is on the SCANNED SQUARE the machine "reads the scanned symbol" then "writes/prints a symbol", overprinting and erasure allowed.
# ERASURE to BLANK is a special kind of "print/write" operation. "blank" means either truly blank { } or some symbol usually "b", "B", "0", "U" (empty cup)
# Either the HEAD or the TAPE moves one discrete square at a time: a motion is a single Left or Right or None 
# when writing/printing, only one of any number of specific set/collection Σ of symbols may be printed or overprinted -- this collection must be specified at the outset
# The TABLE is the finite-state machine. A completely-defined TABLE T is specified by the cross-product T = Q x Σ of its (discrete, finite) collection Q of states and the collection Σ of (discrete, finite number of) symbols that can appear on the tape, including the blank. Each entry in the table specifies (i) two discrete, sequential output events (tape-events) chosen from 9 possibilites { (Ps,L), (Ps,N), (Ps, R), (N,L), (N, N), (N, R), (E,L), (E,N), (E,R) } = (Print/overprint symbol, do Nothing, Erase symbol) x (move Left, No move, move Right); and (ii) the next state qn from the collection of states Q. Alternately, the TABLE can be specified as a list of 5-tuples of "m-configurations/states/instructions". 
# A "state register/memory" -- a temporary scratch-pad -- stores the current instruction's identification "tag/name/identifier" i.e. q4.  
# The machine specification identifies the initial state q0, and the scratch-pad is set to that identifier (e.g. 0 or 1)
# A description of how and where the data/parameters is to appear on the tape, and how and where the data/(parameters will appear as output. This is especially important with regards to the universal machine (UTM).
No mention is ever made of: 
# timing/clock(s) -- "ticks" of successive motions of the machine (from timing/clocks) can be "desultory" (Turing's choice of words)
# how the input gets on the TAPE
# how the finite-state machine is set/reset to the initial state
# any particulars of the mechanism except that its motions are discrete (as they must be if the TABLE is truly a finite state machine )  
Emil Post (1947) provides some of the few comments re "Turing convention machines" versus "Turing machines". I asked Martin Davis about a similar issue, and Post's work is all he had to cite in response.
Anyone who has read Turing's 1936-7 paper realizes that an in-depth study of the particularities of his "convention" and in particular his universal machine TABLE is not particularly rewarding (i.e. worth the large amount of time necessary). 
The "Turing-convention machine" seems to be the following:
(1) Tape has a left end, and is infinite to the right (Post observes this p. 300 Undecidable, copied below)
(2) Turing's encoding scheme uses alternating E-squares and F-squares. The E-squares will hold "markers" to keep track of computations.
:(2.1) E-squares are "liable to erasure"
:(2.2) F-squares are never erased.
(3) He reduces long strings of instructions within a "state"/aka m-configuration to his quantity 3 of the 5-tuples (N1, N2, N3).
:(3.1) for any instruction/state/m-configuration printing or erasing always occurs
Post wrote the following:
:"Primarily as a matter of practice, Turng makes his machines satisfy the following convention. Starting with the first square [placed on the left, where the calculation always begins], alternate squares are called F-squares, the rest, E-squares. In its action the machine then never directs motion left when it is scanning the initial sqaure, never orders the erasure, or change, of a symbol on an F-square, never orders the printing of a symbol on a blank F-square if the previous F-square is blank and, in the case of a computing machine, never orders the printing of 0 or 1 on an E-square....
:"By a uniform method of representation [i.e. Turing's N1, N2, N3 5-tuples], Turing represents the set of instructions, correspoinding to our quadruplets[^12]," etc. etc.
:"^12 our quadruplets are quintuplets in the Turing development. That is, where our standard instruction orders either a printing (overprinting) or motion, left or right, Turing's standard instruction always orders a printing and a motion, right, left, or none. Turing's method has a certain technical advantages, but complicates theory by introducing an irrelevant "printing" of a symbol each time that symbol is merely passed over." (emphasis added, Emil Post (1947), Recursive Unsolvability of a Problem of Thue, reprinted in The Undecidable pp.293 ff)
Thus here we see Post's origination of the Post-Turing convention aka Post-Turing machine.
As far as I can see, this is about all that needs to be said about Turing-convention machines.
One approach might be in "Turing's first example", where I did mention the E- and F-squares, and we see that the machine skips squares. This could be moved to the last example, or even to another page if it were worth the bother. But we only really see the emergence of the "Turing-convention" in the UTM. And the UTM (anybody's UTM) is an ugly thing when you try to actually design it. Hennie (1977) (pages 90-103) designs it up to sub-routine-code examples and flow-charts. I did it for the Post-Turing machine and have the code, but this is considered Original Research. wvbaileyWvbailey 21:20, 20 August 2006 (UTC)
thread_title:  Split proposal 

message: UTM stay here (Turing machine article) as a introduction, but (a sugestion) details in a new/complete article.
-- krauss 15/8/2006
I think this is a good idea. The question is: what is a good introduction? I've had a thought. To make it interesting and relevant -- to make analogies to von Neumann versus harvard machine architectures:
When a particular set of instructions for a certain calculation are, on the TAPE rather than the TABLE and next to them are the input and output data,  and "interpreted" by a "universal TABLE", then this is a UTM and is analogous to a von Neumann architecture (Davis 2000 supports this interpretation). When a specific set of instructions are in the "read-only" TABLE and the input and output data is on the TAPE then this is analogous to a Harvard architecture (I have no good citation-support for this). 
I guarantee that the confusion will be around the "universal" TABLE: 
(i) The UTM still has a TABLE, but this will be a "universal table" -- the same for all particular instances of machines, e.g. the same TABLE for a machine that multiplies versus a 3-state busy beaver. What will be different will be the "programs" -- a multiply program versus a 3-state busy-beaver program that now are located on the TAPE rather than in the TABLE. 
(ii) But there is no universal "universal-TABLE". Hence we have a jillion computer languages.
(iii) Given a specific UTM (with its specific TABLE), we have to be sure that we write the multiply and busy-beaver "programs" in a format specific to that UTM's TABLE. This also goes for the input and output data. So, you can't write "binary machine code" (or assembly language programs) for a Motorola processor using Texas Instruments binary code or assembly mnemonics. For example, on a Post-Turing machine, we might encode our instructions (to appear in a TAPE-program) in one of a couple different ways:
Instruction	Encoding #1	Encoding #2
L          	110        	10010
R          	1110       	100010
E          	11110      	1000010
P          	111110     	10000010
J0,2       	11111101110	100000010100010
J1,1       	11111110110	100000001010010
H          	11111110   	10000000010
      
Thus the little string of code J0,4,E,L,J1,1,H erases a string of ones to the left until it hits a zero will have two encodings:
:(1)...01111110111110111101101111111011011111110....
:(2)...01000000101000001010000101001010000000101001010000000010.....
And the reader must understand that the UTM requires placing data to the left or right (usually the right) of the program; both the position and the format must be known by the UTM TABLE. For example, the erasing program above needs some data to erase; the UTM TABLE will have to go hunting to the right of the "program-string" to find a string of 1's to erase. The UTM TABLE needs to know that, for example,  00 separates any data (shown in bold, the string of seven 1's to the right are to be erased):
:(1)..000111111011111011110110111111101101111111001111111000000000.....
(iv) The UTM TABLE needs to use tricks to keep track of where it is in the (1) "fetch-instruction phase" and (2) "execute" phase. In the first little program above it would use erasures (the single bold 0) to mark its position in the "fetch":
:(1)..000101111011111011110110111111101101111111001111111000000000.....
In the second it would use 1's:
:(2)...011000001010000010100001010010100000001010010100000000101101111111.....
Clearly, contemplating this is enough to make you go insane. But examples are the only way I know of to make the points clear. wvbaileyWvbailey 15:27, 17 August 2006 (UTC)
thread_title: To separate Universal Turing Machine (UTM) in other article 

message: The following table is a survey of the "conventions" of the various authors (text-book authors).
: u = unknown
: qa = present state qa
: S = Scanned Symbol (i.e. beneath the head)
: Ps = Print symbol
: all symbols for "blank": b, B, 0, { }, square, U-as-empty-cup
: -- means "no-print"
: LNR, (left, no-motion, right), LCR (left, center, right), LBR (left, no motion, right), 
: -1 0 +1 (left, no-motion right), L -- R (Left, no-motion, right), LR (always move left, right), 
:<-- --> (always move left, right), <-- * --> (left, no-motion, right) 
: qb = transition-to state qb
Some symbols cannot be reproduced here exactly -- 
: U -- blank,
: upside-down e of Turing
: left-end markers | and >
Author                           	Turing machine description as n-tuple	m-configuration 5-tuple              	State diagram convention	Tape has left end?	Always print?	State transition table orientation	Comments
Turing (1936)                    	------                               	qa,S,Ps{ },LNR,qb                    	------                  	Y,e               	Y            	Turing                            	
Post (1947)                      	------                               	4-tuple: (qa,S,Ps,qb) or (qa,S,LR,qb)	------                  	N                 	N            	                                  	Post (1947) Undecidable p. 294; erase = "printing a blank"; blank = { }
Kleene (1952)                    	------                               	qa,S,Ps{ },LCR,qb                    	------                  	N                 	Y            	Turing ?                          	
Davis (1958)                     	------                               	qa,S,PsB,LBR,qb                      	------                  	N                 	Y            	                                  	
Booth (1967)                     	6-tuple                              	qa,S,qb,Psb--,L--R                   	Minsky                  	N                 	N            	engineering                       	
Minsky (1967)                    	------                               	qa,S,qb,PsB,L--R                     	Minsky                  	N                 	N            	hybrid                            	
Arbib (1969)                     	4-tuple                              	qa,S,Psb,LNR,qb                      	engineering             	N                 	Y            	engineering                       	
Stone (1972)                     	------                               	qa,S,qb,Ps0--, -1 0 +1               	------                  	N                 	N            	Turing                            	
Bobrow & Arbib (1974)            	4-tuple                              	qa,S,Psb,LNR,qb                      	u                       	N                 	Y            	u                                 	
Boolos & Jeffrey (1974, 1999)    	------                               	4-tuple: (qa,S,Ps,qb) or (qa,S,LR,qb)	engineering             	N                 	N            	engineering                       	S0 is the "blank"
Hopkin & Moss (1976)             	------                               	qa,S,PsB,qb,LR                       	engineering             	N                 	Y            	engineering                       	! Odd 5-tuple
Hennie (1977)                    	------                               	u                                    	Minsky                  	u                 	u            	engineering                       	
Hopcroft & Ullman (1979)         	7-tuple                              	qa,S,qb,PsB,LR                       	engineering             	Y                 	Y            	engineering                       	
Bolter (1984)                    	------                               	qa,S,Ps{ },LR,qb                     	------                  	Y                 	Y            	hybrid                            	head moves
Peterson (1988)                  	------                               	qa,S,Ps{ }--,L--R,qb                 	------                  	N                 	N            	------                            	
Penrose (1989)                   	------                               	qa,S,qb,Ps0,LR                       	------                  	N                 	Y            	------                            	head moves
Kozen (1997)                     	9-tuple                              	qa,S,qb,PsU--,L--R                   	------                  	Y, |              	N            	engineering                       	blank = U
Sipser (1997)                    	u                                    	u                                    	u                       	u                 	u            	u                                 	no cc available
Lewis & Papadimitriou (1998)     	5-tuple                              	qa,S,qb,PsU, <--  -->                	u                       	Y, >              	u            	u                                 	blank = U
Davis (2000)                     	------                               	qa,S : PsB,<-- * -->, qb             	------                  	Y                 	Y            	Turing                            	blank "B" = square
Hopcroft, Motwani & Ullman (2001)	7-tuple                              	qa,S,qb,Psb,<--  -->                 	engineering             	N                 	Y            	engineering!                      	
Tentative conclusions: 
# recent trend acknowledges a left end, with a marker, similar to Turing's convention
# Formal Turing machine "descriptions" as 4-, 5-, 6-, 7-, 9-tuples? The 9-tuples reflect the end-marker and blank symbols as "line items"; but also silly convention of terminal states "accept" and "reject"
# m-configuration 5-tuple: has state qb appearing about anywhere the author wants to put it, although two trends predominate e.g. (qa,S,Psb,LNR,qb), (qa,S,,qbPsb,LNR)
# state diagrams: older state tables use Minsky convention, modern convention closely resembles "engineering" convention of the article
# state transition tables: most reflect engineering practice with symbols along top and states down the left side. however, Turing's convention occassionally, and Minsky uses an odd one all his own (a mixture of the two).
wvbaileyWvbailey 20:34, 18 August 2006 (UTC)
thread_title:  No agreed-upon conventions in the literature! 

message: I removed the Busy Beaver reference in the justifications for the Turing machine as a model of real computation. It claimed to exhibit the busy beaver function as an example of a function that requires a lot of time, but not much space, to compute. However, this is incorrect. The busy beaver function starts from a very small number of initial bits, but then builds up an enormous number of intermediate bits (i.e. space) used to complete the computation. In fact, it can easily be proven that it requires an uncomputably large amount of space to compute. Pexatus 02:27, 29 August 2006 (UTC)
replies: text: I accidentally made this a subsection. Sorry for not previewing first. Pexatus 02:46, 29 August 2006 (UTC)
thread_title:  Removed Busy Beaver Reference 

message: I thought the colorful "rendering" of the machine was kind of cute. I don't have a preference one way or the other. So it doesn't disappear I pasted it into the lead of the Turing machine gallery. wvbaileyWvbailey 14:55, 18 October 2006 (UTC)
replies: text: I find it equally cute, but I think your definition of "artistic" to be a bit... broad... -Tiak 06:06, 20 October 2006 (UTC)
thread_title:  Artistic representations 

message: SEE Wikipedia:Algorithms on Wikipedia.
Sorry, but the above is bogus. I am sticking with the convention in Boolos-Burgess-Jeffrey (2002) because it is a convention to be found in a published text. wvbaileyWvbailey 20:59, 13 November 2006 (UTC)
thread_title:  Style for Algorithms! 

message: Boothe is referenced several times but is not in the references.  I suspect that
the 1967 reference is the same as found on the Wikipedia State diagram page, but
I don't know what the 1965 reference is.
:Taylor Booth (no "e") should be 1967; this has been added to references, along with Kleene. I dunno about Boothe or "1965"; when I catch it I'll fix it. wvbaileyWvbailey 14:39, 11 December 2006 (UTC)
thread_title:  Missing Reference