Presentation is loading. Please wait.

Presentation is loading. Please wait.

NFA to DFA conversion and regular expressions

Similar presentations


Presentation on theme: "NFA to DFA conversion and regular expressions"— Presentation transcript:

1 NFA to DFA conversion and regular expressions
The Chinese University of Hong Kong Fall 2010 CSCI 3130: Automata theory and formal languages NFA to DFA conversion and regular expressions Andrej Bogdanov

2 NFAs are as powerful as DFAs
Obviously, an NFA can do everything a DFA can do How about the other way? YES If L is the language of some NFA, then it is also the language of some DFA.

3 Converting NFAs into DFAs
We will show a general way to convert every NFA into an equivalent DFA Step 1: Simplify NFA by eliminating e-transitions Step 2: Convert simplified NFA (without es) We do this first

4 NFA to DFA conversion intuition
0, 1 NFA: 1 q0 q1 q2 DFA: 1 q0 or q1 q0 or q2 q0 1 1

5 NFA to DFA conversion intuition
0, 1 NFA: 1 q0 q1 q2 DFA: 1 {q0, q1} {q0, q2} q0 1 1

6 General method NFA DFA states q0, q1, …, qn
Æ, {q0}, {q1}, {q0,q1}, …, {q0,…,qn} one for each subset of states in the NFA initial state q0 {q0} transitions d d’({qi1,…,qik}, a) = d(qi1, a) ∪…∪ d(qik, a) accepting states F Í Q F’ = {S: S contains some state in F}

7 Converting via the general method
0, 1 NFA: 1 q0 q1 q2 0, 1 1 DFA: {q0, q1} {q0, q2} {q0, q1, q2} {q1, q2} {q0} {q1} {q2} Æ

8 Converting via the general method
After eliminating the dead states and transitions, we end up with the same picture 1 1 {q0} {q0, q1} 1 0, 1 1 1 Æ {q1} {q0, q2} {q0, q1, q2} 0, 1 {q2} {q1, q2} 1

9 Why the method works At the end, the DFA accepts when it is in a state that contains some accepting state of NFA So the DFA accepts only when the NFA accepts too After reading n symbols, the DFA is in state {qi1,…,qik} if and only if the NFA is in one of the states qi1,…,qik

10 Converting NFAs into DFAs
We will show a general way to convert every NFA into an equivalent DFA Step 1: Simplify NFA by eliminating e-transitions Step 2: Convert simplified NFA (without es)

11 Eliminating e-transitions
, 1 eNFA: q0 q1 q2 Transition table of corresponding NFA: inputs 1 q0 {q0, q1, q2} {q1, q2} q1 {q0, q1, q2} Æ states q2 Æ Æ Accepting states of NFA: q0, q1, q2

12 Eliminating e-transitions
, 1 NFA: q0 q1 q2 0, 1 NFA without es: q0 q1 q2 0, 1

13 Eliminating e-transitions: General method
For every pair of states qi, qj and every symbol a Î S, replace every path like For every accept state qf, make accepting all states connected to it via es: q4 qi q5 a e qi q5 q2 q0 qj e a qi a qi qj a e q9 q7 q3 qf

14 Eliminating e-transitions
, 1 NFA: q0 q1 q2 , 1 NFA without es: q0 q1 q2 , 1

15 Regular expressions

16 String concatenation s = 011 t = 101 st = 011101 ts = 101011
ss = sst = s = a1…an st = a1…anb1…bm t = b1…bm

17 Operations on languages
The concatenation of languages L1 and L2 is The n-th power of Ln is The union of L1 and L2 is L1L2 = {st: s  L1, t  L2} Ln = {s1s2...sn: s1, s2, ..., sn  L} L1  L2 = {s: s  L1 or s  L2}

18 Example L1 = {0, 01} L2 = {e, 1, 11, 111, …} any number of 1s L1L2
= {0, 01, 011, 0111, …}  {01, 011, 0111, …} = {0, 01, 011, 0111, …} 0 followed by any number of 1s L12 = {00, 001, 010, 0101} L22 = L2 L2n = L2 (n ≥ 1) L1  L2 = {0, 01, e, 1, 11, 111, ...}

19 Operations on languages
The star of L are all strings made up of zero or more chunks from L: This is always infinite, and always contains e Example: L1 = {01, 0}, L2 = {e, 1, 11, 111, …}. What is L1* and L2*? L* = L0  L1  L2  …

20 Example L1 = {0, 01} L2 = {e, 1, 11, 111, …} any number of 1s L12
= {00, 001, 010, 0101} L22 = L2 L2n = L2 (n ≥ 1) L1*: is in L1* is not in L1* L2* = L20  L21  L22  … is not in L1* = {e}  L21  L22  … = L2 L1* are all strings that start with 0 and do not contain consecutive 1s L2* = L2

21 Constructing languages with operations
Let’s say S = {0, 1} We can construct languages by starting with simple ones, like {0}, {1} and combining them {0}({0}{1})* 0(0+1)* all strings that start with 0 ({0}{1}*)({1}{0}*) 01*+10* 0 followed by any number of 1s, or 1 followed by any number of 0s

22 Regular expressions A regular expression over S is an expression formed using the following rules: The symbol Æ is a regular expression The symbol e is a regular expression For every a  S, the symbol a is a regular expression If R and S are regular expressions, so are R+S, RS and R*. A language is regular if it is represented by a regular expression

23 Examples S = {0, 1} 01* = 0(1*) = {0, 01, 011, 0111, …}
0 followed by any number of 1s (01*)(01) = {001, 0101, 01101, , …} 0 followed by any number of 1s and then 01

24 Examples 0+1 = {0, 1} strings of length 1 (0+1)*
any string (0+1)*010 any string that ends in 010 (0+1)*01(0+1)* any string that contatins the pattern 01

25 Examples ((0+1)(0+1))*+((0+1)(0+1)(0+1))*
all strings whose length is even or a mutliple of 3 = strings of length 0, 2, 3, 4, 6, 8, 9, 10, 12, ... ((0+1)(0+1))* strings of even length (0+1)(0+1) strings of length 2 ((0+1)(0+1)(0+1))* strings of length a multiple of 3 (0+1)(0+1)(0+1) strings of length 3

26 Examples ((0+1)(0+1)+(0+1)(0+1)(0+1))*
strings that can be broken in blocks, where each block has length 2 or 3 (0+1)(0+1)+(0+1)(0+1)(0+1) strings of length 2 or 3 (0+1)(0+1) strings of length 2 (0+1)(0+1)(0+1) strings of length 3

27 Examples ((0+1)(0+1)+(0+1)(0+1)(0+1))*
strings that can be broken in blocks, where each block has length 2 or 3 e 1 10 011 00110 this includes all strings except those of length 1 ((0+1)(0+1)+(0+1)(0+1)(0+1))* = all strings except 0 and 1

28 Examples (1+01+001)*(+0+00) ends in at most two 0s
there can be at most two 0s between consecutive 1s there are never three consecutive 0s Guess: ( )*(+0+00) = {x: x does not contain 000} e 00

29 Examples Write a regular expression for all strings with two consecutive 0s. S = {0, 1} (anything) 00 (anything else) (0+1)*00(0+1)*

30 Examples Write a regular expression for all strings that do not contain two consecutive 0s. S = {0, 1} blocks ending in 1 last block (1 + 01) ... at most one 0 in every block ending in 1 (e + 0) ... and at most one 0 in the last block (1 + 01)*(e + 0)

31 Examples Write a regular expression for all strings with an even number of 0s. S = {0, 1} even number of zeros = (two zeros)* two zeros = 1*01*01* (1*01*01*)*

32 Main theorem for regular languages
A language is regular if and only if it is the language of some DFA NFA regular expression DFA regular languages

33 Road map regular expression NFA NFA without e DFA

34 Examples: regular expression → NFA
q0 q1 q0 q1 q2 q3 q4 q5 1 M2 q0’ q1’ M2

35 Regular expressions A regular expression over S is an expression formed using the following rules: The symbol Æ is a regular expression The symbol e is a regular expression For every a  S, the symbol a is a regular expression If R and S are regular expressions, so are R+S, RS and R*.

36 General method Æ e regular expr NFA q0 q0 a q0 q1 symbol a RS    q0
MR MS q1

37 General method continued
regular expr NFA MR R + S q0 q1 MS R* q0 MR q1

38 Road map regular expression NFA NFA without e DFA


Download ppt "NFA to DFA conversion and regular expressions"

Similar presentations


Ads by Google