the church-turing thesis lecture by h. munoz-avila

Post on 12-Jan-2016

228 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

The Church-Turing Thesis

Lecture by H. Munoz-Avila

We have the Notion of Turing Machines

• Transitions: ((p,),(q,R))

• Here is a Turing machine “in action”• http://www.youtube.com/watch?v=FTSAiF9AHN4

The Church-Turing Thesis

Algorithms Turing Machines

Sounds Unbelievable

• We are so used to programming scripting languages• Things like (in tolua, a variant of Lua that allows C++

constructs):

But Actually it is not so “unbelievable”

But Actually it is not so “unbelievable”

Can be translated into C++

(not an actual translation of the code above)

But Actually it is not so “unbelievable”

Can be translated into C

(not an actual translation of the code above)

But Actually it is not so “unbelievable”

can be translated into C kernel

(not an actual translation of the code above)

But Actually it is not so “unbelievable”

can be translated into Assembler

(not an actual translation of the code above)

But Actually it is not so “unbelievable”

Can be ran by the Von Neumann machine

But Actually it is not so “unbelievable”

We have the same basic elements in Turing Machines:

• We can do arithmetic• Control• And a lot of memory!

So Why is it Called a “Thesis”

• There is no precise notion for “algorithm”

• Of course there is a precise notion for a C++ program

• But how does programs will look like 40 years from now?– Think how programs looked like 40 years ago

• So we have a “moving target”

A Bit of History

• Das Entscheidungsproblem (Hilbert, 1928)– Is there a decider for First-order logic?

• Vollständigkeit des Logikkalküls (Gödel, 1929)

• Church developed -calculus and proved that the Entscheidungsproblem cannot be solved (1936)– impossible to prove that two -calculus

are equivalent• Turing proved that the Halting problem can

be reduced to the Entscheidungsproblem – And hence it cannot be solved (1936)

Three Equivalent Formalisms

• -calculus

• Recursive functions

• Turing machines

LISP

(defun palindrome( L )

(cond

((null L) T )

((equal (car L) (car (last L)))

(palindrome (cdr (reverse (cdr L)))))))

(inspired by -calculus)

Prolog

palCheck(List) :- reverse(List,List).

reverse(L1,L2) :- rev(L1,[],L2).

rev([],L,L).

rev([H|L],L2,L3) :- rev(L,[H|L2],L3).

(inspired by recursive functions)

Turing Machine

C Program

Not an Accident

• Any algorithm written in any one of these languages can be written in any of the other ones

• Researchers sometime refer to programming languages having this property as Turing-complete

• Examples of Turing-complete languages: C, C++, java, LISP, Prolog, …

• Examples that are not: Context-free languages, “STRIPS” planning, LOOP

What Comes Next

• Study some difficult problems that are in fact decidable

• Study some harder problems that are:

1. Not decidable but recognizable

2. Problems that are not even recognizable

3. By the Church-Turing thesis, no algorithm exists that solves problems in (1) and (2)

(any non-decidable problem)

top related