cs 310: lecture 8zeus.cs.pacificu.edu/lanec/cs310f18/lectures/08lecture.pdf · 2018. 9. 14. · 1...

15
1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical CS 1 NFA-DFA equivalence Th 1.39: Every NFA has an equivalent DFA Corollary: A language is regular if and only if there exists an NFA that recognizes it. Proof Idea: If the language is regular, there exists a DFA that recognizes it. Each DFA is an NFA. Conversely, if there exists an NFA that recognizes the language, convert the NFA to a DFA. Fall 2018 CS310: Theoretical CS 2

Upload: others

Post on 04-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

1

CS 310: LECTURE 8Section: 1.3

Subject: Regular Expressions

Fall 2018 CS310: Theoretical CS 1

NFA-DFA equivalence

• Th 1.39: Every NFA has an equivalent DFA

• Corollary: A language is regular if and only if there exists

an NFA that recognizes it.

• Proof Idea: If the language is regular, there exists a DFA

that recognizes it. Each DFA is an NFA. Conversely, if

there exists an NFA that recognizes the language, convert

the NFA to a DFA.

Fall 2018 CS310: Theoretical CS 2

Page 2: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

2

Regular Expressions

• Use regular operations (Union, Concat, Kleene Star) and

languages to create a regular expression R whose value

is a language L(R)

–not unique in general

–order of operations: *, concat, ⋃

Ex: R = 0*10*, L(R)={w | w has exactly one 1}

Fall 2018 CS310: Theoretical CS 3

An expression R is Regular if:

• R = a, a ∈ ∑

• R = ε

• R = Ø

• R = R1 ⋃ R2 , R1 , R2 are regular

• R = R1R2 , R1 , R2 are regular

• R = R1* , R1 is regular

• Theorem: A language is regular if and only if some regular

expression describes it.

–Can be represented by an NFA?

Fall 2018 CS310: Theoretical CS 4

Page 3: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

3

Proof

• Lemma (1.55): If L is described by a regular expression R,

then there exists an NFA that accepts it

• Proof: For each type of regular expression, develop an

NFA that accepts it.

• R = a, a ∈ ∑

• R = ε

• R = Ø

• R = R1 ⋃ R2 , R1 , R2 are regular

• R = R1R2 , R1 , R2 are regular

• R = R1* , R1 is regular

Fall 2018 CS310: Theoretical CS 5

Proof

• R = a, a ∈ ∑

• R = ε

• R = Ø

Fall 2018 CS310: Theoretical CS 6

Page 4: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

4

Proof

• R = R1 ⋃ R2 , R1 , R2 are regular

• R = R1R2 , R1 , R2 are regular

• R = R1* , R1 is regular

Fall 2018 CS310: Theoretical CS 7

Proof

• Lemma: If a language is regular, it is described by a

regular expression.

• Proof Idea: If a language is regular, there exists a DFA

that accepts it. We need to convert a DFA to a regular

expression.

• How?:

–Convert DFA to GNFA

–Convert GNFA to Regular Expression

–GNFA?!

Fall 2018 CS310: Theoretical CS 8

Page 5: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

5

Generalized NFA (GNFA)

• NFA where the transitions may have regular expressions

as labels rather than just ∑ or ε

– Reads blocks of symbols from the input

Why are we doing this? To build up the regular expression

slowly from the DFA!

Fall 2018 CS310: Theoretical CS 9

ab*

a*

(aa)*

aa

ab ⋃ ba

b

a

b

εqstart

qaccept

GNFA (Our special case)

• No incoming transitions to start state (if violated, create new start state with 𝜖 transition to old start state)

• Single accept state that has only transitions coming into it i.e. no outgoing transitions (if violated, create new accept state with 𝜖 transitions from all old accept states to new accept state)

• The accept state must be distinct from initial (if not, proceed as above)

Fall 2018 CS310: Theoretical CS 10

Page 6: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

6

DFA to GNFA (Algorithmically)

• Transitions from initial state to all other states (use ∅ to indicate, means you never take the transition)

• Except for initial and accepting states, all states connected to all other states (including itself) via a transition (again use ∅ to indicate if doesn’t already exist)

In practice, we don’t draw these transitions in our state diagrams.

Fall 2018 CS310: Theoretical CS 11

DFA to RE: General Process

Fall 2018 CS310: Theoretical CS 12

3 State

DFA

5 State

GNFA

4 State

GNFA

4 State

GNFA

3 State

GNFA

2 State

GNFA

Regular

Expression

We can reduce

the GNFA by one

state at a time!

2 states

How many transitions?

What do the labels on

the transitions look like?

Page 7: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

7

GNFA to k-1 States: General Strategy

• Pick any state in the machine that is not the start or

accept state and remove it

• Fix up the transitions so the language remains the same

Fall 2018 CS310: Theoretical CS 13

R4

R2

R1R3

Rip this out!

(R1(R2)*R3) ⋃ R4

This change needs to be

made for every pair of

states connected through

the removed state

GNFA to Regular Expression

• Each GNFA has at least 2 states (start and accept)

• To convert GNFA to Regular Expression:

–GNFA has k states, k >= 2

• if k > 2 then

• Produce a GNFA with k-1 states

• Repeat

Fall 2018 CS310: Theoretical CS 14

qstartqaccept

1 (1*0*)*

Page 8: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

8

Example 1

Fall 2018 CS310: Theoretical CS 15

Example 2

Fall 2018 CS310: Theoretical CS 16

Page 9: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

9

Example 3

Fall 2018 CS310: Theoretical CS 17

Example 4

Fall 2018 CS310: Theoretical CS 18

Page 10: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

10

Example 5

Fall 2018 CS310: Theoretical CS 19

Example 6

Fall 2018 CS310: Theoretical CS 20

Page 11: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

11

Exercise 1

• {w | (w starts with 0 and has odd length) or

(w starts with 1 and has even length) }

• NFA?

• How do we write this as a RE?

Fall 2018 CS310: Theoretical CS 21

Exercise 2

• NFA for aa* ⋃ aba*b*?

Fall 2018 CS310: Theoretical CS 22

Page 12: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

12

Exercise 3

• NFA for {w | every odd position of w is 1 }?

• How do we write the Regular Expression?

Fall 2018 CS310: Theoretical CS 23

Exercise 4

• DFA for {w | w does not contain 110 }?

• Note: Complements work with DFAs, not with NFAs.

• How do we write the Regular Expression?

Fall 2018 CS310: Theoretical CS 24

Page 13: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

13

Exercise 5

• NFA for {w| w contains even # 0s or exactly two 1s}?

• How do we write the Regular Expression?

Fall 2018 CS310: Theoretical CS 25

Exercise 6: NFA to Regular Expression

Fall 2018 CS310: Theoretical CS 26

Page 14: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

14

Exercise 7:

Fall 2018 CS310: Theoretical CS 27

http://www.jflap.org/tutorial/fa/fa2re/index.html

Exercise 8

Fall 2018 CS310: Theoretical CS 28

Page 15: CS 310: LECTURE 8zeus.cs.pacificu.edu/lanec/cs310f18/Lectures/08Lecture.pdf · 2018. 9. 14. · 1 CS 310: LECTURE 8 Section: 1.3 Subject: Regular Expressions Fall 2018 CS310: Theoretical

15

Exercise 9

Fall 2018 CS310: Theoretical CS 29

Exercise 10

Fall 2018 CS310: Theoretical CS 30