Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Web: http://www.ee.ntu.edu.tw/~yen
Time: 9:10-12:10 PM, Monday Place: BL 103 Office hours: by appointment Class web page:
http://www.ee.ntu.edu.tw/~yen/courses/TOC-2009.html
2
TEXTBOOK
Introduction to Automata Theory, Languages, and Computation 3rd Edition
John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman,
(Addison-Wesley, 2006)
3
2nd Edition
Introduction to Automata Theory, Languages, and Computation
John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman,
(2nd Ed. Addison-Wesley, 2001)
1st Edition
Introduction to Automata Theory, Languages, and Computation
John E. Hopcroft, Jeffrey D. Ullman,
(Addison-Wesley, 1979)
Grading
HW/Project : 20% Midterm exam.: 40%
Final exam.: 40%
A simple computer
BATTERY
input: switch
output: light bulb actions: flip switch
A simple computer
f
BATTERY
start
off
f
on
input: switch
output: light bulb actions: f for flip switch bulb is on if and only if there was an odd number of flips
Another computer 1
1 start off
1 2
1 2
off
BATTERY
2 2
off
on
A design problem 4 1
BATTERY
2 3
Can you design a circuit where the light is on if and only if all the switches were flipped exactly the same number of times?
10
A design problem
Such devices are difficult to reason about, because they can be designed in an infinite number of ways By representing them as abstract computational devices, or automata, we will learn how to answer such questions
11
Turing Machines Devices with infinite memory. Used to model any computer.
time-bounded Infinite memory, but bounded running Turing Machines time. Used to model any computer program that runs in a reasonable amount of 14 time.
16
...
Applications
Quantum computing
Supervisory control
Pattern recognition
circuits
Comm. protocols Prog. languages
Compiler
Computer-Aided Verification
18
To familiarize you with key Computer Science concepts in central areas like
- Automata Theory
To equip you with tools with wide applicability in the fields of CS and EE, e.g. for
- Complier Construction
Fundamental Theme
What are the capabilities and limitations of computers and computer programs?
What can we do with computers/programs? Are there things we cannot do with computers/programs?
20
21
22
Our focus
Computability
Automata
Complexity
25
Topics
1.
Finite automata, Regular languages, Regular grammars: deterministic vs. nondeterministic, one-way vs. two-way finite automata, minimization, pumping lemma for regular sets, closure properties.
Context-free grammars: deterministic vs. nondeterministic, one-way vs. two-way PDAs, reversal bounded PDAs, linear grammars, counter machines, pumping lemma for CFLs, Chomsky normal form, Greibach normal form, closure 26 properties.
Topics (contd)
3. Linear
4. Turing machines, Recursively enumerable sets, Type 0 grammars: variants of Turing machines, halting problem, undecidability, Post correspondence problem, valid and invalid computations of TMs.
27
Topics (contd)
5. Basic recursive function theory 6. Basic complexity theory: Various
resource bounded complexity classes, including NLOGSPACE, P, NP, PSPACE, EXPTIME, and many more. reducibility, completeness. 7. Advanced topics: Tree Automata, quantum automata, probabilistic automata, interactive proof systems, oracle computations, cryptography.
28
YOU
29
Languages
The terms language and word are used in a strict technical sense in this course: A language is a set of words. A word is a sequence (or string) of symbols. (or ) denotes the empty word, the sequence of zero symbols.
30
Computation
CPU
memory
32
CPU
output memory
Program memory
33
Example:
temporary memory
f ( x) x
input memory
CPU
Program memory compute compute output memory
xx
x x
2
34
f ( x) x
temporary memory
input memory
x2
CPU
Program memory compute compute output memory
xx
x x
2
35
temporary memory
z 2*2 4 f ( x) z * 2 8
f ( x) x
input memory
x2
CPU
Program memory compute compute output memory
xx
x x
2
36
temporary memory
z 2*2 4 f ( x) z * 2 8
f ( x) x
input memory
x2
CPU
Program memory compute compute
f ( x) 8
output memory
xx
x x
2
37
Automaton
temporary memory Automaton
input memory
CPU
output memory
Program memory
38
39
Finite Automaton
temporary memory
Finite Automaton
Pushdown Automaton
Stack Push, Pop
Pushdown Automaton
Turing Machine
Random Access Memory
Turing Machine
Power of Automata
Finite Automata
Pushdown Automata
Turing Machine
Less power