390 likes | 558 Views
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.
E N D
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 Σ
q1 1 0 0,1 1 M q0 q2 0 0 1 q3 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 F = {q1, q2} Q accept states * NFAs have “choices” -- : Q ΣP (Q), and accept on input w if there is a path from q0 to a qain F.
NFA DFA 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 xyyzB. 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 qa2 F. Following transition “a,bc” reads “a” from the input, pops “b” off the stack, and pushes “c” onto it.
CONTEXT-FREE GRAMMARS production rules start variable A → 0A1 A → B B → # variables 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!
qreject q0 q1 qa TURING MACHINES read write move → , R 0 → 0, R q0 q1 qaccept 0→ 0, R → , R 0→ 0, R q2 → , L 0 0 UNBOUNDED TAPE
Definition: A Turing Machine is a 7-tuple T = (Q, Σ, Γ, , q0, qaccept, qreject), where: Q is a finite set of states; q0is the start state Σ is the input alphabet, Γ is the tape alphabet : Q Γ→ Q Γ {L,R}is the transition function qaccept qrejectare the accept and reject states We can encode a TM as a string of 0s and 1s:
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 Languages over {0,1} Turing Machines Strings of 0s and 1s Sets of strings of 0s and 1s S P(S)
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 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 “nontrivialproperty of the r.e. languages.”) Then P is undecidable EXTREMELY POWERFUL
NON-REGULAR NON-CFL REGULAR LANGUAGES CONTEXT-FREE LANGUAGES 100 100 100 200 200 200 300 300 300 JEOPARDY
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→ε ε, $ → ε
DAILY DOUBLE Regular operations that the Context-Free Languages are closed under.
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 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.