Introduction to Computer Science CSCI 109 China – Tianhe-2 Andrew Goodney Fall 2018 Lecture 11: Abstract Machines and Theory Nov. 12th, 2018
Schedule 1
Abstract machines and theory u What is theoretical computer science? u Finite state machines u The Turing machine Reading: St. Amant Ch. 8 u The Church-Turing thesis u The halting problem u The analysis of algorithms u The analysis of problems 2
What is theoretical computer science? u The study of what can be computed and how efficiently it can be computed u Based on abstract mathematical models u Insight into the behavior of a real computer… … any real computer 3
Finite state machines Up Fed Asleep Crying On Hungry More Down Up Hungry hungry Awake, Off not crying Down 1 day old infant 10 day old infant Light switch 4
Finite state machines Add M Add M Add M Add M M+1 M+2 M+3 M+4 Add M Add F Add F Add F Add F M=F Add F Add F Add F Add F Add M F+1 F+2 F+3 F+4 Add M Add M Add M Add F St. Amant pp. 152 5
Finite State Machines u Why look at FSMs? u They “compute” v Sort-of… lots of limitations u They are simple v Can be modeled mathematically 6
Finite state machine limitations u If a finite state machine with n states is given n+1 symbols, it will revisit one state at least once u No way to tell if revisited state is being visited for the 1 st time or 5 th time u The pigeonhole principle u Problems an FSM cannot solve: v Given a string of As and Bs, tell if the number of As and Bs are the same v Tell if a string is a palindrome 7
FSM -> TM u FSM can’t do general computation u Their simplicity is alluring u Can we do better? v Combine FSM + Memory u Several forms v Most famous is Turing Machine v Memory is a “tape” 8
The Turing machine u An infinite tape, with squares marked on it u Each square can be blank or hold a symbol u A machine moves over the tape u When positioned over a square, the machine can v Read a symbol from the tape v Erase a symbol from the tape v Write a symbol onto the tape (erasing what was on the square) v Do nothing u The machine can move either one square to right or left 9
Simple Turing Machine with 1 symbol https://vimeo.com/46913004 10
Alan Turing 11
Turing Machines…WTF? u “Alan Turing and his Ph.D. advisor Church studied the universality of computation (among other things) in the 1930s. Turing formulated the Turing Machine in order to capture everything that computers can do…” Igor Markov, EECS Prof at Michigan u “As others have correctly pointed out that the purpose ‘was to answer the halting problem, which Turing published in his 1937 paper On Computable Numbers With an Application to the Entscheidungsproblem’. The idea that a machine can perform the tasks of any other machine is at the centre of the concept of a Universal (Turing) machine…” Hector Zenil, Lab Leader, Karolinska - Senior Researcher, Oxford 12
More quotes re: Turing Machines u “A Turing machine can perform any algorithm -- it can always be configured to give a particular output for a particular input. But this simple idealized device requires infinite memory so it's not possible to build a physical Turing machine. However, a physical device is said to be Turing complete if it can simulate any algorithm that could be run by the idealized Turing machine.” Jeff Lamattery, B.S. Physics, UCSD 13
More quotes re: Turing Machines u “…Newman mentioned Hilbert's Entscheidungsproblem which dates back to 1928. This problem is that of finding an algorithm that can decide whether a given statement is provable within a logical system. If this decision problem were solvable, we could use algorithms to carry out mathematical research… Turing set out to understand the Entscheidungsproblem, and for this he needed to develop a mathematical model of algorithms. This model is what we now call the Turing machine model…The main theorem of the paper is that the Entscheidungsproblem is not solvable – put informally, there can be no algorithm that can "automatize" mathematics – and the proof relies on being able to express the behaviour of a Turing machine in first-order logic.” Hans Hyttel, Associate Professor 14
Turing Machine Representation: Table This machine has 4 symbols: 0, 1, _ and * L means the head moves to the left R means the head moves to the right 15
Turing Machine Representation: Table 16
Turing Machine Representation: Table 17
Turing Machine Representation: Table write_symbol, head_move_direction, state_update 18
Turing Machine Representation: Table write_symbol, head_move_direction, state_update 19
Same Machine as a State Diagram read_symbol,write_symbol,head_position_move 20
Same Machine as a State Diagram read_symbol,write_symbol,head_position_move 21
22
Example execution u Assume the machine always begins in state 0 with the head positioned on the rightmost non-blank square u The machine stops when it is in state 4 (called an accept state) u The machine stops when it is in state 5 (called a reject state) u How does the execution look if the tape has an input of 10 written on it at the beginning ? 23
Behavior of the machine on input 10 24
Behavior of the machine on input 10 25
Behavior of the machine on input 1010 26
What does this Turing machine do? u Checks if a binary string has the same number of 1’s and 0’s and enters the accept state if it does, otherwise it enters the reject state. 27
Turing Machine Programming u Writing programs for a Turing machine is very tedious u However… 28
The Church-Turing thesis Turing machines are capable of solving any effectively solvable algorithmic problem Turing machines are thus excellent models for what (all) real computers are capable of doing 29
Problems not ‘effectively computable’ u Are there problems that are not effectively computable ? u Yes, infinite such problems u Could these be computable someday ? u Perhaps, but not on a Turing-equivalent computer 30
A halting question u Deciding whether a program will halt (terminate) u Does the following program halt ? Input number While number is not 0 Print number number = number – 1 31
The halting problem u Deciding whether a given program will halt (terminate) on an arbitrary input u In 1936, Turing proved that a general algorithm to the halting problem for all possible programs over all possible inputs cannot exist The halting problem is undecidable 32
Undecidable Problem u Undecidable Problem: v Problem requires a yes/no answer v But no program exists that will always give the correct answer 33
Proof sketch for halting problem u Want to decide if program A halts on input a u Need to write a program, lets call it halter v Inputs: A, a v Output: Yes (if program A halts on input a) or No (if program A does not halt on input a) i.e analyze A for input a halter(A,a) if(some complex computation)is true Return Yes else Return No 34
The halting problem is undecidable u In 1936, Turing proved that a general algorithm to the halting problem for all possible programs over all possible inputs cannot exist u In other words, a general version of halter (one that works for all programs and their inputs) does not exist 35
Proof by contradiction u Assume that a general version of halter exists u Show that this assumption leads to a contradiction u Invent a new program called clever clever(program,input) result = halter(program,input) if result is No return Yes else loop forever 36
Proof by contradiction u What does clever do when given itself as input? clever(program,input) result=halter(program,input) if result is No return Yes else loop forever 37
Proof by contradiction u If halter says clever(program,input) that clever halts, result=halter(program,input) then clever if result is No loops forever (which means it return Yes doesn’t halt) else u If halter says loop forever that clever does not halt then Conclusion: The program clever halts and halter cannot exist returns Yes 38
Russell’s Paradox u In a hypothetical small u More generally: town: v Let R be the set of all sets that are not members of v There is one male barber themselves v The barber shaves all those v If R is not a member of itself, and only those men in town then its definition dictates who do not shave themselves that it must contain itself, and v All men stay clean shaven if it contains itself, then it either by shaving themselves contradicts its own definition or going to the barber as the set of all sets that are not members of themselves u Who shaves the barber? https://plato.stanford.edu/entries/russell-paradox/ 39
Other Undecidable Problems u Both of these proved by showing an implementation on a Turing machine would just be the halting problem u Matrix mortality: given a finite set of n x n sized matrices, does a sequence of matrix multiplications (repetitions allowed) exist that yields the zero matrix? v Undecidable for a set of six or more 3 x 3 matrices u Post’s Correspondence Problem v Given two equal length lists of strings written in the same alphabet, (list A, list B) where the strings are indexed 1….|A|, does a sequence of indexes exist that when applied to each list, generates the same compound word? 40
Recommend
More recommend