Like this presentation? Why not share!

# Turing Machines, Computability, Computers and Intelligence

## by peterbuck on May 10, 2010

• 1,217 views

### Views

Total Views
1,217
Views on SlideShare
1,081
Embed Views
136

Likes
2
94
0

### 3 Embeds136

 http://www.aalizwel.com 107 http://aalizwel.com 27 http://www.slideshare.net 2

### Accessibility

Uploaded via SlideShare as Microsoft PowerPoint

## Turing Machines, Computability, Computers and IntelligencePresentation Transcript

• Foundations of Software Design Fall 2002 Marti Hearst Lecture 29: Computability, Turing Machines, Can Computers Think?
• Computability
• Is there anything a computer cannot compute?
• Linked to the notion of what is an algorithm.
• Alan Turing
• An amazing scientist
• Helped solved the Enigma Machine (WWII)
• Invented the theory behind computers
• Turing Machine
• Turing Test
• Turing Machines
• Anything that can be computed by a finite set of rules can be computed by a Turing machine.
• Turing Equivalence
• We saw that finite automata are less powerful than TMs
• Can’t compute
• Thus not Turing-equivalent
• Modern computers and programming languages are all Turing-equivalent
• Regular Languages Context-Free Languages Languages accepted by Turing Machines
• The Tape ...... ...... Read-Write head No boundaries -- infinite length The head moves Left or Right
• ...... ...... Read-Write head The head at each time step: 1. Reads a symbol 2. Writes a symbol 3. Moves Left or Right
• ...... ...... Example: Time 0 ...... ...... Time 1 1. Reads 2. Writes 3. Moves Left
• The Input String ...... ...... Blank symbol head Head starts at the leftmost position of the input string Input string
• States & Transitions Read Write Move Left Move Right
• Example: ...... ...... Time 1 current state
• ...... ...... Time 1 ...... ...... Time 2
• Determinism Allowed Not Allowed Turing Machines are deterministic
• Halting The machine halts if there are no possible transitions to follow
• Example: ...... ...... No possible transition HALT!!!
• Final States Allowed Not Allowed
• Final states have no outgoing transitions
• In a final state the machine halts
• Acceptance Accept Input If machine halts in a final state Reject Input If machine halts in a non-final state or If machine enters an infinite loop
• Infinite Loop Example A Turing machine for language
• Time 0
• Time 1
• Time 2
• Time 2 Time 3 Time 4 Time 5 ... Infinite Loop
• Church-Turing Thesis
• The Church-Turing thesis says that Turing machine algorithms are the same as our intuitive notion of algorithms.
• Most people think the Church Turing thesis is correct.
• It means, among other things that
• You can simulate any computer program that runs on any hardware in any language with any other program on any other hardware using any other language.
• Tasks that humans agree is an algorithm can always be executed on a computer.
• The Halting Problem
• An example of something that is not computable.
• Created by Turing in 1936 to define a problem which no algorithmic procedure can solve.
• Can we write a program that will take in a user's program and inputs and decide whether
• it will eventually stop , or
• it will run infinitely in some infinite loop ?
• Assume that it is possible to write a program to solve the Halting Problem.
• Denote this program by HaltAnswerer( prog , inputs ).
• HaltAnswerer( prog , inputs ) will
• return yes if prog will halt on inputs and
• no otherwise.
• A program is just a string of characters
• E.g. your Java program is just a long string of characters
• An input can also be considered as just a string of characters
• So HaltAnswerer is effectively just working on two strings
• Proof (cont.)
• We can now write another program Loopy(prog) that uses HaltAnswerer
• The program Loopy(prog) does the following:
• [1] If HaltAnswerer( prog , prog ) returns yes ,
• Loopy will go into an infinite loop .
• [2] If HaltAnswerer( prog , prog ) returns no ,
• Loopy will halt.
• Proof (cont.)
• [1] If HaltAnswerer( prog , prog ) returns yes ,
• Loopy will go into an infinite loop .
• [2] If HaltAnswerer( prog , prog ) returns no ,
• Loopy will halt.
• Consider what happens when we run Loopy ( Loopy ).
• If Loopy loops infinitely ,
• HaltAnswerer( Loopy , Loopy ) return no which by [2] above means Loopy will halt .
• If Loopy halts ,
• HaltAnswerer( Loopy , Loopy ) will return yes which by [1] above means Loopy will loop infinitely .
• Conclusion: Our assumption that it is possible to write a program to solve the Halting Problem has resulted in a contradiction.
• Diagonalization
• Not Diagon Alley
• A proof by contradiction technique
• Uses the notion of Infinity
• The name comes from a proof that shows you can’t ever list all numbers.
• Assume you list all possible binary numbers
• Diagonalization shows you can always construct a new number that is not yet in the list
• Have to assume numbers can have infinite length
• Construct the new number by choosing the opposite of the number on the diagonal.
• Diagonalization B1 0 0 0 0 0 … B2 0 0 1 0 1 … B3 1 0 1 1 0 … B4 0 1 1 1 1 … B5 1 1 0 0 0 … … D 1 1 0 0 1 …
• The Universal Turing Machine
• There are an infinite number of Turing Machines
• There are an infinite number of calculations that can be done with a finite set of rules.
• However, we can define a Universal Turing Machine which can simulate all possible TMs
• Comes from the definition of TMs
• You convert the description of the TM and its input into two tapes, and use these as the input to the UTM
• The Halting Problem
• Halting Problem:
• There is no procedure for telling whether an arbitrary TM will halt on a given input.
• Use Diagonalization to show this.
• Assume there is a rule for deciding if a TM will halt.
• Construct a table as follows:
• List all Turing machines down the side
• List the possible inputs across the top
• In position (j,i) put the result of executing Turing machine j on input i
• If it halts, output H
• If it doesn’t halt, output ?
• Diagonalization 1 2 3 4 5 … T1 H H ? H H … T2 ? ? H H H … T3 H H H H H … T4 H H H ? H … T5 H H H H H … … D ? H ? H ? …
• Diagonalization on the Halting Problem
• Now define a new TM called D that will halt for all inputs. It outputs
• H if TMi(i) does not halt
• ? if TMi(i) does halt
• We already said that the assumption is that we can always decide if a TM halts.
• Also, we said this table lists all possible TMs.
• So D must be in the table.
• But this means that we are saying that D outputs halt if it doesn’t halt!
• To see this, give D as input to itself.
• This is a contradiction. Hence the premise does not hold: We cannot determine if an arbitrary program will halt.
• “Going Meta”
• This proof based in part on Gödel’s Theorem
• If you are interested in these kinds of questions (and other things related to “going meta” like compiler compilers), see
• Gödel, Escher, Bach: An Eternal Golden Braid , by Douglas Hofstadter.
• The Turing Test
• An observer
• Interacts with a keyboard and monitor
• Has to distinguish which of two respondents is a computer and which is human.
• There is a contest with a \$100,000 prize!
• For the first computer whose responses are indistinguishable from a human's.
• The Loebner Prize http://www.loebner.net/Prizef/loebner-prize.html
• It’s actually pretty easy to fool people over the short term.
• Chat room ’bots work quite well.
• What is Intelligence?
• Do androids dream … ?
• What would it take for a computer’s thoughts to be indistinguishable from a human’s?
• THIS is the deepest question of CS.