Is this a Turing-complete machine?

In summary, a Turing-complete machine can be simulated by defining a number of states and specifying the actions for each state based on the input and tape alphabet. This approach may seem limited compared to other Turing machines, but it is still equivalent and can be expanded using programming tricks to simulate a real computer.
  • #1
2sin54
109
1
Say a Turing machine is simulated by the following rules:
  • A number of states can be defined.
  • Each state is defined by :
    • specifying what the head writes in the current cell in case of each symbol of the alphabet
    • specifying where the head moves (left or right) in case of each symbol of the alphabet of the current cell
    • specifying which state the current state transitions to in case of each symbol of the alphabet

Is this a Turing-complete (ignoring memory limitations) machine? I have seen very different Turing machines on the Internet by some people. For example palindrome checking-capable machine which, at some point during its procedure moves the head by more than 1 cell. Or at some other point it searches for a specific value on the tape. Both of these tasks seem impossible on the approach I outlined. Does it make the approach I described result in a non-Turing-complete machine?
 
Technology news on Phys.org
  • #2
I believe your version of the turing machine is the most common. It's typically pretty easy to prove that other types are equivalent to this type.
For example:
Using more different symbols. You can encode the states in binary as groups of symbols next to each other, you will need more states of course.
A single state of a 4-symbol machine will take 3 states of a 2-symbol machine that scans the tape to split the execution in 4 different paths, depending on if there's 00, 01, 10 or 11 on the tape. Then each of those four paths may need several extra states to write the 2 output symbols that encode the single symbol on the 4-symbol machine, and move the tape to the right starting place for the next step.

A Turing machine with more than one tape is harder. You must interleave the symbols of more than one tape on a single tape, as well as markers to find the current positions of all the tapes. For every step that the multi tape machine makes, the single tape machine will have to search for all the start of tape markers.
A multi-tape TM may be dramatically faster than a single tape machine, but is still equivalent.
Turing machines have also been proven equivalent to mant other kinds of abstract machines. Register machines, random access machines (use a computation to address memory), machines with stored programs, etc.
 
  • #3
Say a Turing machine is simulated by the following rules:
  • A number of states can be defined.
  • Each state is defined by :
    • specifying what the head writes in the current cell in case of each symbol of the alphabet
    • specifying where the head moves (left or right) in case of each symbol of the alphabet of the current cell
    • specifying which state the current state transitions to in case of each symbol of the alphabet

    Is this a Turing-complete (ignoring memory limitations) machine? I have seen very different Turing machines on the Internet by some people. For example palindrome checking-capable machine which, at some point during its procedure moves the head by more than 1 cell. Or at some other point it searches for a specific value on the tape. Both of these tasks seem impossible on the approach I outlined. Does it make the approach I described result in a non-Turing-complete machine?
As you're talking about a Turing - complete machine, you mean simulating a Turing machine using e,g. a programming language. Now, a Turing - complete programming language (or system in general) has to be able to give the ability to create and run any program that a Turing machine can run, given enough time and memory. Now, in the rules you define for the TM, I see a finite set of states, an input alphabet, a tape alphabet, a transition function - all these implied, but you also need a start state, a blank symbol and a set of final states.

There are various programming tricks for a TM in order to simulate a real computer, like multiple tracks: if you think of tape symbols as vectors with ##m## components and each component taking values from a finite alphabet, this makes the tape appear like having ##m## tracks, marking: you use an extra track in order to mark certain positions, state caching: you can also make state a vector construction with first component being the control state. Also, as willem2 points out, you can simulate a multi-tape Turing machine which will be harder but way faster.
 
Last edited:

1. What is a Turing-complete machine?

A Turing-complete machine is a theoretical model of computation that can perform any task that a Turing machine can. It is a universal computer that is able to simulate any algorithm or program. In other words, it is a machine that can solve any computable problem.

2. How do you determine if a machine is Turing-complete?

A machine is considered Turing-complete if it can simulate a Turing machine. This means that it must have the ability to perform basic operations such as input, output, conditional branching, and looping. It must also have an infinite amount of memory and be able to execute any algorithm or program.

3. What are the key characteristics of a Turing-complete machine?

A Turing-complete machine must have the ability to store and manipulate data, perform logical operations, and have an infinite amount of memory. It must also be able to execute any algorithm or program, and have the ability to simulate a Turing machine. Additionally, it must be able to perform basic operations such as input, output, conditional branching, and looping.

4. What are some real-world examples of Turing-complete machines?

Modern computers are considered Turing-complete machines. Other examples include programming languages such as Java, C++, and Python, as well as video game consoles and calculators. Essentially, any machine or system that has the ability to store and manipulate data, and execute algorithms, can be considered Turing-complete.

5. Why is it important to determine if a machine is Turing-complete?

Determining if a machine is Turing-complete is important because it allows us to understand the capabilities and limitations of that machine. It also helps us identify which problems can be solved by that machine and which cannot. Additionally, knowing if a machine is Turing-complete can inform the development of new technologies and advance the field of computer science.

Similar threads

  • Programming and Computer Science
Replies
29
Views
3K
  • Programming and Computer Science
Replies
25
Views
4K
  • Programming and Computer Science
Replies
2
Views
765
  • Programming and Computer Science
Replies
4
Views
1K
  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
Replies
2
Views
127
  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
1K
  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
1K
  • Set Theory, Logic, Probability, Statistics
Replies
9
Views
1K
  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
2K
Back
Top