- All languages
- Decidable
Turing machines
- NP
- P
- Context-free
Context-free grammars, push-down automata
- Regular
Big picture All languages Decidable Turing machines NP P - - PowerPoint PPT Presentation
Big picture All languages Decidable Turing machines NP P Context-free Context-free grammars, push-down automata Regular Automata, non-deterministic automata, regular expressions Turing Machines Like DFA but Access
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
scan a's
a→#,R
ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's ACCEPT REJECT
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's go left
{a,b} → R {a,_}→R
find next a
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
a→#,R
scan a's
_→R {b,c} → R {c,_}→R _ → L {a,b,c,x} → L b→x,R {b,x} → R c→x,R
scan b's scan c's
{a,b} → R {a,_}→R
_ → R {a,x} → R {c,x} → R a→x,R x → R # → R
ACCEPT REJECT go left find next a
Example: TM for L = {a : n 0}
2n
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
2n
x→R
REJECT mark the next a skip the next a
go left
ACCEPT
a → #,R x→R x→R x→R # → R _ → R a → R _ → R _ → L {a,x} → L a → x, R a → x, R a → R _ → R
{a,_} → R
{a,_} → R
{a,_} → R
{a,_} → R
accept ≠ qreject
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
2n
i yields Ci+1
ibjck : i ≤ j ≤ j}
i does not yield Ci+1
i does not yield Ci+1
i does not yield Ci+1R
i does not yield Ci+1R
t # (Δ-{#}) t fed Δ*
n + bn ≠ cn
1, ..., an) = 0}