Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | dayna-conley |
View: | 216 times |
Download: | 1 times |
1R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Welcome to CSE 599
Instructor: Rajesh Rao ([email protected])
TA: Aaron Shon ([email protected])
Class web page http://www.cs.washington.edu/education/courses/599/CurrentQtr/ Add yourself to the mailing list see the web page
Today’s lecture: Course Introduction What is Computation? History of Computing Theoretical Foundations: Part I
2R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Course goals
To examine the future of computing Moore's law will certainly end. What are the alternatives?
Biologically-inspired and quantum computing
To broaden your perspectives on the fundamental aspects of computation
To give you sufficient exposure to understand the premises of alternative computing paradigms allow you to pursue these topics further
What we will not accomplish Mastery of any specific field
3R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
What we will cover
Background topics Theoretical foundations of computer science Silicon technology and digital computer organization Information theory and thermodynamics
DNA computing Using DNA-binding properties to solve computationally hard
problems
Neural computing Computation in animal brains and in artificial neural networks
Quantum computing Using quantum superposition for massively parallel computation
4R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Sequence of Lecture Topics
1. Theoretical Foundations of Computer Science (Jan 4 & 11)
2. Silicon Technology and Digital Computing (Jan 18, including a guest lecture by Chris Diorio, UW)
3. DNA Computing (Jan 25, including a guest lecture by Anne Condon, UBC)
4. Neural Computing (Feb 1 & 8)
5. Information Theory and Thermodynamics (Feb 15)
6. Quantum Computing (Feb 22, including a guest lecture by Dan Simon, Microsoft Research)
5R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Grading, homework, and other logistics
Grading: Homeworks 50%, Mini-Project 50%
Homework assignments will be handed out on the day of the lecture related to the homework (see Course web page)
Homeworks are due at the beginning of class on the specified due date (see Course web page)
Pick a mini-project related to a course topic (project ideas will appear on Course web…or come up with your own!)
Project presentations: beginning of March
Project reports due: finals week (Mar 12-15)
6R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
OK, enough about the course.Let’s get started…
What is computation?
What does it mean to “compute” something?
What is a computer?
7R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
What is a computer?
Consider the following:
A coffee filter
A wheat threshing machine
A handful of spaghetti
Can these be viewed as computers??
8R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Yes, if you can find a useful mapping…
For example, consider the handful of spaghetti
Suppose you want to sort 100 numbers
Take 100 sticks of spaghetti and cut them to the length of your numbers
Hold the spaghetti sticks and align their bottom ends on a table
Pick out the tallest stick, then the next tallest, and so on…
You have just sorted your 100 numbers using a spaghetti “computer”!
9R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
So, what is a computer?
A working definition: A computer is a physical system whose:
physical states can be seen as representing elements of another system of interest
transitions between states can be seen as operations on these elements
Three basic steps:1. Input data is coded into a form appropriate for physical system2. Physical system shifts into a new state3. Output state of system is decoded to extract results of computation
Consider these 3 steps for our spaghetti computer example. Also holds for silicon, DNA, neural, and quantum computers.
10R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
If computers can have such varied substrates, how did we end up with silicon-based digital computers on our desks (rather than, say, organic, spaghetti-manipulating analog computers)?
Answer: Because of a convergence of theoretical and practical ideas in the history of computing…
11R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
A Brief History of Computing
The early years: Mapping numbers to objects (e.g. stones) Adding and subtracting by manipulation Stonehenge (~ 2800 BC) – a prehistoric computer of solar eclipses?
The first personal “calculator” – the abacus (a mnemonic aid based on place-value notation)
12R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Early pioneers in software and hardware…
Muhammad ibn Musa Al’Khorizmi Proposed the concept of an “algorithm”
as a written process that achieves a certain goal when executed
Published first book on “software”(12th century)
Blaise Pascal Built a mechanical adding machine
in 1642 Numbers mapped to dials and gears Based on differential transmission via
gears of different sizes
13R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
The middle ages (1800-1900)…
First software-based controller (1801): J.-M. Jacquard’s Automatic Loom Control program written on punched
cards
Babbage’s ideas for steam-powered computers Difference Engine (1822) for computing mathematical tables Analytical Engine (1833) for general computation (introduced conditionals) Both were never constructed
14R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Punched cards and digital computing…
Used by Hollerith to input data to his “Tabulating machine” for tabulating and counting census information (1890)
Perforated strips of discarded movie film used by Zuse to control the first programmable digital computers (Z1-Z3)
15R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
The digital computer revolution
~1850: George Boole invents Boolean algebra Maps logical propositions to symbols Allows us to manipulate logic statements using mathematics
1936: Alan Turing develops the formalism of Turing Machines
1945: John von Neumann proposes the stored computer program concept
1946: ENIAC: 18,000 tubes, several hundred multiplications per minute
1947: Shockley, Brattain, and Bardeen invent the transistor
1956: Harris introduces the first logic gate
1972: Intel introduces the 4004 microprocessor
Present: <0.2 m feature sizes; processors with >20-million transistors
16R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
What is computable?
We have examined how developments in theory and technology paved the way for the digital computers we use today
A key concept that allowed general purpose computing: the stored program idea
Theoretical roots: Turing machines, Machines simulating other machines, Universal Turing Machines
Church-Turing Thesis: The Turing machine is equivalent in computational ability to any general mathematical device for computation, including digital computers.
Important Result: There exist functions that are not computable by any computational device
17R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
5 minute break….
(Next: Theoretical foundations of computing)
18R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Introduction
We asked what computation was - now we’ll try to answer the question “what is computable?”
These results about computability are fundamental. They apply regardless of the machine But they don’t answer all of our questions
One of the major contributions of theoretical CS: negative results
19R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Abstract Models of Computation
We want to answer fundamental questions: What can we do in a reasonable amount of time? What can we do in a reasonable amount of space? What can we do at all?
AMAZING result-- some things are not computable!
20R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
A First Model for Computation: Automata
Chalkboard Example…(automata for Parity, from Feynman text, chapter 3)
21R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Languages
A language is some set of strings
The language of a FA is the set of strings the FA recognizes
In the parity example, we can write L = 0* (1 0* 1)* 0*
22R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
In-Class Exercise
Design a Finite Automata that accepts strings where the number of 1’s AND the number of 0’s is even…
23R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Limitations of DFA’s
Cannot recognize some languages e.g. balanced parens, 0n1n
Only a finite number of states, so it can’t count.
We can actually characterize what languages DFA’s recognize exactly Called regular languages
24R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
The Chomsky Hierarchy of Languages
Finite AutomataRegular Languages e.g. parity
Pushdown AutomataContext-Free Languages
e.g. 0n1n
Linear Bounded Automata
Context Sensitive
Languages e.g. anbncn
Turing MachinesRecursively Enumerable Languages
25R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
DFA’s vs. Computers
Technically, computers are DFA’s
BUT- we think they can answer questions like 0n1n
They actually can’t-- what if n was 10100?
We think of computers as storing numbers, instead of moving to a state which represents storing that number, but the general notion is the same
26R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Turing Machine
Equivalent to a finite automaton that has an unbounded tape
Has a head which can move left or right, as well as write symbols on the tape
The TM is aware of what the head is looking at
Can defined as a “program” or list of quintuples: (current state, current symbol on tape) to
(next state, new symbol to write, direction of head movement), or (q, s, q’, s’, d) There exists an initial state q0 and a set of halting states
27R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
An Example of a Turing Machine
A Turing Machine for checking if parentheses are balanced (from Feynman text, chapter 3)
E.g. Tape contains …E()E…, or …E(()(E…, or …E((()()))E…
28R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Exercise on Turing Machines…
Design a Turing machine that multiplies two unary numbers
Example: Tape contains …111X11…Answer should be: …111111…
For a complete solution, see the handout (chapter 28 of The Turing Omnibus by Dewdney)
29R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Solution Sketch
A TM that multiplies unary numbers
Example: Tape contains …111X11…Answer is: …111111…
Pseudocode: On input string w:1. Write a * to the left of the input to separate the output from input2. For each 1 occurring after the X:
1. For each 1 occurring before the X:Write a 1 in the leftmost blank cell of the tape beyond the *
End forEnd for
3. Erase the * and all symbols to the right of it4. Halt
30R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Alternate Models of TMs
Multitape TMs equivalent to ordinary TMs
TMs with Rectangular Grids
TM that can jump to arbitrary locations on the tape
Nondeterministic TMs equivalent to TM in terms of computability Will play an important role in the next class
31R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
The stage is set to tackle the big questions…
What functions are computable? We can now ask: Are there functions that a Turing machine cannot
compute?
What functions are tractable? For what type of problems do fast and efficient algorithms exist? By efficient, we mean time- and space-efficient
This will then allow us to look at:Problems that are hard to solve on conventional computers but can be solved more efficiently using alternative computing methods such as DNA, neural, or Quantum Computing
32R. Rao, CSE 599 Week 1: Introduction and Overview, Theoretical Foundations (Part I)
Next week: Theoretical Foundations (Part II)
Turing machines that simulate other Turing machines
Universal Turing machines
Halting problem and Undecidability
Computational Complexity: Time and Space Efficiency
P, NP, and NP-complete problems
Read the handout given today and Feynman chapters 1-3…
Have a great weekend!