COMP3310: Theory of Computation

COMP3310: Theory of Computation
Tasos Viglas
[email protected]
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.1/31
COMP3310- Week 2
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 02: Thursday August 4, 2005
- Non-deterministic automata
- Regular expressions
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.2/31
Non-determinism
•
Computation: sequence of steps
•
Given the current state and input symbol, the next
state is completely determined
•
Non-deterministic computation: many possible next
states
•
example: Non-deterministic FA
• empty transitions
• many outgoing arrows for the same symbol
•
multiple ways to read through an input
•
try all possibilities in parallel. accept if any
computation path exists
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.3/31
Examples of NFAs
•
alphabet Σ = {a, b}
•
L1 = {w|w contains ’aba’ as a substring}
•
L2 = {w|length of w is a multiple of 3}
•
L3 = L1 ∪ L2
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.4/31
Definition of an NFA
a non-deterministic FA is a 5-tuple
(Q, Σ, δ, q0 , F ):
• Q is a finite set of states
• Σ is a finite alphabet (set of symbols)
• δ : Q × (Σ ∪ {ǫ}) → P(Q) is the transition function
• q0 ∈ Q is the starting state
• F ⊆ Q are the final (accepting) states
• (Def 1.37p53)
•
Two machines are called equivalent if they accept
the same language
• (Th 1.39p55)
•
Every NFA has an equivalent FA
Proof: by construction
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.5/31
Proof of NFA and FA equivalence
•
Given an NFA N = (Q, Σ, δ, q0 , F ), construct an
equivalent FA M = (Q′ , Σ, δ ′ , q0′ , F ′ )
•
First, assume there are no ǫ arrows
•
If the number of states in Q is k the all possible
subsets of states is 2k
•
Q′ = P(Q)
•
for R ∈ Q′ , a ∈ Σ define
δ ′ (R, a) = {q ∈ Q|q ∈ δ(r, a), r ∈ R}
or define δ ′ (R, a) = ∪r∈R δ(r, a)
•
q0′ = {q0 }, and
F ′ = {R ∈ Q′ |R contains a final state of N }
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.6/31
Proof of NFA and FA equivalence: ǫ arrows
•
define E(R) =
{all states reachable from R by ǫ moves only}
•
modify definition
δ ′ (R, a) = {q ∈ Q|q ∈ E(δ(r, a)), r ∈ R}
•
start state q0′ = {E(q0 )}
•
(end of proof)
A language is regular if and only if
some NFA accepts it
• (Corollary 1.40p56)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.7/31
Closure under regular operations
Regular languages are closed
under union, concatenation and star
• (Theorems 1.45-49p59)
•
Proof: by construction
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.8/31
Regular expressions
•
Assume an alphabet Σ
• (Definition 1.52p64)
•
•
•
•
•
a regular expression R is either:
a∈Σ
ǫ (the empty string)
∅ the empty regular ecpression
(R1 ∪ R2 ) , (R1 ◦ R2 ) , (R∗), where R, R1 , R2 are
regular expressions
examples
• 0 ∗ 10∗ = {w|w contains exactly one ’1’}
• Σ ∗ 1Σ∗
• (0 ∪ 1) ∗ 1(0 ∪ 1)∗
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.9/31
FAs and regular expressions
a language is regular if and only if
some regular expression describes it
• (Theorem 1.54p66)
•
proof: by construction, two directions
Any regular expression can be
converted into an NFA
• (Lemma 1.55p67)
Any DFA can be converted in to a
regular expression
• (Lemma 1.60p69)
•
proof of the first lemma is straightforward: go
through inductive definition of a regular expression
and show how to build the NFA for every case
•
second lemma requires some more work
•
GNFA generalized NFA: arrow labels are regular
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.10/31
DFA → regular expression
•
start state has arrows to every other state and no
incoming arrows
•
single accepting state
•
only one arrow between two states, no multiple
labels
•
DFA→GNFA with k states→ k − 1 states→ . . . 2
states
•
Remove any state and repair the machine (update
labels)
•
complete proof by induction (proving that the
conversion step is correct)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.11/31
Non-regular languages
•
power of FAs, regular languages
•
B = {0n 1n |n ≥ 0}
•
C = {w|w has the same number of 0s and 1s}
•
D = {w|w has the same number of occurrences of
’01’ and ’10’ as substrings}
•
FAs cannot count
•
proving that languages are not regular: the pumping
lemma
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.12/31
Non-regular languages
Pumping lemma
If A is regular then i
there exists p (pumping length) such that,
if s is any string in A of length at least p
then s may be divided in 3 parts, s = xyz satisfying:
1. for each i ≥ 0, xy i z ∈ A
2. |y| > 0 and
3. |xy| ≤ p
• (Theorem 1.70p78)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.13/31
COMP3310- Week 3
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 03: Monday August 8, 2005
- Non-deterministic automata, regular
expressions
- Non-regular languages, the pumping lemma
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.14/31
Regular expressions
•
Assume an alphabet Σ
• (Definition 1.52p64)
•
•
•
•
•
a regular expression R is either:
a∈Σ
ǫ the empty string
∅ the empty regular expression
(R1 ∪ R2 ) , (R1 ◦ R2 ) , (R∗), where R, R1 , R2 are
regular expressions
examples
• 0 ∗ 10∗ = {w|w contains exactly one ’1’}
• Σ ∗ 1Σ∗
• (0 ∪ 1) ∗ 1(0 ∪ 1)∗
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.15/31
FAs and regular expressions
a language is regular if and only if
some regular expression describes it
• (Theorem 1.54p66)
•
proof: by construction, two directions
Any regular expression can be
converted into an NFA
• (Lemma 1.55p67)
Any DFA can be converted in to a
regular expression
• (Lemma 1.60p69)
•
proof of the first lemma is straightforward: use
inductive definition of a regular expressions
•
second lemma requires some more work
•
GNFA generalized NFA: arrow labels are regular
expressions
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.16/31
Generalized NFAs
•
a GNFA is a 5-tuple (Q, Σ, δ, qstart , qaccept ), where
• Q, Σ finite set of states, and alphabet
• δ : (Q − {qaccept }) × (Q − {qstart }) → R
• qstart is the start state
• qaccept is the accept state
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.17/31
DFA → regular expression
•
convert DFA to a GNFA such that:
• start state has arrows to every other state and no
incoming arrows
• single accepting state
• only one arrow between two states, no multiple
labels
•
DFA→GNFA with k states→ k − 1 states→ . . . 2
states
•
Remove any state and repair the machine (update
labels)
•
complete proof by induction (proving that the
conversion step is correct)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.18/31
DFA → regular expression
•
main step: removing states from the GNFA
q
i
R1
R4
q
rip
q
j
q
i
(R1)(R2)*(R3)+(R4)
q
j
R
3
R2
•
remove any internal state and update transition
labels
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.19/31
Non-regular languages
•
power of FAs, regular languages
•
B = {0n 1n |n ≥ 0}
•
C = {w|w has the same number of 0s and 1s}
•
D = {w|w has the same number of occurrences of
’01’ and ’10’ as substrings}
•
B and C are not regular
but D is regular (why ?)
•
limitation: fixed number of states
fixed amount of memory
•
proving that languages are not regular: the pumping
lemma
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.20/31
Long paths in DFAs
•
long strings correspond to long (computation) paths
•
long paths must repeat states (visit a state twice)
•
therefore there is a loop in the path
•
consider a DFA with |Q| = k that accepts a string w
of size p ≤ k
•
on input w the DFA will visit p + 1 states
•
q1 , . . . , qi , . . . , qi , . . . , qk
•
repeat qi . . . , qi part. same final state
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.21/31
The Pumping lemma
Pumping lemma
If A is regular then
there exists p (pumping length) such that,
if s is any string in A of length at least p
then s may be divided in 3 parts, s = xyz satisfying:
1. for each i ≥ 0, xy i z ∈ A
2. |y| > 0 and
3. |xy| ≤ p
• (Theorem 1.70p78)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.22/31
The Pumping lemma- proof
•
M = (Q, Σ, δ, q1 , F ), Q = {q1 , . . . , qp }
•
let s = s1 . . . sn ∈ L(M ) with n ≥ p
•
computational path of M on s is
r1 , . . . , rn+1 , r1 = q1 , and rn+1 ∈ F ,
rt+1 = δ(rt , st ) for 1 ≤ t ≤ n
•
n + 1 ≥ p + 1 implies that a state repeats∃j < k : rj = rk
x
•
•
y
z
z }| {z }| { z }| {
s1 . . . sj−1 sj . . . sk−1 sk . . . sn
r1 . . . rj−1 rj . . . rk−1 rk . . . rn rn+1
xy i z takes M from q1 to Rn+1 ∈ F for any i ≥ 0
note that |y| > 0 and |xy| ≤ p
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.23/31
Pumping examples -1
•
B = {0n 1n |n ≥ 0} (ex. 1.73p80)
assume B is regular and p is the pumping length,
and s = 0p 1p
then ∃x, y, z : s = xyz = 0p 1p and ∀i ≥ 0 : xy i z ∈ B
three cases for i:
1. if y = 0k then xyyz = 0p+k 1p ∈ B - contradiction
2. if y = 1k then xyyz = 0p 1p+k ∈ B - contradiction
3. if y = 0k 1l then xyyz = 0p+k 1l 0k 1p+l ∈ B contradiction
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.24/31
Pumping examples -2
•
F = {ww|w ∈ Σ∗ } (ex. 1.75p81)
Let p be the pumping length and consider s = 0p 10p 1
s = xyz and |xy| ≤ p. One case: y = 0k and
xyyz = 0p+k 10p 1 6∈ F
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.25/31
Pumping examples -3
•
E = {O i 1j |i ≥ j} (ex. 1.75p81)
consider s = 0p 1p . cases as first example
cases 2 and 3 still give contradictions. but pumping
up the zeroes will not give a contradiction xyyz ∈ E
Pump down s = xz = 0p−k 1p
•
note: pumping lemma implies that all FAs accept
“short” strings
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.26/31
COMP3310- Week 3
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 03: Thursday August 11, 2005
- Algorithms for automata
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.27/31
Properties of regular languages
•
deciding properties of sets of languages can be a
very difficult problem
•
automata are simple enough to allow simple
algorithms
•
properties of regular languages: halting, pumping
lemma
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.28/31
Problems on FAs
•
acceptance (or membership): does M accept string
w?
AF A = {< M, w > |M is a FA that accepts w}
•
membership for regular expressions
•
emptiness: given A, is L(A) = ∅?
EF A = {< A > |L(A) = ∅}
•
equivalence: do A and B accept the same
language? EQF A = {< A, B > |L(A) = L(B)}
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.29/31
Descriptions
•
< M > denotes a description of the machine M
•
checking if a given string is a valid DFA
•
encode everything as a string
•
description of a machine and enumeration
•
self-reference
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.30/31
Membership
•
theorem 4.1p166
•
acceptance (or membership): does M accept string
w?
AF A = {< M, w > |M is a FA that accepts w}
•
note: this problem deals with all possible DFAs, not
a specific instance
•
check the description of M
•
simulate M on w
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.31/31
Emptiness
•
theorem 4.4p168
•
emptiness: given A, is L(A) = ∅?
EF A = {< A > |L(A) = ∅}
•
let M = (Q, Σ, δ, q0 , F ) and |Q| = k
•
check if any final state is reachable from q0 within k
steps
•
note: we are using the pumping lemma property
if M accepts any string, then it must accept a short
string
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.32/31
Equivalence
•
theorem 4.5p169
•
equivalence: do A and B accept the same
language? EQF A = {< A, B > |L(A) = L(B)}
•
construct the symmetric difference
L′ = (L(A) ∩ L̄(B)) ∪ (L̄(A) ∩ L(B))
•
note: the symmetric difference is empty iff
L(A) = L(B)
•
check L′ for emptiness
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.33/31
Equivalence of states
•
given a DFA M , two states p, q are called equivalent
if for all strings w ,
starting from state p on input w we end up to an
accept iff starting from state q on input w we end up
to an accept
•
if two states are not equivalent, they are called
distinguishable
•
testing equivalence: table filling method
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.34/31
Equivalence of states- 1
•
construct a table as follows
q1
q2
qk
q0 q1 . . . qk−1
•
for states p, q if there exists an input symbol a such
that δ(p, a) = r 6= s = δ(q, a) then p, q are
disitinguishable
•
if not, mark the apropriate entry of the table
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.35/31
Equivalence of states- example
b
a,b
A
B
a
a,b
C
b
D
a
B X
C X X
D X
X
A B C
•
states B, D are equivalent
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.36/31
Equivalence of states- example
b
a,b
A
BD
a,b
C
a
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.37/31
Equivalence of states- application
•
apply previous algorithm for deciding equivalence of
two automata
•
are the two starting states equivalent ?
•
use the previous algorithm and treat both automata
as one
•
if their starting states are found to be equivalent,
then the automata are equivalent
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.38/31
Minimizing automata
•
(see also problem 7.40p299)
•
given a DFA M construct a DFA M ′ with minimal
number of states such that L(M ) = L(M ′ )
•
input < M > where M = (Q, Σ, δ, q0 , A)
output < M ′ > such that L(M ) = L(M ′ )
•
remove useless states (unreachable from q0 )
•
find all pairs of equivalent states
•
partition into subsets of equivalent states
•
merge equivalent states into one new state
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.39/31
Minimizing automata- 1
•
proof that the output of the previous algorithm is
optimal?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.40/31
minimality
•
Minimized DFAs are ... minimal
•
assume not: M is the minimized automaton from the
previous algorithm, and there exists an even smaller
one N
•
start states of M and N are equivalent since
L(M ) = L(N )
•
if p, q are equivalent then their successors on any
one input symbol are equivalent
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.41/31
minimality- 1
•
all states of M are distinguishable (same for N )
•
all states are reachable in both M, N
•
every state p of M is equivalent to some state q in N
s
s
for s such that M : p0 → p then N : q0 → q
•
N is smaller, two states of M are equivalent to the
same N state
•
therefore they are equivalent - contradiction
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.42/31
COMP3310- Week 3
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 04: Monday August 15, 2005
- context free languages - ambiguity
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.43/31
Context free languages
•
context free grammars were proposed by N
Chomsky as a model for natural languages
•
CF can describe non-regular languages
context free grammars
•
CFL strictly contains RL
•
there are however non-CF languages
{0n 1n |n ≥ 0} is CF
{0n 1n 0n |n ≥ 0} is not CF
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.44/31
Context free- summary
•
context free grammars
•
context free languages contain all regular languages
•
derivations, parsing, ambiguity
•
Chomsky normal form
•
push down automata (stack automata) and CFL
•
non-context-free languages and the pumping lemma
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.45/31
Context free grammars
•
the language {0n 1n |n ≥ 0} can be described as
follows
•
start from S and apply the following rules:
1. S → 0S1
2. S → ε
•
we can derive any string 0n 1n as follows
S → 0S1 → 00S11 → . . . 0n S1n → 0n 1n
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.46/31
CF grammars definition
•
A context free grammar is a 4-tuple G = (V, Σ, R, S)
• V : a finite set of variables
• Σ: finite set of terminals (with V ∩ Σ = ∅)
• R: finite set of subsitution rules V → (V ∪ Σ)∗
• S : start symbol, S ∈ V
•
L(G) = the language accepted by grammar G
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.47/31
Derivations
•
a single step derivation is denoted by ⇒
substitution of a variable by a string according to a
rule
•
a sequence of any number of derivations (including
∗
none) is denoted by ⇒
•
the language L(G) contains only strings of terminals
∗
∗
L(G) = {w ∈ Σ |S ⇒ w}
•
notation: A → B|01|AA
the first rule usualy refers to the start symbols
(unless stated otherwise)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.48/31
CF grammars- example
•
S → 0S1|0Z1
Z → 0Z|ε
{0i 1j |i ≥ j}
•
V = {S, Z}, Σ = {0, 1, (, ), ¬, ∨, ∧}
S → 0|1|¬(S)|(S) ∨ (S)|(S) ∧ (S)
propositional (boolean) formulas
•
natural languages
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.49/31
Parse trees
•
derivation of a string can be represented as a parse
tree
•
leftmost derivations
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.50/31
Ambiguity
•
we say that a string is derived ambiguously from a
grammar G if it has more than one leftmost
derivations
•
ambiguity and parse trees
example: 0 × 1 + 1
•
two different derivations do not imply an ambiguous
string
both derivations may have the same parse tree)
•
a CF language that can be generated only by
ambiguous grammars is called inherently ambiguous
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.51/31
RL and CFL
•
context free languages: all languages that can be
generated by a context free grammar
•
all regular languages are context free
•
{0n 1n 0n |n ≥ 0} is not context free
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.52/31
RL ⊆ CF L
•
theorem: every regular language is context free
RL ⊆ CF L
•
proof idea: given a DFA M = (Q, Σ, δ, q0 , F )
construct the grammar GM = (V, Σ, R, S)
•
V = Q, S = q0 and R is as follows:
qi → xδ(qi , x), for all qi ∈ V and all x ∈ Σ
qi → ε, for all qi ∈ F
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.53/31
Chomsky Normal Form
•
(definition 2.8p107) a CFG is in Chomsky normal
form if all the rules have the form
A → BC or
A→x
for the start variable we also allow the rule S → ε
•
grammars in this form are easy to analyse
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.54/31
Chomsky normal form- 1
•
theorem 2.9p107: any CFL is generated by a CFG in
Chomsky normal form
•
proof: assume G = (V, Σ, R, S)
rewrite all rules to the Chomsky format
add new start symbol and S0 → S
before
after
B → xAy and A → ε
B → xAy|xy
A → B and B → xCy
A → xCy , B → xCy
A → B1 B2 . . . Bk
A → B1 A1 , . . . , Ak−2 → Bk−1 Bk
ill-placed terminals a
replace by Ta and add Ta → a
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.55/31
Chomsky example
•
CFG S → aSb|ε
•
in Chomsky normal form:
S0 → ε|Ta Tb |Ta X
X → STb
S → Ta Tb |Ta X
Ta → a
Tb → b
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.56/31
COMP3310- Week 5
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 05: Monday August 22, 2005
- push down automata
- the pumping lemma for context-free
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.57/31
outline
•
Stack automata
•
Equivalence with context free grammars
•
RL ⊆ CF L
•
Non context free languages
•
The pumping lemma for context free
•
Some closure properties for CFL
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.58/31
Stack automaton
•
context free grammars and CF languages
•
Push down automata and context free
• Generalization of a NFA
• Allows limited extra memory
•
Stack automata are equivalent to CF grammars
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.59/31
Push down automaton
•
Non-deterministic automaton plus a stack
•
Input is still read-once, and there is no output
•
Two ways of accepting
• final/accepting state
• empty stack
•
both ways are equivalent
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.60/31
Example of a PDA
•
non-regular, context free language
L = {0n 1n |n ≥ 0}
•
Very easy to design a pda
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.61/31
Definition of a PDA
a push down automaton is a 6-tuple
(Q, Σ, Γ, δ, q0 , F ):
• Q is the finite set of states
• Σ is the finite input alphabet
• Γ is the finite stack alphabet
• δ : Q × Σε × Γε → P(Q × Γε ) is the transition
function
• q0 ∈ Q is the starting state
• F ⊆ Q are the final (accepting) states
• (Def 2.13p111)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.62/31
Example of a PDA
context free language
L = {a b c |i = j or i = k}
• (Example 2.16p113)
i j k
•
non-determinism is needed for this language
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.63/31
PDAs and context free languages
A language is context free if and
only if some pushdown automaton recognizes
• (Theorem 2.20p115)
•
two directions to prove
• (Lemma 2.21p115)
If L is CF then a PDA recognizes it
If a PDA recognizes a language
then it is context free
• (Lemma 2.27p119)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.64/31
CF grammar to PDA
•
convert a CFG to an automaton
•
start from start symbol and guess series of
derivations
•
keep intermediate results on the stack
•
match terminals from the input
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.65/31
CF grammar to PDA: algorithm
1. Push tha start symbol on the stack
2. Repeat:
(a) if the top is a variable, non-det. choose a rule for it
and replace A on the stack using that rule. match
any terminals in the beginning of the rule’s right
part from the input.
(b) if the top is a terminal read the next input symbol
and repeat if they match. if they don’t, stop
("reject")
(c) if the stack is empty accept
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.66/31
PDA to CF grammar
•
Write a grammar for a given PDA P
•
for every pair of states of P use a variable Apq
•
Grammar will generate all possible strings that take
P from p to q with empty stack
•
two cases: stack empties only when reaching q or it
empties in an intermediate step as well
•
add the rules Apq → aArs b and Apq → Apr Arq
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.67/31
RL and CFL
• (Corollary 2.32p122)
All regular languages are context free
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.68/31
The pumping lemma for CFL
If A is a CFL then
there exists a p (pumping length) such that,
any s ∈ L with |s| ≥ p can be divided in s = uvxyz
• for all i ≥ 0, uv i xy i z ∈ A
• |vy| > 0
• |vxy| ≤ p
• (Theorem 2.34p115)
u
R
R
R
R
v x
y
z
u v R
R
x
y
z
u
z
v x y
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.69/31
Pumping lemma proof idea
•
pumping length p = b|V |+2
where b be the max number of symbols on the right
of a rule
•
a parse tree with height h generates a string at least
bh + 1 long or
a string of length bh + 1 must have derivation tree
height at least h + 1
•
length p implies height (or a path of length) |V | + 1
•
that path must repeat a non-terminal symbol
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.70/31
pumping example
• (Example 2.36p126)
B = {an bn cn |n ≥ 0} is not context
free
•
s = ap bp cp = uvxyz
•
v, y contain each one type of symbol. then uv 2 xy 2 z
must be imbalanced
•
otherwise repeating v, y would repeat symbols out of
order
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.71/31
Closure properties
•
CFLs are closed under union and concatenation
For union: the new grammar is the union of the
previous two plus an extra start symbol and the rule
S → S1 |S2
•
CFLs are not closed under intersection and
complement
•
CFLs are closed under intersection with a regular
language
run the PDA and the NFA in parallel and accept if
they both accept
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.72/31
COMP3310- Week 5
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 05: Thursday August 25, 2005
- Turing Machines
-
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.73/31
outline
•
Part 2: Computability theory
• decidability
• the halting problem
• Church-Turing thesis
• reducibility
•
This lecture:
• Turing machines
• multi-tape Turing machines
• non-deterministic Turing Machines
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.74/31
Computability
•
regular, context-free and beyond
•
L = {1n | n and n + 2 are prime}
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.75/31
Alan Turing
•
Alan Turing
• 1912-1954, UK
• Cambridge University, Princeton University
• 1936, universal machines and the halting problem
•
Alonzo Church
• 1903-1995, USA
• Princeton University
• 1936, lambda calculus and undecidable problems
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.76/31
Turing machines
•
The universal machine, a model for computation
•
Read, write, move to a new cell, change state
•
Initially all the tape cells are blank
•
Two halting states, Accept and Reject
$ 0 1 0 1 0 1
one−way infinite tape
finite state
control
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.77/31
Turing machine- definition
• (definition 3.3p140)
A Turing machine is a 7-tuple
(Q, Σ, Γ, δ, q0 , qaccept , qreject )
•
Q is the finite set of states
•
Σ is the finite input alphabet, not containing ⊔, the
blank symbol
•
Γ is the finite tape alphabet, ⊔ ∈ Γ and Σ ⊆ Γ
•
δ : Q × Γ → Q × Γ × {L, R} is the transition function
•
q0 ∈ Q the starting state
•
qaccept is the accept state
•
qreject is the reject state and qaccept 6= qreject
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.78/31
Turing machines
•
start with the input string on the tape
start computing...
until any of the two halting states is reached
•
A configuration of a TM consists of
current state, tape contents, head position
•
the set of strings accepted by a TM M is the
language of M or the language recognized by M ,
L(M )
•
Example: TM for {w#w|w ∈ {0, 1}∗ }
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.79/31
Decidable problems
A language is called Turing
recognizable if some Turing machine recognizes it
• (definition 3.5p142)
•
A recognizer accepts all yes-inputs. may loop for
ever on no-inputs
•
Also called recursively enumerable
A language is called Turing
decidable if some Turing machine decides it
• (definition 3.6p142)
•
always gives an answer
•
Also called recursive
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.80/31
Example
• (example 3.7p143)
2n
Example of a Turing machine for {0 |n ≥ 0}
•
from left to right, cross off every other 0
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.81/31
Variants of Turing machines
•
Multitape: a Turing machine with several tapes
•
Non-deterministic machines
•
Enumerators
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.82/31
Multitape Turing machines
•
k -tape Turing machine
δ : Q × Γk → Q × Γk × {L, R, S}k
• (theorem 3.13p149)
A k -tape Turing machine is equivalent to a single
tape Turing machine
•
Proof: Simulate a multitape machine by a single
tape one
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.83/31
Non-deterministic Turing machines
•
non-determinism allows several choices for each
step of the computation
•
δ : Q × Γ → P(Q × Γ × {L, R})
•
many possible next steps
•
non-deterministic computation represented as a tree
•
Several computation paths
•
Computation is accepting if an ’accept’ leaf exists
•
A non-deterministic branch may be infinite
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.84/31
Non-deterministic Turing machines
• (theorem 3.16p150)
Every non-deterministic Turing machine has an
equivalent deterministic Turing machine
•
Simulate the machine deterministically
•
Do all possible computation paths, accept if any one
of them accepts
•
problem: Non-deterministic computation may
contain infinite paths
•
simulate in parallel (breadth first traversal of the
computation tree)
•
Dove-tailing
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.85/31
Non-deterministic Turing machines
•
Given a non-deterministic machine N simulate it
with a 3 tape deterministic machine
•
tape 3 is used as an index tape for the
non-deterministic choices, pointing to a path into the
computation tree
•
a number ’235’ means ’take the first choice at the
root, then the third etc’
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.86/31
Non-deterministic Turing machines
1. tape 1 has the input, tapes 2 and 3 are empty
2. copy the input to tape 2
3. use tape 2 to simulate the machine N . Use the
symbols on tape 3 for the choices
• if the symbol describes an unavailable choice
goto 4
• if no more symbols on tape 3, goto 4
• if rejecting configuration is encountered, goto 4
• if accept is encountered then {accept}
4. replace tape 3 with the next (lexicographically) string
goto 2
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.87/31
Enumerators
•
An enumerator is a Turing machine that prints
(enumerates) all strings in a language
a language is Turing recognizable
if and only if it has an enumerator
• (theorem 3.21p153)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.88/31
Church-Turing thesis
•
Hilbert’s tenth problem (1900)
Find an algorithm that decides whether a given
polynomial has an integral root
•
.."a process by which it can be determined in a finite
number of steps"..
•
Matijasevic 1970: Hilbert’s tenth is unsolvable
Martin Davis, Hilary Putnam, Julia Robinson
•
Church-Turing thesis: Computable
means computable by a Turing
machine
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.89/31
COMP3310- Week 6
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 06: Mon Aug 29 and Thu Sep 1, 2005
- Decidability
- Church Turing thesis
- Diagonalization
- The halting problem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.90/31
Decidable problems
A language is called Turing
recognizable if some Turing machine recognizes it
• A recognizer accepts all yes-inputs. may loop for
ever on no-inputs
• Also called recursively enumerable
• (definition 3.5p142)
A language is called Turing
decidable if some Turing machine decides it
• always gives an answer
• Also called recursive
• (definition 3.6p142)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.91/31
Non-deterministic Turing machines
•
non-determinism allows several choices for each
step of the computation
•
δ : Q × Γ → P(Q × Γ × {L, R})
•
many possible next steps
•
non-deterministic computation represented as a tree
•
Several computation paths
•
Computation is accepting if an ’accept’ leaf exists
•
A non-deterministic branch may be infinite
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.92/31
Non-deterministic Turing machines
• (theorem 3.16p150)
Every non-deterministic Turing machine has an
equivalent deterministic Turing machine
•
Simulate the machine deterministically
•
Do all possible computation paths, accept if any one
of them accepts
•
problem: Non-deterministic computation may
contain infinite paths
•
simulate in parallel (breadth first traversal of the
computation tree)
•
Dove-tailing
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.93/31
Non-deterministic Turing machines
•
Given a non-deterministic machine N simulate it
with a 3 tape deterministic machine
•
tape 3 is used as an index tape for the
non-deterministic choices, pointing to a path into the
computation tree
•
a number ’135’ means ’take the first choice at the
root, then the third etc’
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.94/31
Non-deterministic Turing machines
1. tape 1 has the input, tapes 2 and 3 are empty
2. copy the input to tape 2
3. use tape 2 to simulate the machine N . Use the
symbols on tape 3 for the choices
• if the symbol describes an unavailable choice
goto 4
• if no more symbols on tape 3, goto 4
• if rejecting configuration is encountered, goto 4
• if accept is encountered then accept
4. replace tape 3 with the next (lexicographically) string
goto 2
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.95/31
Enumerators
•
An enumerator is a Turing machine that prints
(enumerates) all strings in a language
a language is Turing recognizable
if and only if it has an enumerator
• (theorem 3.21p153)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.96/31
Defining Computation
•
Hilbert’s tenth problem (1900)
Find an algorithm that decides whether a given
polynomial has an integral root
•
.."a process by which it can be determined in a finite
number of steps"..
•
Matijasevic 1970: Hilbert’s tenth is unsolvable
Martin Davis, Hilary Putnam, Julia Robinson
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.97/31
Church-Turing thesis
•
•
Church-Turing thesis:
computable means
computable by a Turing machine
all proposed computation models are equivalent,
including
• Turing machines
• λ-calculus
• Recursive functions
• Quantum Turing machines
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.98/31
Decidable problems for regular languages
• (theorems 4.1-4.5p166-169)
The following problems on regular laguages are
decidable
• Does a given DFA M accept input w ?
• Same for non-deterministic automata
• Given a regular expression R, does it generate a
given string w ?
• Given a DFA, does it accept any string?
• Given two DFAs are they equivalent ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.99/31
Decidable problems for context free
• (theorems 4.7-4.9p170-172)
the following problems on context free languages
are decidable
• Given a CFG G and a string w , does G generate
w?
• Given a CFG G is L(G) = ∅ ?
• Every context free language is decidable
•
Equivalence is not decidable
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.100/31
COMP3310- Week 6
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 06: Thu Sep 1, 2005
- Diagonalization
- The halting problem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.101/31
Announce
•
Afternoon tea with the staff of SIT
• thursday 1st september,4pm Madsen G93
•
Honours program in the School of IT
• Information session
• Tuesday 6th September, 12-3 pm
• labs, demos, talk to current honours students and
staff
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.102/31
Undecidable problems
•
A specific problem that is algorithmically unsolvable
•
Fundamental limitation of computing
•
Example of an unsolvable problem:
software verification- Given a program, does it
conform to its specification?
•
A more simple unsolvable problem: Given a TM M
and a string w , does M halt on input w ?
•
In fact, (almost) "all" languages are undecidable
•
... and they are not even recognizable
•
Existence of undecidable problems
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.103/31
Counting infinities
•
How many languages L ⊆ Σ∗ are there?
k
2k
•
For L ⊆ Σ there are 2 , a finite number
•
For L ⊆ Σ∗ the number of langauges is infinite...
•
Small infinite sets and big infinite sets
•
Georg Cantor, 1873
•
Two sets have the same size if the elements of one
set can be paired with the elements of the other
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.104/31
Mappings and functions
•
A function f : A → B is a mapping of the elements
of A to the elements of B
•
f is ...
if f (a) 6= f (b) whenever a 6= b
onto if f (A) = B
correspondence if it is both 1-to-1 and onto
• one-to-one
•
•
•
Two sets A and B have the same size if there is a
correspondence f : A → B between them.
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.105/31
Countable and uncountable
•
The set of natural numbers is N = {0, 1, 2, . . .}
•
A set is called countable if it is finite or it has the
same size with N
•
Example: Q = { m
n |m, n ∈ N }, the set of rational
numbers is countable
•
A set is called uncountable if it is not countable
•
The set of real numbers R is uncountable
•
Proofs: by diagonalization
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.106/31
Infinite binary strings
•
Let B = {all infinite binary strings}
•
B is uncountable
0 0 0 0 1 0
1 0 0 1 0 0
2 1 1 0 1 0
3 0 1 1 1 0
4 ... ... ... ... ...
c Tasos Viglas, 2005
...
...
...
...
...
COMP3310 Theory of Computation – p.107/31
Counting languages and TMs
• (theorem 4.18p178)
Some languages are not Turing-recognizable
•
proof by diagonalization
•
the set of all TMs is countable
• a TM can be described by finite a string over a
finite alphabet
• arrange the strings alphabetically
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.108/31
Counting languages and TMs
•
the set of all languages over an alphabet Σ is
uncountable
•
P(Σ∗ )
• The set of all infinite binary sequences B is
uncountable
• Σ∗ is countable (arrange alphabetically)
• Every language corresponds to a characteristic
sequence from B
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.109/31
More on counting
•
Examples of countable sets: correspondence
between N and Z , N 2 , {a}∗ , {a, b}∗
0
1
2
3
4
5
6
0
+1
−1
+2
−2
+3
−3
(0, 0) (0, 1) (1, 0) (0, 2) (1, 1) (2, 0) (0, 3)
ε
a
aa
aaa aaaa aaaaa
...
ε
a
b
aa
ab
ba
bb
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.110/31
Counting N
∗
•
Consider N ∗ , the set of finite sequences of numbers
•
N ∗ is countable,
there is a bijection between N and N ∗
•
Use the unique prime factorization theorem
Every number can be written as a product of prime
factors
•
primes p1 = 2, p2 = 3, p3 = 5, p4 = 7, . . .
x = pe11 pe22 · · ·
•
525 = p2 ∗ p3 ∗ p3 ∗ p4
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.111/31
Counting N
∗
•
Consider (n1 , n2 , . . . , nk )
•
Map this to number
m = pn1 1 +1 · pn2 2 +1 · · · pnk k +1
•
+1 is used to encode zero
(1, 2, 0) versus (1, 2)
•
Correspondence works since there are infinitely
many primes and the unique factorization theorem
holds
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.112/31
Universal Turing Machine
•
Universal Turing Machine U is given a description of
any TM M and and input w and simulates M on w
•
Use 2 tapes. The first tape contains the description
of M and the input w
•
Write down starting < q0 w > configuration on the
2nd tape
•
repeat until halting configuration is reached:
• replace the configuration on tape 2, according to
the transition function of M
•
Accept if qaccept is reached, reject if qreject is reached
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.113/31
The halting problem
•
The halting problem for TMs is undecidable
HT M = {< M, w > |M halts on input w}
•
proof by contradiction
•
Assume that HT M is decidable and Halts(M, w) is
the TM that decides it
•
Define the following TM:
D(M ) := if Halts(M, M ) then loop for ever
otherwise halt (accept)
•
What is the output of D(D)? Does it halt?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.114/31
The halting problem
D(D) := if D(D) halts then loop for ever
otherwise halt (accept)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.115/31
More on the halting problem
• (theorem 4.11p174,179)
The acceptance problem for TMs,
AT M = {< M, w > |M accepts input w} is
undecidable
•
Proof by contradiction
•
Assume AT M is decidable and H(M, w) is the TM
that decides it
(
accept if M accepts input w
H(M, w) =
reject otherwise
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.116/31
More on the halting problem
•
Define a new machine as follows
(
accept if M does not accept input M
D(M ) =
reject if M accepts input M
•
What is the output of D(D) ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.117/31
More on the halting problem
M1
M2
M3
M4
... D ...
M1 accept accept reject accept . . .
M2 reject accept accept reject . . .
M3 reject reject reject reject . . .
M4 reject accept accept reject . . .
...
...
...
...
...
... ...
D reject reject accept reject
...
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.118/31
Un-recognizable languages
•
AT M is Turing recognizable
• (theorem 4.22p181)
A language L is decidable if and only if L and its
complement L are both Turing recognizable
• L is called co-Turing-recognizable if its
complement L is Turing-recognizable
• (corollary 4.23p182)
H T M and AT M , the complements of the halting
problem and the acceptance problem, are not Turing
recognizable
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.119/31
Un-recognizable languages
•
AT M is not Turing-recognizable
but it is co-Turing-recognizable
•
ET M = {G|G is a TM and L(G) = ∅} is not Turing
recognizable
•
EQT M = {< G, H > |TMs G, H and L(G) = L(H)}
is not even co-TM-recognizable
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.120/31
Classifying problems
Decidable (Recursive)
Context free
Regular
c Tasos Viglas, 2005
co−Recognizable (co−RE)
Recognizable (RE)
COMP3310 Theory of Computation – p.121/31
Classifying problems
EQ
TM
ATM
nnn
abc
Decidable (Recursive)
Context free
Regular
(0+1)*1
c Tasos Viglas, 2005
co−Recognizable (co−RE)
Recognizable (RE)
__
ATM
ww R
COMP3310 Theory of Computation – p.122/31
Multistack machines
•
theorem: a PDA with two stacks is as powerful as a
TM
•
proof: simulate a TM by a two stack machine
•
one stack holds the TM tape contents to the left of
the head and the second the contents to the right of
the head
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.123/31
Counter machines
•
a k -counter machine has access to k counters
•
the machine can add/subtract one from each
counter or test for zero
•
transition depends on state, input symbol, and which
counters are zero
•
equivalent definition: k -stack machine that can push
a single symbol on its stacks
•
what is the power of a counter machine?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.124/31
Counter machines
•
(theorem) a three counter machine can simulate a
TM
• simulate a 2 stack PDA with two counters
• each counter has a numeric representation of the
stack contents
• the third is used for adjusting the other two
counters
•
(theorem) a two counter machine can simulate a TM
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.125/31
Counter machines
•
(theorem) a two counter machine can simulate a TM
• simulate 3 counters with 2
• use one counter to store an encoding of the three
counters/numbers (i, j, k): store 2i 3j 5k
• use the second counter for adjusting the first
incrementing i is multiplying the counter by 2 etc
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.126/31
COMP3310- Week 7
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 07: Mon Sep 5, 2005
- Reductions
- More undecidability
- Rice’s theorem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.127/31
Announce
•
Honours program in the School of IT
• Information session
• Tuesday 6th September, 12-3 pm
• labs, demos,
talk to current honours students and staff
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.128/31
Classifying problems
Decidable (Recursive)
Context free
Regular
c Tasos Viglas, 2005
co−Recognizable (co−RE)
Recognizable (RE)
COMP3310 Theory of Computation – p.129/31
Classifying problems
EQ
TM
ATM
nnn
abc
Decidable (Recursive)
Context free
Regular
(0+1)*1
c Tasos Viglas, 2005
co−Recognizable (co−RE)
Recognizable (RE)
__
ATM
ww R
COMP3310 Theory of Computation – p.130/31
The halting problem again
•
Reductions between two problems
"A reduces to B"
•
A → B , if we can solve B then we can solve A
• (theorem 5.1p188)
The halting problem is undecidable
•
HALTT M = {< M, w > |M halts on input w}
•
prove by reducing the acceptance problem AT M to
HALTT M
•
Assume R solves HALTT M
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.131/31
The halting problem again
•
Construct S as follows:
S : On input < M, w >
1. Run R(< M, w >)
2. if R rejects, reject
3. if R accepts, simulate M on w
•
S solves AT M if R exists
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.132/31
Reductions
•
Proving undecidability using reductions
•
To prove L is undecidable, prove the following:
"if L is decidable then AT M is decidable"
•
Proofs by contradiction based on a construction
•
Given a TM for L show how you can use it to solve
AT M or any other undecidable problem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.133/31
Emptiness
• (theorem 5.2p189)
The emptiness problem for TMs is
undecidable
•
ET M = {< M > |L(M ) = ∅ }
•
Proof: reduce from AT M
given a TM R for ET M build one for AT M
•
Modify M to accept only w if it is non-empty
•
M1 : on input < x >
1. if x 6= w , reject
2. if x = w simulate M on w and accept if M (w)
accepts
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.134/31
Emptiness
•
S : on input < M, w >
1. From M construct M1
2. Simulate R on M1
•
S constructs M1 by adding some new states to it that
simply check for x = w
L(M1 ) = ∅ M does not accept w
L(M1 ) = {w} M accepts w
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.135/31
Regularity
• (theorem 5.3p191)
REGU LART M is undecidable
•
REGU LART M = {< M > |L(M ) is regular}
•
proof: reduce from AT M
•
assume REG(M ) decides regularity.
use it to solve AT M (M, w)
•
S : on input < M, w >
1. Construct M2 : on input x
(a) if x is 0n 1n accept
(b) otherwise run M (w) and accept if it accepts
2. Run REG on M2
3. accept if REG(M2 ) accepts
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.136/31
Regularity
Construct M2 : on input x
1. if x is 0n 1n accept
2. otherwise run M (w) and accept if it accepts
M2 accepts 0n 1n if M does not accept w
M2 accepts Σ∗ if M accepts w
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.137/31
Deciding equality
• (theorem 5.4p192)
EQT M is undecidable
•
EQT M = {< M1 , M2 > |L(M1 ) = L(M2 )}
•
Reduce ET M to equality
•
S : on input M
1. run EQT M on < M, T∅ > where T∅ rejects all
inputs
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.138/31
Other undecidable properties
•
is L(M )
1. context free
2. finite
3. Σ∗
•
Rice’s theorem: all non-trivial TM properties are
undecidable
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.139/31
Rice’s Theorem
Let P be a non-trivial property of
the language of a TM. Prove that determining if the
language of a given TM has this property is
undecidable
• (problem 5.28p213)
•
P (M ) = {< M > |L(M ) has property P}
•
non-trivial property: it contains some but not all TM
languages
•
P is a property of the TM language
whenever L(M1 ) = L(M2 ) then M1 ∈ P iff M2 ∈ P
•
Proof: assume P (·) decides the property P
reduce AT M to P () by constructing S
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.140/31
Rice’s theorem
•
let T∅ be a TM that always rejects L(T∅ ) = ∅
•
wlog assume T∅ 6∈ P (otherwise proceed with P )
•
P non-trivial implies ∃T ∈ P
•
use the ability of P () to distinguish between T∅ and T
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.141/31
Rice’s theorem
•
define S : on input < M, w >
1. Based on M and w construct Mw (x)
(a) Simulate M (w) if it halts and rejects, reject
(b) if it accepts, simulate T on x. if it accepts,
accept
2. Use P () to determine whether Mw has property
P . if it does, accept, otherwise reject
•
Mw simulates T if M (w) accepts
L(Mw ) = L(T ) if M accepts w
L(Mw ) = ∅ otherwise
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.142/31
Other undecidable properties
•
is L(M )
1. context free
2. finite
3. Σ∗
•
Rice’s theorem: all non-trivial TM properties are
undecidable
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.143/31
Reductions
•
Reductions so far have been straightforward
•
properties that involve TM
•
for more general questions, use different reductions
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.144/31
Computation histories
An accepting computation history
of M on w is a sequence of configurations C1 , . . . Ck
• (definition 5.5p193)
•
C1 is the start configuration of M on w
•
Ck is an accepting configuration
•
Ci →M Ci+1 , a valid computation stem of M
•
if Ck is a rejecting configuration, then this sequence
is a rejecting computation history
•
computation histories are finite sequences
•
if M does not halt on w no computation sequence
exists
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.145/31
Computation histories
•
< M, w >6∈ AT M is equivalent to "all computation
histories of M on w are non-accepting"
•
< M, w >∈ AT M is equivalent to "there exists a
computation history of M on w that accepts"
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.146/31
Deciding CF properties
• (theorem 5.13p197)
ALLCF L is undecidable
•
ALLCF L = {< G >
|G is a CFG and generates all Σ∗ }
•
proof: use computation histories to reduce AT M to
this problem
•
AT M : does M accept w ?
•
AT M : does there exists an accepting computation
history for M on w ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.147/31
CFL
•
< M, w >6∈ AT M implies all histories x are
non-accepting
•
Define LCF L a CFL that contains all accepting
histories x of M on w
•
< M, w >6∈ AT M translates to x ∈ LCF L ?
•
a CFG G can describe all accepting histories
•
x = (C1 , . . . Ck ) ∈ G iff
1. C1 is not proper start configuration, or
2. there is an invalid Ci → Ci+1
3. last configuration in x is not accepting
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.148/31
CFL
•
ALLCF L = {< G >
|G is a CFG and generates all Σ∗ } is undecidable
•
LCF L describes all strings that fail to be accepting
histories
•
if M does not accept w then all strings fail to be
accepting histories and therefore LCF L = Σ∗
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.149/31
CFL equality
•
theorem:
EQCF L = {< G1 , G2 >
|G1 , G2 are CFG and L((G1 ) = L(G2 )}
•
proof: let G′ = Σ∗ . decide < G > is in ALLCF L by
EQ(G, G′ )
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.150/31
COMP3310- Week 7
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 07: Thu Sep 8, 2005
- Post correspondence problem (PCP)
- ambiguity in CFGs
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.151/31
Post correspondence problem
•
An undecidable problem concerning manipulations
of strings
•
a domino contains two strings (top and bottom)
hai
bc
•
•
a collection of dominos
h i h i b
a
ca
abc
,
,
,
ca
ab
a
c
PCP: given a collection of dominos find a match, a
sequence (repetitions allowed) such that the top
string is the same as the bottom
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.152/31
Post correspondence problem
•
•
a collection of dominos
h i h i b
a
ca
abc
,
,
,
ca
ab
a
c
PCP: given a collection of dominos find a match, a
sequence (repetitions allowed) such that the top
string is the same as the bottom
h a i b h ca i h a i abc ab ca
a ab
c
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.153/31
PCP
•
for some collections, a match does not exist
•
Post correspondence problem: determine whether a
given collection of dominos has a match
nh i h i
h io
t1
t2
tk
collection: P =
,
,
.
.
.
,
b1
b2
bk
•
•
a match is a sequence i1 , i2 , . . . , in such that
ti1 ti2 · · · tin = bi1 bi2 · · · bin
•
the PCP language is
P CP = {< P > |a PCP problem that has a match}
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.154/31
PCP is undecidable
• (theorem 5.15p200)
PCP is undecidable
•
proof: reduce from AT M using computation histories
•
given M and w , construct the dominos to be parts of
the computation history of M on w
•
these dominos will form a match only of an
accepting computation history exists
•
start with M P CP , the modified hPCP:
i the match
must start with the first domino
c Tasos Viglas, 2005
t1
b1
COMP3310 Theory of Computation – p.155/31
PCP is undecidable
•
•
•
#q0 w1 w2 · · · wn # is the starting configuration of M
on w
h
i
#
put #q0 w1 w2 ···wn # as the first domino
need to start from this domino- need to match the
bottom part at the top
•
this forces the next domino to have a certain kind of
top part
•
that domino will have a bottom part that is the next
configuration of M (w)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.156/31
PCP is undecidable
qa δ(q, a) = (r, b, R)
br cqa
δ(q, a) = (r, b, L)
rcb
a
∀a ∈ Γ
h i ah i
#
#
copy #, add a blank
,
#
h
i h⊔#
i
aqaccept
qaccept a
∀a ∈ Γ
,
qaccept
qaccept
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.157/31
PCP is undecidable
•
last step: build in the problem the requirement to
start with the first domino
•
for u = u1 u2 · · · un define
⋆u = ∗u1 ∗ u2 ∗ · · · ∗ un
u⋆ = u1 ∗ u2 ∗ · · · ∗ un ∗
⋆u⋆ = ∗u1 ∗ u2 ∗ · · · ∗ un ∗
nh i h i
h io
t1
t2
tk
convert
,
,
.
.
.
,
b1
b2
bk
nh i h i h i
h i h io
⋆t1
⋆t1
⋆t2
⋆tk
⋆♦
to
,
,
,
.
.
.
,
,
⋆b1 ⋆
b1 ⋆
b2 ⋆
bk ⋆
♦
•
•
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.158/31
Mapping reducibility
•
Many different kinds of reductions
•
Mapping or many-one reducibility
a function f : Σ∗ → Σ∗ is a
computable function if some TM on input w halts with
f (w) on its tape
• (definition 5.17p206)
A is mapping reducible to B
written A ≤m B if there is a computable function
f : Σ∗ → Σ∗ such that for all w
• (definition 5.20p207)
w ∈ A ⇔ f (w) ∈ B
The function f is called the reduction from A to B
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.159/31
Reducibility
•
if A ≤m B and B is decidable then A is decidable
A ≤m decidable
•
if A ≤m B and A is undecidable then B is
undecidable
undecidable ≤m B
•
if A ≤m B and B is Turing recognizable then A is
T-recognizable
•
if A ≤m B and A is not T-recognizable then B is not
T-recognizable
•
A ≤m B is the same as A ≤m B
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.160/31
Equality of TM languages
EQT M is neither T-recognizable
nor co-T-recognizable
• (theorem 5.30p210)
•
prove two things:
EQT M not T-recognizable AT M ≤m EQT M
EQT M not co-T-recognizable
EQT M not T-recognizable AT M ≤m EQT M
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.161/31
AT M ≤m EQT M
•
AT M reduces to EQT M
•
F : on input M, w
1. construct two machines
M1 = reject all inputs
M2 = run M (w) if it accepts, accept
2. output < M1 , M2 >
M (w) accepts
M1 nothing, M2 everything
M (w) does not accept M1 nothing, M2 nothing
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.162/31
AT M ≤m EQT M
•
AT M reduces to EQT M
•
G: on input M, w
1. construct two machines
M1 = accept all inputs
M2 = run M (w) if it accepts, accept
2. output < M1 , M2 >
M (w) does not accept M1 nothing, M2 everything
M (w) accepts
c Tasos Viglas, 2005
M1 nothing, M2 nothing
COMP3310 Theory of Computation – p.163/31
Ambiguity for CFGs
•
Determining whether a CFG is ambiguous is
undecidable
•
proof: reduce from PCP
•
two strings of integers/indices (viewed as strings)
•
strings correspond to PCP instances, one list for the
top part one for the bottom part of the dominos
•
each string can be generated by a grammar
•
if the PCP instance has a solution, then there are
two derivations of the same string (ambiguity)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.164/31
Ambiguity for CFGs
•
•
h i h i
h i
a PCP instance bt11 , bt22 , . . . , btkk
Construct a grammar GA that generates all possible
top strings
A → t1 Aa1 |t2 Aa2 | · · · |tk Aak
A → t1 a1 |t2 a2 | · · · |tk ak
•
same for the bottom strings, GB
B → b1 Ba1 |b2 Ba2 | · · · |bk Bak
B → b1 a1 |b2 a2 | · · · |bk ak
•
a string in GA is of the form ti1 tin · · · ti1 ui1 ui2 · · · uin
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.165/31
Ambiguity for CFGs
•
a string in GA is of the form ti1 ti2 · · · ti1 ai1 ai2 · · · ain
•
first part of derived strings: PCP strings
•
tails: indices of used dominos
•
Both grammars: derivations are unique and different
•
construct the union of the two grammars GAB by
adding S → A|B
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.166/31
Ambiguity for CFGs
•
theorem: GAB is ambiguous if and only if the
corresponding PCP problem has a solution
•
PCP has a solution, there is a match
ti1 ti2 · · · ti1 ai1 ai2 · · · ain = bi1 bi2 · · · bi1 ai1 ai2 · · · ain
•
indices (tails) indicate two derivations of the same
string (through GA and GB )
•
if GAB is ambiguous the is a string that has two
derivations
•
two derivations must go through GA and GB
•
strings correspond to a match of the PCP problem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.167/31
COMP3310- Week 8
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 08: Sep 12-16, 2005
- Recursion theorem
- Self reference
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.168/31
Recursion theory
•
mathematical logic and computability
•
proving undecidability:
self reference leading to a paradox
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.169/31
Self-reference
•
Is it possible for a (finite) object to contain a
description of itself ?
•
Can you have a picture that contains itself in it ?
•
A finite to way to describe infinite detail
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.170/31
M printing < M >
•
design a TM SELF that prints its own description
•
or, write a program in Java that prints out itself
•
a straightforward approach would cause an infinite
’recursion’
•
define Pw the TM that ignores its input and simply
prints the string w and then halts.
•
denote the description of Pw by q(w) =< Pw >
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.171/31
M printing < M >
•
design the machine SELF to have two parts, A and
B
•
such that < SELF >=< AB >
•
think of A printing out B and B printing out A
•
define A to be P<B>
•
A prints out < B >
•
we cannot define B as P<A>
this would give a circular definition and infinite
recursion
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.172/31
M printing < M >
•
SELF : run A first, then B
•
A is P<B> . writes < B > on the tape
•
B prints out < A >, the description of a machine
that prints < B >.
• what is < B > ??
• < B > is written on the tape after A finishes
•
therefore < B > is: read w from the tape, which is a
TM computation description, and write down the
description of the TM that prints w concatenated
with w
•
this completely defines B and therefore A
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.173/31
M printing < M >
•
A = P<B>
•
B = on input < M >
1. compute q(< M >), the description of P<M >
2. combine it with < M > to get a TM and print its
description
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.174/31
The program SELF
•
A = P<B> = P<1.compute q(<M >)···>
•
B = on input < M >
1. compute q(< M >), the description of P<M >
2. combine it with < M > to get a TM and print its
description
•
A writes < B >=< 1.compute q(< M >) · · · > on
the tape
•
B reads its own description, and writes
< P<B> >< B > or
P<1.compute q(<M >)···> < 1.compute q(< M >) · · · >
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.175/31
self-reference "without" self-reference
•
self-reference:
• print out this sentence
• "this" is a self-reference
•
no self-reference:
• print out two copies of the following, the second in quotes:
"print out two copies of the following, the second in
quotes:"
•
•
self-reference is built-in the program
mixing description and meaning
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.176/31
Recursion theorem
let t : Σ∗ × Σ∗ → Σ∗ be a
computable function. There is a TM R that computes
r : Σ∗ → Σ∗ such that
• (theorem 6.3p220)
r(w) = t(< R >, w)
•
SELF was an application of the recursion theorem
t(x, y) = x
•
proof: similar to SELF construction
•
R has three parts A, B, T
• A = P<BT > , on input w , print out w < BT >
• B obtains a description of < ABT >=< R >
writes < R, w > on the tape and runs T
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.177/31
Using the recursion theorem
•
recursion theorem implies that you can use
"obtain own description"
in your algorithms or TM design
•
SELF = on any input
1. obtain own description < SELF >
2. print out < SELF >
•
"obtain own description" is implemented by the
recursion theorem
•
for SELF program, use T : on input < M, w > print
<M >
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.178/31
recursion theorem
•
to make a TM that obtains its own description
• design a machine T that takes this description as
extra input
• then produce a new machine R
• R operates exactly like T
• and has R’s description filled in automatically
•
Any computation t(·, ·) has a corresponding TM R
r(w) = t(< R >, w)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.179/31
More on the recursion theorem
•
Effective enumeration of computable functions
φ1 , φ2 , . . . , φm , . . .
•
S-m-n theorem: for every computable function
φ = φm (n, x) there exists a computable function S
such that φSm,n (x) = φm (n, x)
•
theorem: for each computable function f there exists
i ∈ N such that
(n)
(n)
φi = φf (i)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.180/31
using the recursion theorem
• (theorem 6.5p222)
AT M is undecidable
•
proof: by the recursion theorem
•
define B = on input w
• obtain own description < B >
• use AT M on < B, w > and
• if B(w) halts, loop for ever
• otherwise, halt
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.181/31
Minimal TMs
•
A TM M is called minimal if there is no TM
equivalent to M with shorter description < M >
• (theorem 6.5p222)
M INT M is not TM-recognizable
•
proof: use the recursion theorem
•
assume E enumerates M INT M
•
define C = on input w
1. obtain own description < C >
2. run the enumerator E until a machine D appears
with longer description than C
3. simulate D on w
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.182/31
Minimal TMs
•
M INT M is infinite, must contain a longer TM than C
•
C always simulates D so it is equivalent to it
•
C is shorter that D so D is not minimal
•
contradiction: D shouldn’t be on the enumerator’s list
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.183/31
A fixed point theorem
•
x is a fixed point of f if f (x) = x
•
TM encodings: assume that any string that is not a
proper TM encoding, corresponds to a TM that
rejects everything
let t : Σ∗ → Σ∗ be a computable
function. Then there is a TM F such that
t(< F >) =< G > and G is equivalent to F .
• (theorem 6.8p223)
•
proof: use the recursion theorem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.184/31
A fixed point theorem
let t : Σ∗ → Σ∗ be a computable
function. Then there is a TM F such that
t(< F >) =< G > and G is equivalent to F .
• (theorem 6.8p223)
•
proof: use the recursion theorem
•
define F = on input w
1. obtain own description < F >
2. compute t(< F >) =< G >
3. simulate G on w
•
clearly < G > and < F > are equivalent
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.185/31
Rice’s theorem
•
All non-trivial properties P of languages of TMs are
undecidable
•
P is non-trivial: exist < A >∈ P and < B >6∈ P
•
proof using the recursion theorem
•
Assume X decides P
•
define R = on input w :
• obtain own description < R >
using the recursion theorem
• Run X on < R >
• if X accepts, simulate B , else simulate A
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.186/31
COMP3310- Week 8
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 8: Thu Sep 15, 2005
- Logical theories
- Models and proofs
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.187/31
Logical theories
•
is a mathematical statement true or false?
•
is this problem decidable?
•
is a mathematical statement provable?
•
truth versus proof
•
decidability of a statement depends on the
mathematical domain
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.188/31
Formulas and propositions
•
define a precise language to use for mathematical
statements
• symbols, syntax
•
define a model, a way to interpret the language
symbols and
• meaning of the symbol sequence
formulas
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.189/31
Examples
•
∀q∃p∀x, y[p > q ∧ (x, y > 1 ⇒ xy 6= p)]
•
∀a, b, c, n[(a, b, c > 0 ∧ n > 2) ⇒ an + bn 6= cn ]
•
∀q∃p∀x, y[p > q ∧ (x, y > 1 ⇒ (xy 6= p ∧ xy 6= p + 2))]
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.190/31
Language definition
•
alphabet
• {∧, ∨, ¬, (, ), ∀, ∃}
• Variables x, y, z, w, . . . , x1 , x2 , . . .
• Relation symbols R1 , R2 , . . .
• Constants and functions can be represented as
relations
•
boolean operations, connectives ∧, ∨, ¬
•
Quantifiers ∃, ∀
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.191/31
Formulas
•
atomic formula
• Ri (xi , . . . , xj )
•
A well formed formula or just formula
• is an atomic formula
• has the form φ1 ∧ φ2 or φ1 ∨ φ2 or ¬φ1 where φi
are formulas
• has the form ∃x[φ1 ] or ∀x[φ1 ]
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.192/31
Formulas
•
scope of the quantifier ∃x[φ1 ] is φ1
•
Prenex normal form: all quantifiers at the front
•
free variable: a variable that is not within the scope
of any quantifier
•
sentence: formula with no free variables
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.193/31
Formulas and meaning
•
So far, formulas are well formed sequences of
symbols
•
To add meaning to them, need to define an
interpretation
•
a model defines the meaning of the formula by
providing
• universe: a set of values for the variables
• relations: assign a meaning to the relation
symbols
• M : {U, P1 , P2 , . . . Pk }
•
a model is also called a structure or an interpretation
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.194/31
Examples of models
•
consider φ = ∀x∀y[R1 (x, y) ∨ R1 (y, x)]
•
let M = (N , ≤)
a ≤ b or b ≤ a for all natural numbers
•
this model makes the formula true
•
the model M = (N , <) would make the formula
false
•
the definition of truth is given by induction
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.195/31
Definition of truth
•
Simple case: no quantifiers, no predicates
these formulas are called propositional formulas
•
truth assignment α : X → {T RU E, F ALSE}
assigns values to all variables
•
extend α to all formulas inductively
for example α(¬φ) = T RU E iff α(φ) = F ALSE
•
If we have quantifiers, then a model must be defined
•
Quantifiers over variables, first order logic
•
a formula φ is true in model M
the interpretation of φ using M is true
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.196/31
Theory of M
•
definition: the theory of M, denote T h(M) is the
collection of all true sentences in the language of
that model
•
is a given theory decidable?
•
decidable theory:
• the set T h(M) must be decidable
• T h(M) is a set of formulas
• given a formula, is it a member of T h(M)?
• in other words, given a formula, is there a way to
decide if it is true?
•
decision procedure for proving theorems in a
theory/model
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.197/31
Decidable theories
•
Only relatively weak theories are decidable
• (theorem 6.12p227)
T h(N , +) is decidable
•
proof:
• FAs can (kind of) add numbers
(see problem 1.32p88)
• many FA properties are decidable
•
given a sentence φ = Q1 x1 · · · Qk xk [ψ]
define φi = Qi+1 xi+1 · · · Qk xk [ψ]
•
φ0 = φ and φk = ψ
•
φi has i free variables
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.198/31
Decidable theories
•
for i = k, . . . , 0 construct Ai , the FA that recognizes
the strings representing i-tuples of numbers that
make φi true
•
Ak can be constructed directly. use Ai to construct
Ai−1
•
once we get A0 , test if it accepts the empty string
which means that φ was true
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.199/31
Decidable theories
•
Constructing the automata
• for Ai : assume all free variables have been fixed to some
values from the universe set (x1 , . . . , xi ) = (ai , . . . , ai )
• Ak corresponds to an atomic formula (single addition or
some boolean operation)
• constructing Ai from Ai+1 : φi = ∃xi φi+1
• non-deterministically guess the correct value for xi = ai
and use Ai+1
• φi = ∀xi φi+1 = ¬∃xi ¬φi+1
•
A0 accepts any input if φ is true
•
if φ is false, no input will be accepted by the
automata
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.200/31
An undecidable theory
• (theorem 6.13p229)
T h(N , +, ×) is undecidable
•
proof: reduce from AT M
•
encode the TM computation as a formula using plus
and times to ensure correctness of the computation
Given a TM M and a string w we
can construct φM,w in the language of T h(N , +, ×)
with a single free variable x, and
• (lemma 6.14p229)
∃xφM,w is true, iff M accepts w
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.201/31
An undecidable theory
Given a TM M and a string w we
can construct φM,w in the language of T h(N , +, ×)
with a single free variable x, and
• (lemma 6.14p229)
∃xφM,w is true, iff M accepts w
•
φM,w describes that x is a valid accepting
computation history of M on w
•
use computation histories in a form that can be
checked by only +, ×
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.202/31
Gödel’s incompleteness theorem
•
truth versus proof
•
what is a proof?
•
what was this (N , +, ×) business?
what is ’+’ ?
•
addition and multiplication is given by a set of axioms
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.203/31
axioms for natural numbers
•
The natural numbers can be defined by the Peano
axioms
•
natural numbers with the successor, (N , 0, S)
1. Every natural number a has a successor, denoted
by Sa
2. there is no natural number whose successor is 0
3. distinct natural numbers have distinct successors:
if a 6= b, then Sa 6= Sb
4. If a property P is true for zero, P (0) and also
whenever P (x) then also P (Sx) then P (x) for all
numbers x
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.204/31
axioms for natural numbers
•
in a different language
• ∀x¬(0 = Sx)
• ∀x∀y(¬(x = y) ⇒ ¬(x = y))
• (P (0) ∧ ∀x(P (x) ⇒ P (Sx))) ⇒ ∀xP (x)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.205/31
axioms and proofs for arithmetic
•
natural number axioms, axioms for addition and
multiplication (commutativity, associativity etc)
•
inference rules: given two valid (true) formulas, a
new formula must be valid
•
modus ponens: A and A ⇒ B then we can infer B
•
a proof π of φ is a sequence of formulas
s1 , s2 , . . . , sk = φ such that every formula is either an
axiom, or it follows from previous formulas by
applying an inference rule of the system
•
proof is a syntactic notion
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.206/31
Proving all truths
•
Given an axiomatic system (model, axioms,
inference rules)
• Completeness: prove all true sentences
• Soundness: prove only true sentences
•
does there exist a sound and complete axiomatic
system for arithmetic?
•
Gödel’s incompleteness theorem: No.
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.207/31
Gödel’s incompleteness theorem
•
There does not exist any axiomatic theory that
proves exactly the true statements of arithmetic
•
arithmetic: (N , +, ×)
•
Any axiomatizable theory of arithmetic that is sound
is necessarily incomplete
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.208/31
about arithmetic
Provable statements in
T h(N , +, ×) is Turing-recognizable
• (theorem 6.15p230)
•
proof: algorithm P accepts input φ if it is provable
• test every string as a potential proof of φ
Some true statement in
T h(N , +, ×) is not provable
• (theorem 6.16p231)
•
proof: by contradiction. construct an algorithm that
decides if any proposition is true (contradiction with
theorem 6.13)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.209/31
about arithmetic
Some true statement in
T h(N , +, ×) is not provable
• (theorem 6.16p231)
•
on input φ
• run P the theorem recognizer of 6.15 in parallel
for both φ and ¬φ.
• at least one of them will finish
• soundness of the system implies that we can
decide the validity of φ
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.210/31
about arithmetic
There is a sentence ψu in
T h(N , +, ×) that is unprovable
• (theorem 6.17p231)
•
proof: construct a sentence that says "this sentence
is unprovable"
use the recursion theorem for the self-reference
• define S = on any input
1. obtain own description < S >
2. construct ψu = ¬∃c[φS,0 ]
using lemma 6.14
3. run theorem recognizer P on ψ
4. if it accepts, accept. If it halts and rejects, reject
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.211/31
about arithmetic
•
ψu is true iff S does not accept 0
•
if S finds a proof of ψ then S accepts 0, giving a
contradiction since then ψ would be false and
provable (impossible since the system is sound)
•
so S fails to find a proof of ψ
•
S does not accept 0, and therefore ψ is true
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.212/31
Turing reducibility
•
mapping reducibility: is it possible to define more
general (strong) reducibilities?
•
yes, Turing reducibility
•
Reducibility: given the algorithm for one problem
design a new algorithm for a different problem
•
algorithm for a problem is used as a sub-procedure
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.213/31
Turing reductions
•
An oracle for language B is an external capability to
answer questions x ∈ B ?
•
An oracle Turing machine is a modified TM that has
access to an oracle
•
Denote a TM M with access to an oracle B as M B
•
the oracle answers any query about B
•
A is Turing reducible to B written A ≤T B if A is
decidable relative to B
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.214/31
Example: ET M ≤T AT M
•
(example 6.19p232) ET M ≤T AT M
•
ET M is decidable relative to AT M
given an oracle for AT M we can solve ET M
•
T AT M = on input M
1. construct N = on any input
(a) run M in parallel on all strings
(b) if M accepts any string accept
2. Query the oracle to determine whether N, 0 is in
AT M
3. if NO accept, if YES reject
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.215/31
Turing reducibility
• (theorem 6.21p233)
if A ≤T B and B is decidable then
A is decidable
•
If A ≤m B then A ≤T B
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.216/31
Information
•
some strings seem to be more interesting than
others
•
0101010101010101010101010101. . .
•
0100110101000111010010111101. . .
•
why is the string more boring ?
•
carries less information
•
some strings can be defined by a short description
•
some strings look random, have no patterns
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.217/31
Descriptions
•
what is a description?
•
we consider a description of a string x
• a precise algorithm to produce the string
• a TM with some seed input that produces the
string
•
a string may have several descriptions
•
the shortest possible description is a good
characterization of the string
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.218/31
Encodings
•
the description of a string x will be < M, w > for
some TM M , which on input w outputs x
•
encodings of TM
1. many ways to encode a TM
2. interested in efficient descriptions, so good
encodings will make a difference
3. use this encoding < M > w
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.219/31
Minimal descrptions
the minimal description of x
denoted d(x) is the shortest string < M, w > such
that M (w) outputs x. Define the descriptive or
Kolmogorov complexity of x as
• (definition 6.23p236)
K(x) = |d(x)|
• (theorem 6.24p236)
•
∃c∀x[K(x) ≤ |x| + c]
proof: choose < M, x > where M does nothing
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.220/31
Descriptive complexity
• (theorem 6.25p236)
∃c∀x[K(xx) ≤ K(x) + c]
•
proof: minimal description < M > d(x) where
• M on input < N, w > runs N (w) to get an output
s
• and prints out ss
•
∃c∀x, y[K(xy) ≤ 2K(x) + K(y) + c]
•
proof: < M > d(x)d(y)
•
better encoding of machine descriptions:
instead of < M with bits doubled> 01w use
(length of M ’s description)< M > w
•
K(xy) ≤ 2 log(K(x)) + K(x) + K(y) + c
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.221/31
Optimality of the definition
•
maybe a different definition of descriptive complexity
would be better?
•
consider any p : Σ∗ → Σ∗ and dp (x) the
corresponding minimal description of x using p
•
define Kp (x) = |dp (x)|
•
for example we could choose as p Java programs
dJ (x) is the shortest java program (in binary) that
outputs x
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.222/31
Optimality of the definition
• (theorem 6.27p238)
for any description p
∃c∀x[K(x) ≤ Kp (x) + c]
and c depends only on the choice of p
•
proof: choose < M, w > where M outputs p(w)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.223/31
Incompressible strings
• (definition 6.28p239)
x is c-compressible if
K(x) ≤ |x| + c
if x is incompressible by 1 then it is incompressible
• (theorem 6.29p239)
incompressible strings of every
length exist
•
proof: count
• binary strings of length n: 2n
• number of descriptions of length up to n − 1
X
2i = 2n − 1
0≤i≤n−1
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.224/31
Incompressible strings
at least 2n − 2n−c+ + 1 strings of
length n are incompressible by c
• (corollary 6.30p240)
•
proof:
• strings of length n: 2n
• descriptions of length up to n − c: 2n−c+1
•
incompressible strings have similar properties to
random strings
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.225/31
Incompressible strings
•
we say that a property holds for almost all strings if
the fraction of strings of length n that do not have
this property goes to zero for large n
•
next theorem: every computable property that holds
for almost all strings, also holds for all long enough
incompressible strings
if a computable property f holds
for almost all strings then for any b > 0 only a finite
number of b-incompressible strings do not have this
property
• (theorem 6.31p240)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.226/31
Incompressible strings
•
proof idea:
• define machine M that on input i finds the i-th
string s that fails f
• x can be described as < M, ix > where i is the
index on the above fail-list
• the description is short because almost all strings
have the property f and therefore the fail-list is
short
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.227/31
Incompressible strings
•
finding incompressible strings is an undecidable
•
determining whether a given string is incompressible
or not is undecidable
•
it is however possible to prove the existence of
incompressible strings
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.228/31
Density of primes
•
how many numbers less than n are primes ?
•
let p1 , p2 , . . . , pm be all primes ≤ n
•
we know that
n = pe11 pe22 · · · pemm
and the prime factorization is unique
•
< e1 , e2 , . . . , em > is a unique description of n
•
also all ei ≤ log n
•
the description is ≤ m log log n bits
•
incompressibility theorem: there are n with
K(n) ≥ log n
•
therefore m ≥
c Tasos Viglas, 2005
log n
log log n
COMP3310 Theory of Computation – p.229/31
COMP3310- Week 9
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 9: Sep 19 and 22, 2005
- Introduction to Complexity theory
- Polynomial time
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.230/31
Complexity theory
•
main question:
computability: what is computable ?
complexity: what is computable ?
•
efficient computation
•
classify problems according to their computational
requirements
• time, space, randomness
•
complexity of the problem, and not the complexity of
a specific solution/algorithm
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.231/31
Time and space
•
Time and space complexity
•
how many steps does it take to solve a problem?
•
how much memory is required to solve a problem?
•
use the Turing machine model to count resource
requirements
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.232/31
Classifying problems
Decidable (Recursive)
Context free
Regular
c Tasos Viglas, 2005
co−Recognizable (co−RE)
Recognizable (RE)
COMP3310 Theory of Computation – p.233/31
Complexity
•
many Turing machine models: single tape,
multi-tape, non-deterministic etc.
•
a single tape TM simulates all of them, but with an
overhead
•
develop a model-independent way to measure
resource requirements
•
and therefore characterize the complexity or difficulty
of the problem and not
• the power of a particular machine
• efficiency of a specific algorithm
•
Compare different problems: easy problems, hard
problems
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.234/31
Abstract from the input size
•
time complexity: how many steps?
•
Example: is x ∈ N prime?
• we would like to characterize the difficulty of determining
primality
• independent of size of the number x
• abstract the complexity of determining primality from the fact
that you are looking at a big number’s primality property
• a large size input makes all problems more difficult anyway
•
difficulty "per unit input length"
•
time complexity as a function of input length
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.235/31
Asymptotics
•
asymptotics (big-Oh notation) play a crucial role
•
abstract complexity becomes robust and model
independent for asymptotic complexity
•
sorting n numbers might require
• 5n log n + 1270 steps on a deterministic two tape
TM
• 120n log n + 110 on a single tape deterministic TM
• but it takes O(n log n) on (almost) any TM
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.236/31
Running time
•
Let M be a TM that halts on all inputs
the running time of M is the
function f : N → N where
f (n) = max|x|=n {no. of steps of M on x}
• (definition 7.1p248)
•
we say M is a f (n)-time TM or
the running time of M is f (n)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.237/31
Big Oh
let f, g : N → R+ . f (n) = O(g(n))
if positive constants c, n0 exist such that for every
integer n ≥ n0
f (n) ≤ cg(n)
• (definition 7.2p249)
•
g(n) in an asymptotic upper bound for f (n)
asymptotic: modulo some initial n’s and the constant
c
•
remember, we are interested in the (growth of the)
function, and not its absolute value
•
some examples
O(1), nO(1) , O(n + m), . . .
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.238/31
small-oh
• (definition 7.5p250)
let f, g : N → R+ . f (n) = o(g(n)) if
f (n)
=0
lim
n→∞ g(n)
•
f (n) = o(g(n)) if for any c > 0 there exists n0 such
that for every integer n ≥ n0
f (n) < cg(n)
•
O(g) = { all functions asymptotically less or equal to g}
•
o(g) = { all functions asymptotically strictly less than g}
•
both notations used: f ∈ O(g) and f = O(g)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.239/31
Omegas, Ω, ω
•
Oh’s were defined using ’less than’
•
and therefore are used for denoting upper bounds
(for example worst case running times)
•
corresponding notation is used for lower bounds
•
Ω(g), ω(g)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.240/31
Analyzing running times
•
example: consider a single tape TM accepting the
language {0k 1k }
•
we can do this in O(n2 )
•
is this the real complexity of the problem
or just a not-so-clever solution ?
•
how about O(n log n) ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.241/31
Analyzing running times
•
checking {0k 1k }
•
repeat
1. check odd-even parity of all 0s and 1s.
if odd reject
2. cross-off every other 0 and every other 1
•
until no 0s or no 1s remain
•
if no 0s and no 1s remain accept. otherwise reject
•
algorithm checks if all parities agree for 0s and 1s
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.242/31
T IM E(t(n))
for t : N → R+ , define T IM E(t(n))
to be the collection of all languages that are
decidable by an O(t(n))-time TM
• (definition 7.7p251)
•
for example the problem of checking if an input has
the form L = {0k 1k } is in T IM E(n log n)
•
a two tape machine can solve L in O(n)
•
but for a single tape TM L 6∈ T IM E(n)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.243/31
Model dependencies
•
the running times and the classes of languages
T IM E(t) are model dependent
•
T IM E(n) contains different languages for single
tape TMs and different for 2 tapes
•
define model independent classes of languages
•
"robust" complexity classes
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.244/31
Complexity across models
•
L = {0k 1k } is in
• T IM E(n log n) for single tape deterministic TMs
• T IM E(n) for two tape deterministic TMs
for t(n) ≥ n any t(n) time multi-tape
TM can be simulated by a single tape t2 (n) machine
• (theorem 7.8p254)
•
proof: use the simulation of multi-tape machines by
a single tape as mentioned in theorem 3.13p149
• every step of the multi-tape machine requires at
most O(t(n)) steps in the single tape simulation
• total running time t2
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.245/31
Complexity across models
•
non-deterministic computation
•
recall the notion of a computation tree for
non-deterministic computations
Every t(n) step non-deterministic
single tape computation has an equivalent 2O(t(n))
deterministic single tape computation
• (theorem 7.9p256)
•
proof: use simulation from theorem 3.16p150
• computation tree of height t, fan-out b
• explore (simulate) all tree paths breadth first
• every node can have at most b children (b is
determined by the machines transition function)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.246/31
Complexity across models
•
number of nodes is less than twice the number of
leaves, so O(bt(n))
•
to visit a new node, start from the root down the
non-deterministic path- at most t(n) steps
•
total time O(tbt ) = 2O(t)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.247/31
Polynomial time
•
defining robust model independent complexity
classes
P is the class of languages that
decidable in polynomial time on a single tape
deterministic TM
[
P =
T IM E(nk )
• (definition 7.12p258)
k
•
Robustness: P is invariant for all polynomially
equivalent models of computation
•
P is a reasonable characterization of problems that
we can solve efficiently
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.248/31
Strong Church Turing thesis
•
All reasonable computation models are polynomial
time/space equivalent
•
It is possible to simulate a model with a machine
from another model in polynomial time/space
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.249/31
Unreasonable models
•
Unreasonable models may have unrealistic
requirements (for our current knowledge)
•
analog computing and infinite precision, unbounded
parallel computing
•
what about non-determinism ?
•
what about quantum computing ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.250/31
Problems in P
•
given a graph, is there a path connecting a given
pair of its vertices?
•
P AT H ∈ P
•
assume graph is given by its adjacency matrix
•
on input G, s, t do the following
1. mark node s
2. repeat the following until no new nodes are
marked
3. scan all edges of G. if there is an edge (a, b)
where only a is marked then mark b as well
4. if t is marked accept otherwise reject
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.251/31
Problems in P
• (theorem 7.16p262)
•
Every context free language is in P
proof: use dynamic programming
• recall decidability of CFL, where we used
Chosmky normal form
• that yields an exponential algorithm for CFLs
• use a more clever dynamic programming
algorithm that runs in polynomial time
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.252/31
CFLs in P
•
CFG in Chomsky normal form, and a string w
(length n)
•
construct an n × n matrix A where
•
the entry aij contains all grammar variables that can
produce the substring wi wi+1 · · · wj
•
start from all 1 symbol sub-strings of w and fill in the
table
•
for a k + 1 substring of w , consider all ways to split it
into two substrings bc (k ways)
•
is there a derivation A → BC such that B can
produce b and C can produce c ? then add A in the
table
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.253/31
COMP3310- Week 9
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 9: Thu Sep 22, 2005
- P , polynomial time
- N P non-deterministic polynomial time
- Tutorial: Cook-Levin theorem proof
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.254/31
Introduction to Complexity theory
•
complexity theory: classifying problems
•
resource requirements (time, space)
•
model independent characterizations, when possible
•
classes of difficult problems, easy problems etc
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.255/31
Polynomial time
•
defining robust model independent complexity
classes
P is the class of languages that
decidable in polynomial time on a single tape
deterministic TM
[
P =
T IM E(nk )
• (definition 7.12p258)
k
•
Robustness: P is invariant for all polynomially
equivalent models of computation
•
P is a reasonable characterization of problems that
we can solve efficiently
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.256/31
Problems in P
•
given a graph, is there a path connecting a given
pair of its vertices?
•
P AT H ∈ P
•
assume graph is given by its adjacency matrix
•
on input G, s, t do the following
1. mark node s
2. repeat the following until no new nodes are
marked
3. scan all edges of G. if there is an edge (a, b)
where only a is marked then mark b as well
4. if t is marked accept otherwise reject
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.257/31
Relatively prime numbers
•
Checking whether two numbers are relatively prime
•
two numbers are called relatively prime if they do not
have any common divisors (except 1)
•
RELP RIM E = {< x, y > |x, y are relatively prime}
• (theorem 7.15p261)
RELP RIM E ∈ P
•
proof: use the Euclidean algorithm for the greatest
common divisor
•
note that a straightforward approach does not yield a
polynomial algorithm
•
brute-force is exponential: try all smaller numbers to
see if there is any non-trivial divisor
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.258/31
The Euclidean algorithm
•
The Euclidean algorithm finds the greatest common
divisor of two natural numbers
•
on input (x, y)
1. repeat until y = 0
(a) x = x mod y = x − ⌊ xy ⌋y
(b) swap x and y
2. Output x
•
every loop cuts a number by half (at least)
•
at the beginning of each iteration x > y
•
if x/2 ≥ y then x mod y < y ≤ x/2
•
if x/2 < y then x mod y = x − y < x/2
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.259/31
Problems in P
• (theorem 7.16p262)
•
Every context free language is in P
proof: use dynamic programming
• recall decidability of CFL, where we used
Chosmky normal form
• that yields an exponential algorithm for CFLs
• use a more clever dynamic programming
algorithm that runs in polynomial time
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.260/31
CFLs in P
•
CFG in Chomsky normal form, and a string w
(length n)
•
construct an n × n matrix A where
•
the entry aij contains all grammar variables that can
produce the substring wi wi+1 · · · wj
•
start from all 1 symbol sub-strings of w and fill in the
table
•
for a k + 1 substring of w , consider all ways to split it
into two substrings bc (k ways)
•
is there a derivation A → BC such that B can
produce b and C can produce c ? then add A in the
table
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.261/31
The class N P
•
Brute-force search sometimes lead to inefficient
algorithms
•
Can we always avoid brute-force search ?
•
N P , a class of problems
•
many practical problems of similar complexity do not
seem to allow any efficient solution
•
Polynomial solutions are not known, but it is also not
known whether those problems actually require
more than polynomial time
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.262/31
Hamiltonian paths
•
given a directed graph G and two of its vertices s, t,
is there a path connecting s with t that visits all
vertices exactly once?
•
HAM P AT H = {(G, s, t)|G is a directed graph, with
a Hamiltonian path from s to t}
•
brute-force algorithm will work. check all possible
path from s to t
•
it is an open problem whether a polynomial solution
exists
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.263/31
On N P
•
many other problems seem to resist polynomial time
solutions
•
many of these problems are strongly related: if you
solve one you have a solution for all of them
•
HAM P AT H : two interesting properties
1. no poly-time algorithm known
2. a correct solution can be verified in poly-time
•
in other words, the problem seems hard to solve but
easy to verify
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.264/31
Solving versus verifying
•
is it easier to solve a problem or just verify the
solution to problem?
•
this question can be formalized in complexity
theoretic terms
•
verifiers and poly-time verifiable problems
•
HAM P AT H , COM P OSIT ES
•
what about primality ? is it poly time verifiable?
•
primality is now known to be in P
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.265/31
Verifiers and certificates
•
consider a problem A and the associated decision
problem x ∈ A?
•
sometimes it is possible to present proof of
membership or a certificate that proves that a given
x∈A
A verifier for a language A is an
algorithm V where
• (definition 7.18p265)
A = {w|V accepts(w, c) for some string c}
•
a polynomial verifier for A runs in time poly. in w
•
if A has a polynomial verifier, then it is called
polynomially verifiable
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.266/31
Verifying certificates
•
the verifier uses the information of the certificate c
•
note that for polynomial verifiers, the certificate must
be polynomial in length
•
examples of certificates
• HAM P AT H : a directed path
• COM P OSIT ES : a divisor
• what about primality?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.267/31
Definitions of N P
N P is the class of languages that
have polynomial time verifiers
• (definition 7.19p266)
•
remember: N P is a polynomial time class
A language is in N P iff it is decided
by some non-deterministic poly-time Turing machine
• (theorem 7.20p266)
•
N P stands for non-deterministic polynomial
•
P : languages with poly-time deciders
•
N P : languages with poly-time verifiers
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.268/31
N P and non-determinism
A language is in N P iff it is decided
by some non-deterministic poly-time Turing machine
• (theorem 7.20p266)
•
proof: show how to convert a certificate to a NTM
and vice versa
•
⇒: assume the verifier V runs in time nk
•
to decide w ∈ A, on input w (of length n
1. non-deterministically select the certificate c of
length at most nk
2. run V on (w, c)
3. if V accepts, accept, o.w. reject
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.269/31
N P and non-determinism
A language is in N P iff it is decided
by some non-deterministic poly-time Turing machine
• (theorem 7.20p266)
•
proof: show how to convert a certificate to a NTM
and vice versa
•
⇐: assume N is the NTM that decides A
•
construct a verifier as follows: on input (w, c)
1. simulate N on (w, c). use every symbol of c to
pick which non-deterministic choice of N we
should follow each time (remove
non-determinism)
2. if c leads down a path to an accept, accept; ow.
reject
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.270/31
non-deterministic time
N T IM E(t(n)) =
{L|L is a language decided by a O(t(n)) NTM }
• (definition 7.21p267)
• (corollary 7.22p267)
NP =
[
N T IM E(nk )
k
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.271/31
non-determinism
•
views of non-determinism:
1. several choices, computation tree
2. ability to guess: guess (a poly-length string that
defines a path down the tree to an accept) and
verify that your guess was correct
3. for input w , ∃c : P olyCheck(c, w)
P does not need the quantifier. for input w,
P olyCheck(x)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.272/31
Examples of problems in N P
•
CLIQU E : given a graph, does it contain a k -clique?
•
HAM P AT H : given a graph does it contain a
hamiltonian path ?
•
SU BSET − SU M : given a collection of numbers
and a target t, does there exist a subset with sum
equal to t ?
SU BSET SU M = {(S, t)|S =
P
{s1 , . . . , sk } and for some {y1 , . . . , yl } ⊆ S
yi = t}
•
•
what about the complements of these sets ?
what kind of certificate can you give for something
that does not exist?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.273/31
The P versus N P question
•
is P = N P ?
•
the greatest unsolved problem in theoretical
computer science
•
acknowledged as one of the greatest open problems
in contemporary mathematics
•
it is most widely believed that P 6= N P
•
is it easier to verify a solution to a problem than it is
to find that solution?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.274/31
Boolean Satisfiability
•
consider a boolean formula over boolean variables
and the usual boolean operations, and, or, not.
•
for example ϕ = (x ∨ y) ∧ (x ∨ z)
•
literal x, x, clause (x ∨ y)
•
conjunction: (x ∧ y), disjunction: (x ∨ y)
•
conjunctive normal form or cnf: an AND of ORs
conjunction of disjunctions
•
example of cnf: ϕ = (x ∨ y) ∧ (¬x ∨ z)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.275/31
Boolean Satisfiability
•
given a boolean formula ϕ does there exist an
assignment of 0,1 to the variables, that makes the
entire formula true?
•
if a satisfying truth assignment exists for ϕ then ϕ is
called satisfiable
•
SAT = {ϕ|ϕ is a satisfiable boolean formula}
•
SAT ∈ N P
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.276/31
Reducibility
•
recall the notion of mapping-reducibility, A ≤m B
A is mapping reducible to B
written A ≤m B if there is a computable function
f : Σ∗ → Σ∗ such that for all w
• (definition 5.20p207)
w ∈ A ⇔ f (w) ∈ B
The function f is called the reduction from A to B
•
extend the definition for poly-time mapping
reductions
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.277/31
Poly-time reducibility
a function f : Σ∗ → Σ∗ is a
poly-time computable function if some polynomial time
TM on input w halts with f (w) on its tape
• (definition 7.28p272)
A is poly-time mapping reducible
to B written A ≤P B if there is a poly-time
computable function f : Σ∗ → Σ∗ such that for all w
• (definition 7.29p272)
w ∈ A ⇔ f (w) ∈ B
The function f is called the polynomial time
reduction from A to B
•
this is also called polynomial time many-one
reducibility
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.278/31
Comparing problems and their complexity
•
is SAT more difficult than CLIQU E ?
• (theorem 7.32p274)
3SAT is poly-time reducible to
CLIQU E
•
if we can solve CLIQU E then we can solve 3SAT
•
proof: reduce 3SAT to CLIQU E
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.279/31
N P -completeness
A language B is N P -complete if it
satisfies two conditions:
1. B ∈ N P
2. all A in N P polynomially reduce to B :
∀A ∈ N P : A ≤P B
• (definition 7.34p276)
•
N P -complete is a class of languages so we can also
say or write B ∈ N P -complete
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.280/31
Proving N P -completeness
• (theorem 7.35p276)
if B is N P -complete and B ∈ P
then P = N P
• (theorem 7.36p276)
if B is N P -complete and
1. B ≤P C and
2. C ∈ N P
then C is N P -complete
•
proving N P -completeness: reduce from a known
N P -complete problem
•
How do we prove the first N P -complete problem?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.281/31
N P -completeness
•
N P -completeness was introduced independently by
Cook and Levin (70’s)
•
the first N P -complete problem, SAT
•
the Cook-Levin theorem: SAT is N P -complete
(theorem 7.27p267)
•
proof: use computation histories: construct a
formula such that an accepting computation exists iff
the formula is satisfiable
•
show how to reduce any A ∈ N P to a SAT question
•
all we know is that A ∈ N P and therefore the only
thing we can use is that a NTM computation exists
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.282/31
3SAT
• (corollary 7.42p282)
3SAT is N P -complete
•
proof: any SAT formula can be converted to a
3SAT that is up to polynomially longer
•
use the distributive laws of boolean algebra to write
the Cook-Levin reduction formula as a cnf
•
big clauses (more than 3 literals) can be split into
smaller ones by introducing new variables
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.283/31
COMP3310- Week 10
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 10: Thu Oct 6, 2005
- N P -completeness
- Tutorial: N P -completeness proofs
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.284/31
The class N P
•
Brute-force search sometimes lead to inefficient
algorithms
•
Can we always avoid brute-force search ?
•
N P , a class of problems
•
many practical problems of similar complexity do not
seem to allow any efficient solution
•
Polynomial solutions are not known, but it is also not
known whether those problems actually require
more than polynomial time
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.285/31
Hamiltonian paths
•
given a directed graph G and two of its vertices s, t,
is there a path connecting s with t that visits all
vertices exactly once?
•
HAM P AT H = {(G, s, t)|G is a directed graph, with
a Hamiltonian path from s to t}
•
brute-force algorithm will work. check all possible
path from s to t
•
it is an open problem whether a polynomial solution
exists
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.286/31
On N P
•
many other problems seem to resist polynomial time
solutions
•
many of these problems are strongly related: if you
solve one you have a solution for all of them
•
HAM P AT H : two interesting properties
1. no poly-time algorithm known
2. a correct solution can be verified in poly-time
•
in other words, the problem seems hard to solve but
easy to verify
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.287/31
Definitions of N P
N P is the class of languages that
have polynomial time verifiers
• (definition 7.19p266)
•
remember: N P is a polynomial time class
A language is in N P iff it is decided
by some non-deterministic poly-time Turing machine
• (theorem 7.20p266)
•
N P stands for non-deterministic polynomial
•
P : languages with poly-time deciders
•
N P : languages with poly-time verifiers
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.288/31
Verifiers and certificates
•
consider a problem A and the associated decision
problem x ∈ A?
•
sometimes it is possible to present proof of
membership or a certificate that proves that a given
x∈A
A verifier for a language A is an
algorithm V where
• (definition 7.18p265)
A = {w|V accepts(w, c) for some string c}
•
a polynomial verifier for A runs in time poly. in w
•
if A has a polynomial verifier, then it is called
polynomially verifiable
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.289/31
non-deterministic time
N T IM E(t(n)) =
{L|L is a language decided by a O(t(n)) NTM }
• (definition 7.21p267)
• (corollary 7.22p267)
NP =
[
N T IM E(nk )
k
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.290/31
Boolean Satisfiability
•
consider a boolean formula over boolean variables
and the usual boolean operations, and, or, not.
•
for example ϕ = (x ∨ y) ∧ (x ∨ z)
•
literal x, x, clause (x ∨ y)
•
conjunction: (x ∧ y), disjunction: (x ∨ y)
•
conjunctive normal form or cnf: an AND of ORs
conjunction of disjunctions
•
example of cnf: ϕ = (x ∨ y) ∧ (¬x ∨ z)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.291/31
Boolean Satisfiability
•
given a boolean formula ϕ does there exist an
assignment of 0,1 to the variables, that makes the
entire formula true?
•
if a satisfying truth assignment exists for ϕ then ϕ is
called satisfiable
•
SAT = {ϕ|ϕ is a satisfiable boolean formula}
•
SAT ∈ N P
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.292/31
Poly-time reducibility
a function f : Σ∗ → Σ∗ is a
poly-time computable function if some polynomial time
TM on input w halts with f (w) on its tape
• (definition 7.28p272)
A is poly-time mapping reducible
to B written A ≤P B if there is a poly-time
computable function f : Σ∗ → Σ∗ such that for all w
• (definition 7.29p272)
w ∈ A ⇔ f (w) ∈ B
The function f is called the polynomial time
reduction from A to B
•
this is also called polynomial time many-one
reducibility
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.293/31
Comparing problems and their complexity
•
is SAT more difficult than CLIQU E ?
• (theorem 7.32p274)
3SAT is poly-time reducible to
CLIQU E
•
if we can solve CLIQU E then we can solve 3SAT
•
proof: reduce 3SAT to CLIQU E
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.294/31
N P -completeness
A language B is N P -complete if it
satisfies two conditions:
1. B ∈ N P
2. all A in N P polynomially reduce to B :
∀A ∈ N P : A ≤P B
• (definition 7.34p276)
•
N P -complete is a class of languages so we can also
say or write B ∈ N P -complete
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.295/31
Proving N P -completeness
• (theorem 7.35p276)
if B is N P -complete and B ∈ P
then P = N P
• (theorem 7.36p276)
if B is N P -complete and
1. B ≤P C and
2. C ∈ N P
then C is N P -complete
•
proving N P -completeness: reduce from a known
N P -complete problem
•
How do we prove the first N P -complete problem?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.296/31
N P -completeness
•
N P -completeness was introduced independently by
Cook and Levin (70’s)
•
the first N P -complete problem, SAT
•
the Cook-Levin theorem: SAT is N P -complete
(theorem 7.27p267)
•
proof: use computation histories: construct a
formula such that an accepting computation exists iff
the formula is satisfiable
•
show how to reduce any A ∈ N P to a SAT question
•
all we know is that A ∈ N P and therefore the only
thing we can use is that a NTM computation exists
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.297/31
3SAT
• (corollary 7.42p282)
3SAT is N P -complete
•
proof: any SAT formula can be converted to a
3SAT that is up to polynomially longer
•
use the distributive laws of boolean algebra to write
the Cook-Levin reduction formula as a cnf
•
ϕcell ∧ ϕstart ∧ ϕmove ∧ ϕaccept
•
big clauses (more than 3 literals) can be split into
smaller ones by introducing new variables
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.298/31
Cliques
•
a clique is a complete graph
•
The clique problem: given a graph G and a number
k , does G contain a sub-graph of k nodes that form
a clique?
•
CLIQU E is N P -complete
• CLIQU E is in N P and
• 3SAT reduces to CLIQU E ,
3SAT ≤P CLIQU E
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.299/31
Vertex cover
•
given a graph G, a vertex cover is a subset of
vertices such that every edge in G connects to a
vertex in the vertex cover
•
decision version: does G contain a vertex cover of
size k ?
• (theorem 7.44p284)
V ERT EXCOV ER is
N P -complete
•
reduce from 3SAT
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.300/31
Hamiltonian paths
•
given a directed graph G and two of its vertices s, t,
is there a path connecting s with t that visits all
vertices exactly once?
•
HAM P AT H = {(G, s, t)|G is a directed graph, with
a Hamiltonian path from s to t}
• (theorem 7.46p286)
•
HAM P AT H is N P -complete
reduce from 3SAT
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.301/31
Undirected Hamiltonian path
• (theorem 7.55p291)
•
U HAM P AT H is N P -complete
reduce the directed version to the undirected
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.302/31
Sub-set sums
•
SU BSET − SU M : given a collection of numbers
and a target t, does there exist a subset with sum
equal to t ?
SU BSET SU M = {(S, t)|S =
P
{s1 , . . . , sk } and for some {y1 , . . . , yl } ⊆ S
yi = t}
• (theorem 7.55p291)
•
SU BSET SU M is N P -complete
reduce from 3SAT
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.303/31
2SAT
•
2SAT ∈ P
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.304/31
COMP3310- Week 11
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 11: Mon Oct 10, 2005
- Space complexity
- Savitch’s theorem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.305/31
Space complexity
•
characterization of problems in terms of
space/memory requirements
•
measuring space: use the Turing machine model
•
space behaves "better" that time
•
space can be re-used
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.306/31
Space complexity
The space complexity of a
deterministic TM M is the function f : N → N where
f (n) is the maximum number of tape cells that M
uses on any input of length n
• (definition 8.1p303)
•
the definition also requires that M halts on all inputs
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.307/31
Space complexity
the space complexity classes
SP ACE(f (n)) and N SP ACE(f (n)) are defined as
follows:
• SP ACE(f (n)) = {L| there exists a deterministic
TM that decides L in space f (n)}
• N SP ACE(f (n)) = {L| there exists a
non-deterministic TM that decides L in space
f (n)}
• (definition 8.2p304)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.308/31
Example
•
solving SAT brute-force
•
given a formula ϕ on the variables x1 , x2 , . . . , xn , try
all assignments to the variables and evaluate ϕ on
each assignment
•
what is the space complexity of this algorithm ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.309/31
Example
•
solving SAT brute-force
•
given a formula ϕ on the variables x1 , x2 , . . . , xn , try
all assignments to the variables and evaluate ϕ on
each assignments
•
what is the space complexity of this algorithm ?
•
the space complexity is linear: re-use space
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.310/31
Space and time
•
f -space computation may run for f 2O(f ) time steps
at most
•
cannot run for more than that because it would
repeat a configuration and therefore lead to an
infinite loop
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.311/31
Savitch’s theorem
•
comparing the power of deterministic and
non-deterministic space
for any f (n) ≥ n,
N SP ACE(f (n)) ⊆ SP ACE(f 2 (n))
• (theorem 8.5p306)
•
non-determinism gives little extra power in terms of
space complexity
•
the equivalent problem for time is the P versus N P
question
•
proof: simulation of a NTM deterministically.
main idea: re-use space
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.312/31
Savitch’s theorem
•
straightforward simulation does not work
•
f -space computation may go for 2f time steps
•
we can simulate all possible non-deterministic
branches but that requires remembering all
non-deterministic choices
•
space requirements would be 2f worst case.
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.313/31
Proof of Savitch’s theorem
•
consider the yieldability (or reachability) problem:
given a NTM N , input w , configurations c1 , c2 and a
number t, can c1 yield c2 in t steps?
•
if we have a way of solving this problem in limited
space, then we can simulate a NTM N :
•
given N and input x, is it possible for the start
configuration c1 to yield the accept in the max
possible number of steps ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.314/31
Proof of Savitch’s theorem
•
CAN Y IELD(c1 , c2 , t) :
1. t = 1, test c1 = c2 or c1 leads to c2 directly (check
N ’s transition function)
2. for each configuration cm of N on input w
3. run CAN Y IELD(c1 , cm , t/2)
4. run CAN Y IELD(cm , c2 , t/2)
5. if such a mid-point is found, accept
6. otherwise reject
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.315/31
Proof of Savitch’s theorem
•
analysis of space requirements of the simulation
•
we need space for the recursion (stack)
•
t starts as 2f (n) and is halved at every recursive call
•
so the depth of the recursion is O(log t) or O(f (n))
•
each level of the recursion needs to store c1 , c2 , t on
the stack. that requires O(f (n) space
•
total space O(f 2 (n))
•
technical problem: we do not know f (n) beforehand.
try all possible values, reusing space
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.316/31
P SP ACE
P SP ACE is the class of
languages that are decidable in polynomial space on
a deterministic TM
• (definition 8.6p308)
P SP ACE = ∪k SP ACE(nk )
•
define N P SP ACE , the non-deterministic version of
P SP ACE
•
P SP ACE = N P SP ACE by Savitch’s theorem
•
define EXP T IM E as deterministic exponential
time
P ⊆ N P ⊆ P SP ACE = N P SP ACE ⊆ EXP T IM E
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.317/31
P SP ACE -completeness
a language B is called
P SP ACE -complete if it satisfies two conditions:
1. B ∈ P SP ACE
2. for every A ∈ P SP ACE , A ≤P B
• (definition 8.8p309)
•
if B satisfies only (2) then it is called P SP ACE -hard
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.318/31
more complexity theory
•
week 11: space complexity,
P SP ACE -completeness, games, L and N L
•
week 12: hierarchy theorems and diagonilization,
oracles and the polynomial time hierarchy
•
week 13: review (no tutorial time)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.319/31
COMP3310- Week 11
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 11: Thu Oct 13, 2005
- P SP ACE completeness
- L, N L, Immerman-Szelepscényi theorem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.320/31
On N P
•
graph theoretic properties and N P
•
first order logic
how do you express reachability in first-order logic?
•
existential second order logic ∃P ϕ where ϕ is
first-order
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.321/31
Fagin’s theorem
•
the class of all graph-theoretic properties expressible
in existential second order logic is precisely N P
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.322/31
P SP ACE
P SP ACE is the class of
languages that are decidable in polynomial space on
a deterministic TM
[
P SP ACE =
SP ACE(nk )
• (definition 8.6p308)
k
•
define N P SP ACE , the non-deterministic version of
P SP ACE
•
P SP ACE = N P SP ACE by Savitch’s theorem
•
let EXP T IM E denote det. exponential time
P ⊆ N P ⊆ P SP ACE = N P SP ACE ⊆ EXP T IM E
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.323/31
P SP ACE -completeness
a language B is called
P SP ACE -complete if it satisfies two conditions:
1. B ∈ P SP ACE
2. for every A ∈ P SP ACE , A ≤P B
• (definition 8.8p309)
•
if B satisfies only (2) then it is called P SP ACE -hard
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.324/31
Quantified formulas
•
SAT is an N P -complete problem
•
involves boolean formulas, but no quantifiers
•
Quantified boolean formulas: boolean formulas with
existential or universal quantifiers
•
examples:
• ∀x(x + 1 > x)
• ∀x∃y[(x ∨ y) ∧ (x ∨ y)]
•
all variables quantified: fully quantified formulas or
sentences
•
fully quantified formulas are either true or false
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.325/31
T QBF
•
True quantified boolean formula T QBF
•
given a fully quantified boolean formula, decide
whether it is true or false
•
T QBF = {ϕ|ϕ is a true fully quantified boolean
formula}
•
T QBF is P SP ACE -complete
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.326/31
T QBF is P SP ACE -complete
• (theorem 8.9p311)
•
T QBF is P SP ACE -complete
proof:
• T QBF ∈ P SP ACE : try out all possible
assignments, reusing space
• all of P SP ACE reduces to T QBF : encode the
simulation of any P SP ACE computation by a
formula
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.327/31
T QBF ∈ P SP ACE
•
here is a polynomial space algorithm T (ϕ)for T QBF
on input ϕ, T (ϕ):
1. if ϕ has no quantifiers, just evaluate it
2. if ϕ is ∃xψ , call T (ψ) once with x = 0 and once
with x = 1 accept if any of the two accepts
otherwise reject
3. if ϕ is ∀xψ , call T (ψ) once with x = 0 and once
with x = 1 accept if both of them accept,
otherwise reject
•
space required: depth of the recursion is equal to
the number of variables, and constant space for
each recursive call
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.328/31
T QBF is P SP ACE -hard
•
let A be in SP ACE(nk ), decided by a TM M .
reduce it to T QBF as follows
•
the reduction will map any string w to a formula ϕ
that is true iff M accepts w
•
construction similar to the Cook-Levin theorem
formula
•
ϕstart ∧ ϕcell ∧ ϕmove ∧ ϕaccept
•
formula cannot be used in the same way as in
Cook-Levin theorem: the running time may be
exponential (the computation tableau is too big)
•
solution: break up formula into parts and represent
each part with the same ’subformula’ plus quantifiers
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.329/31
T QBF is P SP ACE -hard
•
construct a formula ϕc1 ,c2 ,t
•
ϕc1 ,c2,t = ∃m1 [ϕc1 ,cm , 2t ∧ ϕcm ,c2, 2t ]
•
reduce formula size
ϕc1 ,c2,t = ∃m1 ∀(c3 , c4 ) ∈ {(c1 , m1 ), (m1 , c2 )}[ϕc3 ,c4, 2t ]
•
use ∀x[(x = y ∨ x = z) → . . .] instead of
∀x ∈ {y, z}[. . .]
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.330/31
Other P SP ACE -hard problems
•
other P SP ACE -complete problems include games
and finding winning strategies in games
•
example: game of GO in an n × n board
variant of GO (bounded moves and some simplified
rules)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.331/31
Logspace
•
sublinear space bounds, log n
•
a machine can read the entire input, but does not
have enough space to store it
•
modify the Turing machine model to allow a
read-only input tape, plus a working tape
•
the space bound applies on the working tape only
•
log-space is an class that contains interesting
problems and has robustness properties under
model and input encoding variations
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.332/31
L and N L
•
L is the class of languages decidable in
deterministic logarithmic space
L = SP ACE(log n)
•
N L is the class of languages decidable in
non-deterministic logarithmic space
N L = N SP ACE(log n)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.333/31
Is there a path ?
•
the reachability problem on directed graphs is in N L
•
for TM with a read only input tape, define the
configuration the TM on an input w to include the
contents of the work tape, the state, and the
positions of all head pointers (including the input
tape pointer)
•
an f (n)-space machine may have at most n2O(f (n))
configurations
•
with this definition, Savitch’s theorem works for any
space bound f (n) ≥ log n
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.334/31
Completeness and reductions
•
characterizing L and N L, using completeness
•
(open) question L = N L?
•
reducibility: polynomial time reducibility is not useful,
since all N L problems are reducible to one another
•
poly-time reductions are too powerful to reveal
interesting properties within N L
•
use log-space reducibility
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.335/31
log-space reducibility
a log -space transducer is a TM
with a read only input tape and a write-only output
tape that works in O(log n) space. the transducer
computes a function f : Σ∗ → Σ∗
• (definition 8.21p324)
•
f is called a log-space computable function
•
a language A is called log space reducible to B
written A ≤L B if A is mapping-reducible to B by a
log space computable function
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.336/31
N L-completeness
• (definition 8.22p324)
a language B is N L-complete if
1. B ∈ N L
2. every A ∈ N L is log-space reducible to B
•
if only the second property holds, then B is called
N L-hard
•
if any N L-complete problem is in L then N L = L
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.337/31
Path is N L-complete
• (theorem 8.25p325)
•
PATH is N L-complete
proof: construct a directed graph that represents the
computation of a log-space computation
• (corollary 8.26p326)
c Tasos Viglas, 2005
NL ∈ P
COMP3310 Theory of Computation – p.338/31
N L versus co-N L
•
the following is considered a surprising result
• (theorem 8.27p327)
N L = co-N L
•
proof: show that P AT H is in N L
•
Immerman-Szelepscényi theorem: For reasonable
s(n) ≥ log n, N SP ACE(s(n)) = co-N SP ACE(s(n))
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.339/31
Complexity classes
•
the known relationships among some classes
L ⊆ N L = co-N L ⊆ P ⊆ P SP ACE
•
we know that N L 6= P SP ACE
•
we believe that all these containments are proper
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.340/31
COMP3310- Week 12
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 12: Mon Oct 17, 2005
- hierarchy theorems
- probabilistic and approximation algorithms
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.341/31
Complexity classes
•
P , efficiently solvable problems
•
N P , problems with short yes-certificates
•
complexity within P ? or N P ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.342/31
Hierarchies
•
easy problems, hard problems, very hard problems,
etc
•
L ⊆ P ⊆ N P ⊆ P SP ACE
•
P versus N P problem: is there a language in N P
that is not in P ?
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.343/31
Time hierarchies
•
deterministic time hierarchy
•
recall the definition of DT IM E(t(n))
•
consider DT IM E(n) and DT IM E(n2 )
•
are these two classes equal ? is there a problem
that can be solved in time n2 but no n-time algorithm
exists for it?
•
two ways to prove such a result:
1. present a specific problem solvable in time n2 but
not in n
2. prove the existence of such a problem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.344/31
Constructibility
a function t : N → N, where
t(n) = Ω(n log n) is called time-constructible if it is
computable in time O(t(n))
• (definition 9.8p340)
•
in these definitions ’computable’ means that we can
compute the value t(n) from input 1n
a function f : N → N, where
t(n) = Ω(log n) is called space-constructible if it is
computable in space O(f (n))
• (definition 9.1p336)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.345/31
Time hierarchy theorem
for any time constructible function
t : N → N a language A exists that is decidable in
time O(t(n)) but not in time o(t(n)/ log t(n))
• (theorem 9.10p341)
•
proof by diagonalization: construct a language that
differs with all languages decidable in time
t(n)/ log t(n) but is computable in time t(n)
•
construct a machine D that takes input w of the form
< M > and simulates M on w for t(n) steps.
•
if M finishes in that time, then do the opposite
•
D must operate efficiently: it must always operate in
time t(n) and must avoid all languages decidable in
time less than t/ log t
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.346/31
Time hierarchy theorem
•
the simulation introduces a log-factor overhead (for
time)
•
(space hierarchy theorem only introduces a constant
overhead)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.347/31
Time hierarchy theorem
•
D on input w:
1. let n be the length of w
2. compute t(n) and store the value t/ log t in a
counter. decrement this counter before every TM
step of 3,4,5
3. if w is not < M > 10∗ reject
4. simulate M on w
5. if M accepts then reject. if M rejects, accept
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.348/31
time hierarchy
• (corollary 9.12p343)
for any two real numbers
0 ≤ ǫ1 ≤ ǫ2
DT IM E(nǫ1 ) ⊂ DT IM E(nǫ2 )
• (corollary 9.13p343)
c Tasos Viglas, 2005
P ⊂ EXP T IM E
COMP3310 Theory of Computation – p.349/31
Space hierarchy
for any space constructible function
f a language A exists that is decidable in space
O(f (n)) but not in o(f (n))
• (theorem 9.3p337)
•
space hierarchy is more tight (recall the extra
log-factor of the time hierarchy theorem)
•
proof by a diagonalization construction, similar to the
time hierarchy theorem
•
simulation introduces only a constant overhead for
space
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.350/31
space hierarchy
• (corollary 9.4p339)
for any two real numbers
0 ≤ ǫ1 ≤ ǫ2
SP ACE(nǫ1 ) ⊂ SP ACE(nǫ2 )
• (corollary 9.4p339)
•
N L ⊂ P SP ACE
therefore T QBF is not in N L
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.351/31
non-deteministic hierarchies
•
similar time and space hierarchies exist for
non-deterministic complexity classes
•
proofs are more complicated
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.352/31
Dealing with hardness
•
N P contains practical but hard problems
•
efficient solutions are not known. how do we cope?
•
probabilistic and approximation algorithms
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.353/31
Probabilistic algorithms
•
randomness is a tool that may add power to a
computation
•
yet another open question: compare the two classes
• polynomial time, P
• polynomial time plus random choices, RP
•
a poly-time probabilistic algorithm, runs in
polynomial time, and gives an answer. but it may
make a mistake with small probability
•
trading time efficiency for a probability of a mistake
•
example: polynomial identity
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.354/31
Approximation algorithms
•
think of optimization problems, or in general,
problems whose solution is more than a yes-no
answer
•
example: find the smallest vertex cover or the
biggest clique in a graph
•
an approximation algorithm will find a solution, but
possibly not the best one
•
an approximation algorithm always comes with a
guarantee of the quality of the solution
•
example: minimum cuts
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.355/31
More complexity
•
randomization, pseudo-randomness
•
interactive proof systems
•
one-way functions, cryptography
•
parallel complexity, circuit complexity
•
lower bounds
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.356/31
COMP3310- Week 12
COMP3310: Theory of Computation
School of Information Technologies
Tasos Viglas, Madsen G87
[email protected]
Week 12: Thu Oct 20, 2005
- P versus N P
- Average case complexity
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.357/31
Problems in N P
•
networks and systems: min-cost routing, network
optimization, scheduling, load balancing
•
programming: program verification, optimization,
compilers
•
mathematical programming (general optimization)
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.358/31
Dealing with hardness
•
N P contains practical but hard problems
•
efficient solutions are not known
•
how do we deal with N P -completeness?
•
probabilistic and approximation algorithms
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.359/31
Probabilistic algorithms
•
randomness is a tool that may add power to a
computation
•
yet another open question: compare the two classes
• solvable in poly time
• solvable in poly time, and the solution is usually
correct
•
a poly-time probabilistic algorithm, runs in
polynomial time, and gives an answer. but it may
make a mistake with small probability
•
trading time efficiency for a probability of a mistake
•
example: polynomial identity
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.360/31
Approximation algorithms
•
think of optimization problems, or in general,
problems whose solution is more than a yes-no
answer
•
example: find the smallest vertex cover or the
biggest clique in a graph
•
an approximation algorithm will find a solution, but
possibly not the best one
•
an approximation algorithm always comes with a
guarantee of the quality of the solution
•
example: minimum cuts
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.361/31
Worst case hardness
•
SAT is N P -complete, and therefore seems to be
hard in the worst case
•
assume that P 6= N P . how often is SAT hard?
•
hard instances versus easy instances
•
average case complexity
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.362/31
P versus N P
•
P versus N P is a very general problem
•
four worlds, depending on P = N P
Russell Impagliazzo, FOCS 1995
1. P = N P , most things easy to solve
2. most things easy on the average
3. there are hard on the average problems, but no
one-way functions
4. one-way functions exist
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.363/31
Algorithmica
•
P = N P (or N P ⊆ BP P )
•
we can automatically produce optimal solutions from
the description of a problem
•
practical stuff
• VLSI design, layout optimization
• programming: no need to describe how to do
things, just describe what the output should be
• machine learning, AI, natural languages
• proofs for any theorem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.364/31
Algorithmica
•
Cryptography is impossible in this world
•
any code can be broken, easy to learn any crypto
algorithm and decipher
•
cannot keep an algorithm secret, a machine can
learn the algorithm given enough plain-crypto text
examples
•
identification is possible only by physical
measurements
•
any remotely accessible info is essentially public
•
to show that we are in algorithmica, give an efficient
algorithm for an N P -complete problem
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.365/31
Heuristica
•
N P contains hard in the worst case problems, but
easy on average
•
somewhat paradoxical world
•
hard instances exist, but finding them is an
intractable problem
•
this world is in some sense indistinguishable from
algorithmica
•
but still there are significant differences
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.366/31
Heuristica
•
example: VLSI, circuit minimization
heuristica guarantees that your algorithms will work
well for most circuits. but we want an algorithm that
works well on most minimal circuit descriptions.
what is that distribution like?
•
note that the circuit minimization problem is above
N P , in the poly-time hierarchy Σp2
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.367/31
Heuristica
•
to show we are in heuristica, give an efficient
algorithm for an average-case complete problem on
the uniform distribution
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.368/31
Pessiland
•
problems are hard on the average, but one-way
functions do not exist
•
easy to generate hard instances, but hard to
generate hard solved instances
•
generic methods of problem solving would fail on
almost all domains
•
how do you use hard problems for cryptography?
not clear
•
to prove we are in pessiland, give an average case
lower bound for some problem in N P
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.369/31
crypto
•
one-way functions exist, and public-key cryptography
is possible
•
(it is not easy to formalize secret-key agreement
protocols and public-key protocols)
•
any crypto-task can be done easily
•
privacy, anonymity
•
closest to the real world, as far as we know
•
to show we are in crypto, we need to prove that a
particular secret key exchange protocol is secure
c Tasos Viglas, 2005
COMP3310 Theory of Computation – p.370/31