4: The limits of computation Flashcards
What is the Church-Turing thesis?
That any algorithmic procedure can be implemented and carried out on a Turing machine.
What does it mean for a programming language to be Turing-complete?
A programming language is Turing-complete if it is able to simulate every Turing machine (or equivalently, the Universal Turing Machine). Automatons and other machines can be said to be Turing-complete as well as programming languages so long as they too can simulate all Turing machines.
How does being Turing-complete affect the power of programming languages?
Languages are more powerful when Turing-complete rather than Turing-incomplete in that they are able to run some number of TMs that they would not be able to run otherwise. Note, however, that despite the Turing machine-based architecture of modern computers, regular languages (that can run on TMs) are a tiny number of languages so there is a large capacity of power for languages outside of Turing-completeness.
What is the Universal Turing Machine?
A TM that is able to simulate any other TM; when given the input , an encoding of a Turing machine M and an input word w for M, it simulates the action of M on w.
Prove that the Universal Turing Machine exists (in theory, not as a machine implementing it).
??
What is decidability?
A true/false decision problem is decidable if there exists an effective method, here a TM, for deriving the correct answer.
What is a decision problem?
A decision problem is any well-specified problem whose result is true or false.
True/false: finding whether there exist algorithms to solve decision problems is equivalent to finding whether one can solve these problems using a Turing machine. Why?
True, since by the Church-Turing thesis says there is a TM that exists to implement any algorithm (that will accept when it results in a true solution).
What is a decider?
A TM that always halts (accepts or rejects) and never infinitely loops.
What does it mean for a language to be Turing-decidable?
Whether or not a problem may be solved, here by a decider TM (decider = always halts and never infinitely loops). A language is Turing-decidable if there exists a decider TM whose language is the same as the language.
What does it mean for a language to be Turing-recognisable?
A language is Turing-recognisable if and only if there exists a Turing Machine which will halt and accept only the strings in that language and for strings not in the language, the TM either rejects or does not halt at all.
True/False: Not all Turing-decidable languages are Turing-recognisable?
False, all Turing-decidable languages are Turing-recognisable.
Prove that all Turing-decidable languages are Turing-recognisable.
Consider a Turing-decidable language L. By assumption of the Church-Turing thesis, there is a Turing machine M such that L = L(M) and M is a decider. So, in particular, M is a Turing machine that recognises L.
True/false: all context-free languages are Turing-decidable.
True.
Let A = {<b> | B is a DFA that accepts w} .</b>
True/false: any such language A is not decidable.</b>
False, any such language will be decidable.
Prove that any language {<b> | B is a DFA that accepts w} will be decidable.</b>
??
What is the acceptance problem?
To find a decider TM for the acceptance language, AT = { | M is a TM which accepts the word w}.
Is the language { | M is a TM which accepts the word w} Turing-recognisable?
Yes, the acceptance language is Turing-recognisable but it is not decidable.