Transcript Modeling Computation - University of Virginia
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)
Lecture 2: Modeling Computation
IBM 5100 (1975)
5
Turing invented his model in 1936. What “computer” was he modeling?
“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
9
“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
Turing’s Model
...
0 0 0 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
Lecture 2: Modeling Computation
Input: 1 Write: 1 Move: Input: 1 Write: 1 Move:
Halt
H
10
What makes a good model?
Ptolomy
Lecture 2: Modeling Computation
Copernicus F = GM 1
M
2 / R 2 Newton
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: Input: 0 Write: 1 Move: Input: 1 Write: 2 Move: Start
A
Input: 2 Write: 1 Move:
B
Input: 1 Write: 2 Move: 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 machines
solve?
can particular What is a problem ?
What is a machine ?
What does it mean for a machine to solve a problem ?
Lecture 2: Modeling Computation 18
Finite Problems Problems with a finite number of possible inputs Uninteresting: can be solved by a lookup machine 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)
Undecidable Problems Tractable problems
(problems that can be solved by some TM in reasonable time)
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”)
Q
x
q
0
F
Q Q
finite set (“alphabet”)
Q
(“transition function”) start state 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 *(q 0 , 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