Title: RECAP
1RECAP
2Final Exam
- Cumulative
- Regular languages, automata 20
- Context-free languages, pushdown automata 20
- Turing machines, decidable, recognizable,
nondecidable languages 40 - (remaining 20 flexibility)
3Two Key Questions
- What is computation?
- Non-deterministic computation
- What kinds of problems we can solve with
computation? - limits of computation
4Computation
trans1
trans2
transn
conf1
conf2
.
confn
5Examples
Finite automata
(q,0,p)
(p,0,f)
(s,1,q)
(s,100)
(f,e)
(p,0)
(q,00)
6Nondetermistic Computation
- Theoretical (i.e., artificial) construct that
facilitates - Proving properties of computation
- Writing algorithms in a simplified form
trans1
conf2
conf1
Trans1
Conf2
.
7Configuration
A configuration indicate the current state of the
computation
Configuration
Machine
Finite automata
Pushdown automata
Turing machines
8Transitions
A transition indicates how the configurations are
transformed
Transition
Machine
Finite automata
(state, symbol, state)
Pushdown automata
((state, symbol, pop), (state,push))
Turing machines
((state, symbol, symbol), (state, ?/?))
9Notion of Acceptance
Acceptance indicates what kinds of configurations
are considered successful computations
Configuration
Machine
Acceptance if
f accepting state, w e
(f,w)
Finite automata
f accepting state, w e
Pushdown automata
(f,w,?)
f accepting state
(f, w)
Turing machines
10Machines versus Classes of Languages
Machine
Expressiveness Finite Automata
Pushdown Automata Turing Machines
Regular Languages
Context-free Languages
Decidable languages
11Machine vs. n-stack NFA
Machine
n-stack NFA Finite Automata Pushdown
Automata Turing Machines
NFA 0 stacks
NFA 1 stack
NFA 2 stacks
12Computation and Countability
- Surprisingly deep connection
- If a language L can be enumerated then it is
recognizable - To recognize if w is in L
- Print next string in L
- If w w then accept
- else goto 1
- And the other way around!
w
Enumerator of L
13Problems that Can be Solved with Computation
Church-Turing Thesis
Algorithms Turing machines
Therefore, C, C, Prolog, Lisp, Small talk, and
Java programs can be simulated byTuring machines
14Classes of Languages
(HALT)
Turing machines Pushdown Automata Finite
Automata
(ww w ??)
(Palindrome)
Regular languages
(ab)