Modeling Computation - University of Virginia

advertisement
Lecture 2:
Modeling
Computers
cs302: Theory of Computation
University of Virginia
Computer Science
David Evans
http://www.cs.virginia.edu/evans
Menu
• Modeling Computers
• Course Organization
• Finite Automata
Lecture 2: Modeling Computation
2
What can computers do?
What is a “computer”?
Lecture 2: Modeling Computation
4
How should we model a Computer?
Colossus (1944)
Cray-1 (1976)
Apollo Guidance
Computer (1969)
Turing invented his
model in 1936.
What “computer”
was he modeling?
IBM 5100 (1975)
Lecture 2: Modeling Computation
5
“Computers” before WWII
Lecture 2: Modeling Computation
6
Mechanical Computing
Lecture 2: Modeling Computation
7
Modeling Pencil and Paper
...
#
C
S
S
A
7
2
3
...
How long should the tape be?
“Computing is normally done by writing certain
symbols on paper. We may suppose this paper is
divided into squares like a child’s arithmetic book.”
Alan Turing, On computable numbers, with an
application to the Entscheidungsproblem, 1936
Lecture 2: Modeling Computation
8
Modeling Brains
•Rules for steps
•Remember a
little
“For the present I
shall only say that
the justification lies
in the fact that the
human memory is
necessarily limited.”
Alan Turing
Lecture 2: Modeling Computation
9
Turing’s Model
...
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Input: 0
Write: 1
Move: 
Start
A
Input: 0
Write: 1
Move: 
B
Input: 1
Write: 1
Move: Halt
H
Input: 1
Write: 1
Move: 
Lecture 2: Modeling Computation
10
0
0
0
...
What makes a
good model?
Copernicus
F = GM1M2 / R2
Newton
Ptolomy
Lecture 2: Modeling Computation
11
Questions about
Computing Model
• How well does it match “real”
computers?
– Can it do everything they can do?
– Can they do everything it can do?
• Does it help us understand and
reason about computing?
– What problems can computers solve?
– How long will it take?
Lecture 2: Modeling Computation
12
Universal Turing Machine
Input: 2
Write: 1
Move: 
Start
A
Input: 1
Write: 2
Move: 
Input: 0
Write: 1
Move: 
Input: 2
Write: 1
Move: 
Input: 1
Write: 2
Move: 
B
Input: 0
Write: 2
Move: 
Lecture 2: Modeling Computation
13
Course Organization
Lecture 2: Modeling Computation
14
Assignments
• Reading: mostly from Sipser, some
additional readings later
• Problem Sets (6 – first is due in 1
week)
• Exams (2 + final)
• Extra credit:
– Challenge Problems
– Communication Efforts
Lecture 2: Modeling Computation
15
Help Available
• David Evans
– Office hours (Olsson 236A):
Mondays, 2-3pm
– Coffee Hours (Wilsdorf):
Wednesdays, 9:30-10:30am
– Other times: open office door, or send email to
arrange
• Assistants: Suzanne Collier, Qi Mi, Joe
Talbott, Wuttisak Trongsiriwat
– Problem-Solving Sessions (Olsson 226D)
– Mondays 5:30-6:30pm, Wednesdays 6-7pm
First coffee hours and problem-solving session tomorrow
Lecture 2: Modeling Computation
16
Honor Code
• Please don’t cheat!
– If you’re not sure if what you are about to do
is cheating, ask first
• On most problem sets: “Gilligan’s Island”
collaboration policy
– Encourages discussion in groups, but ensures
you understand everything yourself
– Don’t use found solutions
• On most exams: work alone, one page of
notes allowed
Lecture 2: Modeling Computation
17
Main Question
What problems can particular
machines solve?
What is a problem?
What is a machine?
What does it mean for a machine to solve a problem?
Lecture 2: Modeling Computation
18
Uninteresting:
can be solved by
a lookup machine
Finite
Problems
Problems with a finite
number of possible
inputs
Except for trick questions, all problems we
are interested in in this class have infinitely
many possible inputs.
Lecture 2: Modeling Computation
19
Outputs
• How many possible outputs do you
need for an interesting problem?
2 – “Yes” or “No”
Most problems can be framed as decision problems:
What is 1+1?
vs.
Is 1+1 = 3?
Lecture 2: Modeling Computation
20
Decidable problems
(problems that can be
solved by some TM)
Tractable problems
(problems that can be
solved by some TM in
reasonable time)
Undecidable
Problems
Regular
Languages
(can be
recognized by a
DFA)
Context-Free Languages
(can be recognized by a PDA)
Lecture 2: Modeling Computation
21
Finite Automata
(Finite State Machines)
Lecture 2: Modeling Computation
22
Informal Example
• Recognize binary strings with an
even number of “1”s
What is a language?
What does it mean to recognize a language?
Lecture 2: Modeling Computation
23
Designing DFAs
• Example: design a DFA that
recognizes the language of binary
strings that are divisible by 3
• Design tips:
– Think about what the states represent
(e.g., what is the current remainder)
– Walk through what the machine should
do on example inputs
Lecture 2: Modeling Computation
24
Formal Definition
A finite automaton is a 5-tuple:
Q
finite set (“states”)

finite set (“alphabet”)
 Q x   Q (“transition function”)
q0  Q
start state
FQ
set of accepting states
Lecture 2: Modeling Computation
25
Computation Model
• Define * as the “extended transition
function”
*: Q x *  Q
Basis: *(q, ε) = q
Induction:
w = ax a  , x  *
*(q, w) = *((q, a), x)
• w  L(A) iff *(q0, w)  F
Lecture 2: Modeling Computation
26
Inductive Definitions
code example:
State nextState(State q, String w) {
if (w.length() == 0) return q;
else return (nextState (transition (q, w.charAt(0)),
w.substring(1));
}
Lecture 2: Modeling Computation
27
Regular Languages
• Definition: A language is a regular
language if there is some Finite
Automaton that recognizes it.
Lecture 2: Modeling Computation
28
Complement Proof
• Prove: the set of regular languages is
closed under complement.
Lecture 2: Modeling Computation
29
Charge
• Remember to submit registration
survey
• PS1 is posted on course website: due
1 week (- 73 minutes) from now
• Coffee hours tomorrow (9:30am)
• Problem-solving session tomorrow
(6pm)
Lecture 2: Modeling Computation
30
Download