Sie sind auf Seite 1von 40

Introduction to Computer Science

CSCI 109

China – Tianhe-2

Andrew Goodney
Fall 2017

Lecture 11: Abstract Machines and Theory Nov. 13th, 2017


Schedule

1
Abstract machines and theory
u What is theoretical computer
science?
u Finite state machines

u The Turing machine Reading:


u The Church-Turing thesis St. Amant Ch. 8
u The halting problem

u The analysis of algorithms


u The analysis of problems

2
What is theoretical computer science?

uThe study of what can be computed and


how efficiently it can be computed
uBased on abstract mathematical models

uInsight into the behavior of a real


computer…
…any real computer

3
Finite state machines

Up
Fed
Crying Asleep
On
Hungry

Down Up More
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


Add M M+1 M+2 M+3 M+4
Add F Add F Add F
M=F Add 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 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 1st time or 5th 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
6
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
7
Simple Turing Machine with 1 symbol

https://vimeo.com/46913004

8
Alan Turing

9
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

10
Turing Machine Representation: Table

11
Turing Machine Representation: Table

12
Turing Machine Representation: Table
write_symbol, head_move_direction, state_update

13
Turing Machine Representation: Table
write_symbol, head_move_direction, state_update

14
Same Machine as a State Diagram

read_symbol,write_symbol,head_position_move 15
Same Machine as a State Diagram

read_symbol,write_symbol,head_position_move 16
17
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 ?

18
Behavior of the machine on input 10

19
Behavior of
the machine
on input 10

20
Behavior of
the machine
on input 1010
21
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.

22
Turing Machine Programming

uWriting programs for a Turing machine is


very tedious
uHowever…

23
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
24
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

25
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

26
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


27
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)
halter(A,a)
if(some complex computation)is true
Return Yes
else
Return No
28
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
29
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
30
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
31
Proof by contradiction
u If halter says clever(program,input)
that clever halts,
result=halter(program,input)
then clever
loops forever if result is No
(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 32
Russell’s Paradox
u In a hypothetical small u More generally:
town: v Let R be the set of all sets
v There is one male barber that are not members of
v The barber shaves all those themselves
and only those men in town v If R is not a member of itself,
who do not shave themselves then its definition dictates
v All men stay clean shaven that it must contain itself,
either by shaving themselves and if it contains itself, then
or going to the barber it contradicts its own
definition as the set of all
u Who shaves the barber? sets that are not members
of themselves
33
Analysis of problems
u Study of algorithms illuminates the study of classes of
problems
u If a polynomial time algorithm exists to solve a problem
then the problem is called tractable
u If a problem cannot be solved by a polynomial time
algorithm then it is called intractable
u This divides problems into three groups:
v Problems with known polynomial time algorithms
v Problems that are proven to have no polynomial-time algorithm
v Problems with no known polynomial time algorithm but not yet
proven to be intractable
34
Tractable and Intractable
u Tractable problems (P) u Intractable
v Sorting a list v Listing all permutations (all
v Searching an unordered list possible orderings) of n numbers
v Finding a minimum spanning tree
in a graph

u Might be (in)tractable
v Subset sum: given a set of These problems have no known
numbers, is there a subset that polynomial time solution
adds up to a given number? However no one has been able to
v Travelling salesperson: n cities, n! prove that such a solution does not
routes, find the shortest route exist

35
Tractability, Intractability, Undecidability
u ‘Properties of problems’ (NOT ‘properties of algorithms’)
u Tractable: problem can be solved by a polynomial time algorithm (or
something more efficient)
u Intractable: problem cannot be solved by a polynomial time algorithm
(all solutions are proven to be more inefficient than polynomial time)
u Unknown: not known if the problem is tractable or intractable (no
known polynomial time solution, no proof that a polynomial time
solution does not exist)
u Undecidable: decision problem for which there is (provably) no
algorithmic solution on a Turing machine
v Non-existence
v Not a matter of efficiency
36
Abstract machines and theory
u What is theoretical computer
science?
u Finite state machines

u The Turing machine Reading:


u The Church-Turing thesis St. Amant Ch. 8
u The halting problem

u The analysis of algorithms


u The analysis of problems

37
Overview
Problems Low-level
Low-level
Low-level
instructions
instructions
instructions
Solution:
Algorithms + Executions
Data Structures managed by
Operating System
Pseudocode

Compile CPU, Memory, Disk, I/O


Program
Program
Program to
Program
38
Quiz #6
http://bit.ly/2yXjboq

39

Das könnte Ihnen auch gefallen