Presentation is loading. Please wait.

Presentation is loading. Please wait.

David Evans cs302: Theory of Computation University of Virginia Computer Science Lecture 2: Modeling Computers.

Similar presentations


Presentation on theme: "David Evans cs302: Theory of Computation University of Virginia Computer Science Lecture 2: Modeling Computers."— Presentation transcript:

1 David Evans http://www.cs.virginia.edu/evans cs302: Theory of Computation University of Virginia Computer Science Lecture 2: Modeling Computers

2 2 Lecture 2: Modeling Computation Menu Modeling Computers Course Organization Finite Automata

3 What can computers do?

4 4 Lecture 2: Modeling Computation What is a “computer”?

5 5 Lecture 2: Modeling Computation How should we model a Computer? Apollo Guidance Computer (1969) Colossus (1944) IBM 5100 (1975) Cray-1 (1976) Turing invented his model in 1936. What “computer” was he modeling?

6 6 Lecture 2: Modeling Computation “Computers” before WWII

7 7 Lecture 2: Modeling Computation Mechanical Computing

8 8 Lecture 2: Modeling Computation Modeling Pencil and Paper “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 #CSSA723 How long should the tape be?...

9 9 Lecture 2: Modeling Computation 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

10 10 Lecture 2: Modeling Computation Turing’s Model A Start B Input: 0 Write: 1 Move:  00000000... 000000000 Input: 0 Write: 1 Move:  H Input: 1 Write: 1 Move: Halt Input: 1 Write: 1 Move: 

11 11 Lecture 2: Modeling Computation What makes a good model? Copernicus F = GM 1 M 2 / R 2 Newton Ptolomy

12 12 Lecture 2: Modeling Computation 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?

13 13 Lecture 2: Modeling Computation Universal Turing Machine A Start B Input: 0 Write: 1 Move:  Input: 2 Write: 1 Move:  Input: 0 Write: 2 Move:  Input: 1 Write: 2 Move:  Input: 2 Write: 1 Move:  Input: 1 Write: 2 Move: 

14 14 Lecture 2: Modeling Computation Course Organization

15 15 Lecture 2: Modeling Computation 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

16 16 Lecture 2: Modeling Computation 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

17 17 Lecture 2: Modeling Computation 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

18 18 Lecture 2: Modeling Computation 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?

19 19 Lecture 2: Modeling Computation 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.

20 20 Lecture 2: Modeling Computation 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?

21 21 Lecture 2: Modeling Computation 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) Context-Free Languages (can be recognized by a PDA) Regular Languages (can be recognized by a DFA)

22 22 Lecture 2: Modeling Computation Finite Automata (Finite State Machines)

23 23 Lecture 2: Modeling Computation Informal Example Recognize binary strings with an even number of “1”s What is a language? What does it mean to recognize a language?

24 24 Lecture 2: Modeling Computation 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

25 25 Lecture 2: Modeling Computation Formal Definition A finite automaton is a 5-tuple: Q finite set (“states”)  finite set (“alphabet”)  Q x   Q (“transition function”) q 0  Q start state F  Q set of accepting states

26 26 Lecture 2: Modeling Computation 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

27 27 Lecture 2: Modeling Computation 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)); }

28 28 Lecture 2: Modeling Computation Regular Languages Definition: A language is a regular language if there is some Finite Automaton that recognizes it.

29 29 Lecture 2: Modeling Computation Complement Proof Prove: the set of regular languages is closed under complement.

30 30 Lecture 2: Modeling Computation 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)


Download ppt "David Evans cs302: Theory of Computation University of Virginia Computer Science Lecture 2: Modeling Computers."

Similar presentations


Ads by Google