170 likes | 303 Views
CSCI 2670 Introduction to Theory of Computing. September 8, 2005. Announcement. Remove problems 1.46c and 1.55(c,f,j) from your homework assignments New assignment 1.7(d,h), 1.16b, 1.21b (show the GNFA steps),1.19a Old text numbers 1.5(d,g), 1.12b, 1.16b, 1.14a. Agenda. This week
E N D
CSCI 2670Introduction to Theory of Computing September 8, 2005
Announcement • Remove problems 1.46c and 1.55(c,f,j) from your homework assignments • New assignment 1.7(d,h), 1.16b, 1.21b (show the GNFA steps),1.19a • Old text numbers 1.5(d,g), 1.12b, 1.16b, 1.14a
Agenda • This week • Proved every RE has a corresponding DFA • I.e., every RE describes a regular language • Showed how to convert GNFA to RE • Today • Prove every DFA has a corresponding RE • Example of conversion from GNFA to RE • Proving a language is not regular?
a12 a22 a11 q2 q1 a21 a13 a32 a23 a31 q3 a33 Accounting for loops a22a23a33*a32 a11a13a33*a31 a12a13a33*a32 q1’ q2’ a21a23a33*a31
Every DFA has a corresponding RE Proof: Let M be any DFA and let w be any string in Σ*. Convert M to G, a GNFA, then convert G to R, a regular expression, using methods shown in class. • Want to show wL(M) iff wL(R). • First show wL(M) iff wL(G). • Then show wL(G) iff wL(R).
wL(M) iff wL(G) • Assume wL(M) and w = w1w2…wn, where each wi Σ. Then there is a sequence of states q1, q2, …, qn+1 such that • q1 = q0 • qn+1F • qi+1 = (qi,wi) for each i = 1, 2, …, n • When w is read by G, the sequence of states qs, q1, q2, …, qn+1, qt would accept w • i.e., wL(G)
wL(M) iff wL(G) • Assume wL(G) and w = w1w2…wn, where each wiΣ. Then there is a sequence of states qs, q1, q2, …, qn+1, qt such that • q1 = q0 • qn+1F • qi+1 = (qi,wi) for each i = 1, 2, …, n • When w is read by M, the sequence of states q1, q2, …, qn+1 would accept w • i.e., wL(M)
wL(G) iff wL(R) • Prove by induction on number of states in G Base case: If G has 2 states then clearly wL(G) iff wL(R). Induction step: Assume wL(G) iff wL(R) for every G with k-1 states. Prove w L(G) iff wL(R) for every G with k states.
wL(R) if wL(G) Assume wL(G) and an accepting branch of the computation G enters on w is qs, q1, q2, …, qt. Let G’ be the GNFA that results from removing one of G’s states, qrip. There are two possibilities: Case 1: qrip is never entered in the computation of w. Then the same branch of computation exists in G’.
wL(R) if wL(G) Assume wL(G) and an accepting branch of the computation G enters on w is qs, q1, q2, …, qt. Let G’ be the GNFA that results from removing one of G’s states, qrip. There are two possibilities: Case 2: qrip is entered in the computation of w (bracketed byqi and qj). Then the new transition between qi and qj in G’ describes the computation that could be done on the computation of w through the branch qi, qrip, qj. So G’ accepts w. By induction wL(R).
wL(G) if wL(R) Assume wL(R). By induction hypothesis, wL(G’), the k-1 state GNFA resulting from removing one state from G. By construction, any computation in G’ can also be done in G – possibly going through an extra state qrip. Therefore, wL(G).
1 1 0 q1 q2 0 Example
qs qt Example 1 1 0 q1 q2 0 ε ε Step 1: Add two new states
qs qt Example 1 101*0 1 0 q1 q2 0 ε ε 1*0 Step 2: Remove q1
qs qt Example 101*0 q2 ε 1*0 1*0(101*0)* Step 3: Remove q2
1 1 0 q1 q2 0 Example So this DFA Is equivalent to the regular expression 1*0(101*0)*