CS 302: Discrete Math II A Review NOTATION An alphabet Σ is a finite set (e.g., Σ = {0,1}) A string over Σ.

Download Report

Transcript CS 302: Discrete Math II A Review NOTATION An alphabet Σ is a finite set (e.g., Σ = {0,1}) A string over Σ.

CS 302: Discrete Math II
A Review
NOTATION
An alphabet Σ is a finite set (e.g., Σ = {0,1})
A string over Σ is a finite-length sequence of
elements of Σ
For x a string, |x| is the length of x
The unique string of length 0 will be denoted
by ε and will be called the empty or null string
A language over Σ is a set of strings over Σ
M = (Q, Σ, , q0, F) where Q = {q0, q1, q2, q3} are states
Σ = {0,1} is the alphabet
 : Q  Σ → Q transition function
*
q0  Q is start state
q1
0
1
0,1
1
q0
M
0
q3
q2
0
1
F = {q1, q2}  Q accept states
*

q0
0
q0
1
q1
q1
q2
q2
q3
q2
q2
q3
q0
q2
NFAs have “choices” --  : Q  Σ P (Q), and accept
on input w if there is a path from q0 to a qa in F.
DFA
NFA
DEF
Regular
Language
Regular
Expression
THE REGULAR
PUMPING LEMMA
Let L be a regular language
Then there exists P such that
For every w  L with |w| ≥ P
there exist xyz=w, where:
1. |y| > 0
2. |xy| ≤ P
3. xyiz  L for any i ≥ 0
{ ww : w 2 Σ* } is not regular!
SOME LANGUAGES ARE
NOT REGULAR!
B = {0n1n | n ≥ 0} is NOT regular!
Suppose B is regular and let P be the pumping
length. The string 0P1P  B and has length at
least P. So by the pumping lemma, there should
be xyz = 0P1P so that |xy| ≤ P, |y| > 0, and xyyzB.
But y must be only 0s (otherwise |xy| > P), so xyyz
has at least P+1 “0”s (because |y| > 0) but only P
“1”s. So xyyz  B, contradicting the pumping
lemma. Therefore B is not regular.
string
pop
ε,ε → $
push
0,ε → 0
1,0 → ε
ε,$ → ε
1,0 → ε
A PDA accepts the string x if there is a path on
input x and empty stack from q0 to some qa 2 F.
Following transition “a,bc” reads “a” from the
input, pops “b” off the stack, and pushes “c” onto it.
CONTEXT-FREE GRAMMARS
start variable
A → 0A1
A→B
B→#
variables
production
rules
terminals
A  0A1  00A11  00B11  00#11
uVw yields uvw if (V → v) in G.
A derives 00#11 in 4 steps.
THE CHOMSKY NORMAL FORM
A context-free grammar is in Chomsky normal
form if every rule is of the form:
A → BC B and C are not start variable
A→a
a is a terminal
S→ε
S is the start variable
Any variable A that is not the start variable
can only generate strings of length > 0
Theorem: All grammars can be converted to CNF
THE CONTEXT-FREE
PUMPING LEMMA
Let L be a context-free language
Then there exists P such that
For every w  L with |w| ≥ P
there exist uvxyz=w, where:
1. |vy| > 0
2. |vxy| ≤ P
3. uvixyiz  L for any i ≥ 0
{ ww : w in Σ* } is not context-free!
TURING MACHINES
read
write
0 → 0, R
q0
move
 → , R
q1
0 → 0, R
 → , R
qreject
q
2
q0 q1
0
0 → 0, R
 → , L
qa
0
UNBOUNDED TAPE
qaccept
Definition: A Turing Machine is a 7-tuple
T = (Q, Σ, Γ, , q0, qaccept, qreject), where:
Q is a finite set of states; q0 is the start state
Σ is the input alphabet, Γ is the tape alphabet
 : Q  Γ → Q  Γ  {L,R} is the transition function
qaccept  qreject are the accept and reject states
We can encode a TM as a string of 0s and 1s:
n states
start
state
reject
state
0n10m10k10s10t10r1…
m tape symbols
(first k are input
symbols)
accept
state
Terminology
Every TM recognizes a language. The language
of M is the set
L(M) = { w | M(w) eventually accepts }
A TM decides L if it accepts all strings in L
and rejects all strings not in L
A language is decidable if some TM decides it
A language is recursively enumerable if some TM
recognizes it.
THE CHURCH-TURING THESIS:
There is a program for L iff there is a TM for L
UNDECIDABILITY
A language is a set of strings. It is a mathematical
way of expressing a problem: given an input, is it
in the set L?
If a language is decidable, there is a computer
program (TM) that can always solve the problem
correctly – it terminates and has the right answer.
If a language is undecidable, then no matter how
smart you are, and no matter how long you give it,
you cannot program a computer to always solve
the problem correctly.
Let S be any set and P(S) be the power set of S
Theorem: There is no onto map from S to P(S)
Proof: Assume, for a contradiction, that
there is an onto map f : S  P(S)
Let Df = { d  S | d  f(d) }
If Df = f(y) then y  Df if and only if y  Df
Turing Machines
Strings of 0s and 1s
S
Languages over {0,1}
Sets of strings of
0s and 1s
UNDECIDABLE PROBLEMS
DTM = { (M) : M is a TM that does not accept (M) }
Theorem. DTM is undecidable.
Proof. Suppose machine N decides DTM. Then
N accepts <N> → <N>DTM → N does not accept <N>
ATM = { (M,w) : M is a TM that accepts on input w }
Theorem. If ATM is decidable, so is DTM.
Proof. If ¬ATM is decided by the program nAccept
we can decide if <M>  DTM by calling nAccept(M,M).
Here we have reduced deciding DTM to deciding
ATM. Since we know DTM is undecidable, ATM
must also be undecidable.
MAPPING REDUCTIONS
f : Σ*  Σ* is a computable function if there is a
TM that on input w, halts with f(w) on its tape
A
B
f
f
A m B if there is a computable f, such that
w  A  f(w)  B
f is called a reduction from A to B
RICE’S THEOREM
Let P be a set of Turing machines. If P satisfies
the following two properties:
For any TMs M1 and M2, where L(M1) = L(M2),
M1  P if and only if M2  P
There exist TMs MIN  P and MOUT  P
(i.e. P is a “nontrivial property of the r.e. languages.”)
Then P is undecidable
EXTREMELY POWERFUL
REGULAR
LANGUAGES
CONTEXT-FREE
LANGUAGES
NON-REGULAR
NON-CFL
100
100
100
200
200
200
300
300
300
JEOPARDY
A DFA for the language (ab + ba)*
A regular expression for the set of
strings accepted by the NFA:
1
0,1
A proof that the language { w  Σ*: w ≠ wR }
is not regular.
The language accepted by the following PDA:
0,ε → 0
ε,ε → $
1,0 → ε
1,0 → ε
ε, $ → ε
A CFG for the language { w # bn : |w| = n }.
Regular operations that the Context-Free
Languages are closed under.
DAILY
DOUBLE
A string in the language L = { 1n#1n : n ≥ 0}
that contradicts the regular pumping lemma.
A string in the language {an#an#an : n ≥ 0 } that
contradicts the context-free pumping lemma.
A proof that the language { an#bm : m = n2, n ≥ 0 }
is not context-free.
Do there exist non-regular languages that
satisfy the Regular Pumping Lemma?
DECIDABLE
LANGUAGES
UNDECIDABLE
LANGUAGES
NP-COMPLETE
REDUCTIONS
100
100
100
200
200
200
300
300
300
DOUBLE JEOPARDY
Show that if L1 and L2 are decidable,
then so is L1 – L2.
A proof that the set {0,1,2}* is countable.
A proof that ODD ≤m EVEN, where
Σ = {0,1}
ODD = { 1i : i is odd}
EVEN = { 1i : i is even}
A proof, using Rice’s Theorem, that
P3 = { (M) : M accepts all strings of length 3 }
is undecidable.
What operations are recursively
enumerable languages closed
under?
A proof that ATM ≤m AJAVA ,
where
AJAVA = { (J,w) : J is a Java program with
method “public boolean test(string w)” that
returns true on string w. }
What’s the definition of NP?
NP-Complete?
NP-hard?
Is Addition an NP-Complete problem?
Why or why not?
Show that 4-SAT is NP-Complete by
reducing it to 3-SAT.