ITEC 420 - Section 3.3 - Church-Turing Thesis
Algorithm - Informal Definition
- What is an algorithm?
- Informal definition:
- Finite number number of steps
- Each step doable
- Eventually halts
- Could in theory be done with pencil and paper
- If you have enough of each and enough time
Informal Definitions Inadequate
- Informal definition long accepted (eg Euclid's algorithm for greatest
common factor)
- But, informal definition not good enough for analysis of what algorithms
are possible
Hilbert's Tenth Problem and Algorithm Definition
- Example: Hilbert's Tenth Problem
- Hilbert's Problems: 1900, 23 challenge problems for the 20th century
- Tenth Problem: Find an algorithm to determine if a polynomial has
an integral root
- Result (1970): No such algorithm is possible
- Analysis and Proof of 10th problem requires a formal definition of an algorithm
Formal, Equivalent Definitions of Algorithm
- Formal Definitions of algorithms - 1936:
- Alonzo Church: λ calculus (mathematical function)
- Alan Turing: Turing Machines
- λ calculus and Turing Machines proved equivalent
- Other equivalent definitions have been developed
Church-Turing Thesis
- Church-Turing thesis: Informal notion of algorithm is the same as (any of)
the formal definition(s)
- Result: Anything that can be computed (in the informal sense)
can be computed
with a Turing Machine (or with the λ calculus, or with ...)
- This is a Thesis:
- Could it be proved?
- Could it be disproved (ie shown to be false)?
Practical Consequence
- TM can implement any algorithm, so ...
- We can use pseudocode to specify a TM algorithm and we know that a TM can implement it
- Language Wars ???
CT Thesis and Language Wars
- Any language that can simulate a TM has equivalent power
- Called: Turing Complete Languages
- What languages can simulate a TM?
- Language wars???
- Any Turing Complete languages are equivalent in power
- although not in readability/writability
- Of course there are memory constraints, as well
Tenth Problem is NOT Decidable
- It's been proved that no algorithm exists for the tenth problem, which is ...
- Problem: language D = {p| p is a string that represents a polynomial with an integral root}
- D is recognizable, but no decidable
- Machine M:
- Input is a polynomial p over variable x
- Evaluate p with x set successively to 0, 1, -1, 2, -2, ...
- If p evaluates to 0 for any x, accept
- M will halt if p has an integer root but loop otherwise, UNLESS
- we can limit the values of x
- For polynomials over one variable, a limit is known
- For polynomials over several variables, no limit exists
- Thus M (revised for several variables) is not a decider (but it is a
recognizer)
Unrecognizable Languages
- In Chapter 4 we will see:
- That languages that are NOT Turing Recognizable must
exist
- Some specific languages that are not Turing recognizable
- In the process we see how to prove that a language is not recognizable