Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI 2670 Introduction to Theory of Computing September 11, 2007.

Similar presentations


Presentation on theme: "CSCI 2670 Introduction to Theory of Computing September 11, 2007."— Presentation transcript:

1 CSCI 2670 Introduction to Theory of Computing September 11, 2007

2 Agenda Last class –Discussed non-determinism –Equivalence of DFA’s and NFA’s Today –Further exploration of equivalence of DFA’s and NFA’s Tomorrow –Closure of regular languages under regular operators –Another method for describing regular languages

3 Example 01 {q1}{q1}{q2,q3}{q2,q3}  {q2}{q2}  {q1,q3}{q1,q3} {q3}{q3}  {q1,q2}{q1,q2}{q2,q3}{q2,q3}{q1,q3}{q1,q3} {q1,q3}{q1,q3}{q2,q3}{q2,q3}  {q2,q3}{q2,q3}  {q1,q3}{q1,q3} {q1,q2,q3}{q1,q2,q3}{q2,q3}{q2,q3}{q1,q3}{q1,q3}  0 0 1 q1q1 q2q2 q3q3 1 0,1 {q1}{q1}  1 {q 2,q 3 } 0 0 0 1 1

4 What about ε jumps? For each R  P (Q), define function E(R) E(R) = {q | q can be reach by 0 or more ε jumps from some r  R} Redefine  ’(R,a) to include E(R)  ’(R,a) = {q | q  E(  (r,a)) for some r  R} Are we done? No! What if there are  jumps from q 0 ? q 0 ’ = E({q 0 })

5 Closure of NFA’s under regular operations Recall the following are the regular operators –Union –Concatenation –Kleene star

6 Union is a regular operation Theorem: The class of regular languages is closed under the union operation Proof approach: Assume A 1 and A 2 are both regular languages with A 1 =L(M 1 ) and A 2 =L(M 2 ) and create an NFA M such that L(M) = A 1  A 2 Method: Proof by construction

7 M Construct M from M 1 and M 2 M1M1 M2M2 ε ε

8 Concatenation is a regular operation Theorem: The class of regular languages is closed under the concatenation operation Proof approach: Assume A 1 and A 2 are both regular languages with A 1 =L(M 1 ) and A 2 =L(M 2 ) and create an NFA M such that L(M) = A 1  A 2 Method: Proof by construction

9 M Construct M from M 1 and M 2 M1M1 M2M2 εε

10 Kleene star is a regular operation Theorem: The class of regular languages is closed under the Kleene operation Proof approach: Assume A 1 is a regular language with A 1 =L(M 1 ) and create an NFA M such that L(M) = A 1 * Method: Proof by construction

11 M Construct M from M 1 M1M1 ε ε ε

12 Regular expressions (RE’s) So far we have had to describe languages either with finite automata or with words –Potentially clumsy or imprecise Today we learn precise expression to describe regular languages –Example: All strings with at least one 1 becomes  *  {1}  *, or more simply  * 1  *

13 Where have you seen RE’s? Grep Awk Perl Search expressions within emacs or vi

14 RE inductive definition R is a regular expression if R is 1.a for some a   2. ε 3.  4.R 1  R 2 where R 1 and R 2 are both regular expressions 5.R 1  R 2 where R 1 and R 2 are both regular expressions 6.(R 1 * ) where R 1 is a regular expression Abuse of notation. These should be sets!

15 Examples 0 * 10 * 10 * –{w | w contains exactly two 1’s}  * 11  * –{w | w contains two consecutive 1’s}  * 1(0  ε)1  * –{w | w contains two 1’s separated by at most one 0} (0  ε)(1  ε) –{0,1,01,ε}

16 RE’s and regular languages Theorem: A language is regular if and only if some regular expression describes it. –i.e., every regular expression has a corresponding DFA and vice versa

17 RE’s and regular languages Lemma: If a language is described by a regular expression, then it is regular. –find an NFA corresponding to any regular expression –use inductive definition of RE’s

18 1. R=a for some a  N = {{q 1,q 2 }, , ,q 1,{q 2 }} where  (q 1,a)={q 2 } and  (r,x)=  whenever r=q 2 or x≠a a q1q1 q2q2

19 2. R= ε N = {{q 1 }, , ,q 1,{q 1 }} where  (q 1,x)=  for all x q1q1

20 3. R=  N = {{q 1 }, , ,q 1,  } where  (q 1,x)=  for all x q1q1

21 Remaining constructions R = R 1  R 2 R = R 1  R 2 R = R 1 * These were all shown to be regular operators –We know we can construct NFA’s for R provided they exist for R 1 and R 2

22 Example R =  1 –R = (0  1)1 0 R 1 = 0 R 3 = 0  1 0 1 ε ε 1 R = Σ1 0 1 ε ε ε ε 1 R 2 = 1

23 Example2 R = 1(0  ε)  * 1 R 1 = 1 R 2 = 0  ε 0 ε ε ε 0,1 R 3 =  * ε R = 1(0  ε )  * 1 0 ε ε ε ε 0,1 ε ε ε

24 Equivalence of RE’s and DFA’s We have seen that every RE has a corresponding NFA –Therefore, every RE has a corresponding DFA –I.e, every RE describes a regular language We need to show that every regular language can be described by a RE Begin by converting all DFA’s into GNFA’s –Generalized Non-deterministic Finite Automata

25 GNFA’s A GNFA is an NFA with the following properties: 1.The start state has transition arrows going to every other state, but no arrows coming in from any other state 2.There is exactly one accept state and there is an arrow from every other state to this state, but no arrows to any other state from the accept state 3.The start state is not the accept state

26 GNFA’s (continued) 4.Except for the start and accept states, one arrow goes from every state to every other state and also from each state to itself 5.Instead of being labeled with symbols from the alphabet, transitions are labeled with regular expressions

27 Example GNFA  0101 0  1 10 0 

28 Equivalence of DFA’s and RE’s First show every DFA can be converted into a GNFA that accepts the same language Then show that any GNFA has a corresponding RE that accepts the same language

29 Converting a DFA into a GNFA Add two new states –New start state with an ε jump to the original DFA’s start state –New accept state with an ε jump from each of the original DFA’s accept states This new state will be the only accept state All transition labels with multiple labels are relabeled with the union of the previous labels All pairs of states without transitions get a transition labeled 

30 Converting a DFA to a GNFA Add two new states ε ε qsqs qtqt 1 1 00 q1q1 q2q2 q3q3 q4q4 0,1

31 Converting a DFA to a GNFA ε ε qsqs qtqt 1 1 0 0 q1q1 q2q2 q3q3 q4q4 0,1 All transition labels with multiple labels are relabeled with the union of the previous labels 0101 0101

32 Converting a DFA to a GNFA ε ε qsqs qtqt 1 1 0 0 q1q1 q2q2 q3q3 q4q4 All pairs of states without transitions get a transition labeled  0101 0101


Download ppt "CSCI 2670 Introduction to Theory of Computing September 11, 2007."

Similar presentations


Ads by Google