Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is this an invalid Turing machine? [closed]

Whilst doing exam revision I am having trouble answering the following question from the book, "An Introduction to the Theory of Computation" by Sipser. Unfortunately there's no solution to this question in the book.

Explain why the following is not a legitimate Turing machine.

M = {

The input is a polynomial p over variables x1, ..., xn

  1. Try all possible settings of x1, ..., xn to integer values
  2. Evaluate p on all of these settings
  3. If any of these settings evaluates to 0, accept; otherwise reject. }

This is driving me crazy! I suspect it is because the set of integers is infinite? Does this somehow exceed the alphabet's allowable size?

like image 934
Danny King Avatar asked Mar 12 '10 20:03

Danny King


People also ask

Do all Turing machines recognize a language?

The turing machine accepts all the language even though they are recursively enumerable. Recursive means repeating the same set of rules for any number of times and enumerable means a list of elements.

What are restricted Turing machines?

A Turing Machine is said to be a halting Turing machine if it always halts for every input string. It can accept the recursive language and is less powerful than Turing machine. Linear Bounded Automata : It behaves as a Turing machine but the storage space of tape is restricted only to the length of the input string.

How do you solve Turing machine problems?

Solution: Firstly we read the first symbol from the left and then we compare it with the first symbol from right to check whether it is the same. Again we compare the second symbol from left with the second symbol from right. We repeat this process for all the symbols.

Can a Turing machine run infinitely?

Because running off the end of the input doesn't cause the machine to stop, the machine needs to indicate when to stop processing. In particular, a TM can run forever. Definitions: Let L⊆Σ∗ be a language.


1 Answers

Although this is quite an informal way of describing a Turing machine, I'd say the problem is one of the following:

  • otherwise reject - i agree with Welbog on that. Since you have a countably infinite set of possible settings, the machine can never know whether a setting on which it evaluates to 0 is still to come, and will loop forever if it doesn't find any - only when such a setting is encountered, the machine may stop. That last statement is useless and will never be true, unless of course you limit the machine to a finite set of integers.

  • The code order: I would read this pseudocode as "first write all possible settings down, then evaluate p on each one" and there's your problem: Again, by having an infinite set of possible settings, not even the first part will ever terminate, because there never is a last setting to write down and continue with the next step. In this case, not even can the machine never say "there is no 0 setting", but it can never even start evaluating to find one. This, too, would be solved by limiting the integer set.

Anyway, i don't think the problem is the alphabet's size. You wouldn't use an infinite alphabet since your integers can be written in decimal / binary / etc, and those only use a (very) finite alphabet.

like image 83
Nikolaus Mayer Avatar answered Sep 21 '22 06:09

Nikolaus Mayer