Loading...

PPT – CSCI 2670 Introduction to Theory of Computing PowerPoint presentation | free to download - id: 210856-ZDc1Z

The Adobe Flash plugin is needed to view this content

CSCI 2670 Introduction to Theory of Computing

- September 11, 2007

Agenda

- Last class
- Discussed non-determinism
- Equivalence of DFAs and NFAs
- Today
- Further exploration of equivalence of DFAs and

NFAs - Tomorrow
- Closure of regular languages under regular

operators - Another method for describing regular languages

Example

0 1

q1 q2,q3 ?

q2 ? q1,q3

q3 ? ?

q1,q2 q2,q3 q1,q3

q1,q3 q2,q3 ?

q2,q3 ? q1,q3

q1,q2,q3 q2,q3 q1,q3

? ? ?

What about e jumps?

- For each R ? P(Q), define function E(R)
- E(R) q q can be reach by 0 or more e 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 q0?

q0 E(q0)

Closure of NFAs under regular operations

- Recall the following are the regular operators
- Union
- Concatenation
- Kleene star

Union is a regular operation

Theorem The class of regular languages is

closed under the union operation Proof approach

Assume A1 and A2 are both regular languages with

A1L(M1) and A2L(M2) and create an NFA M such

that L(M) A1?A2 Method Proof by construction

Construct M from M1 and M2

e

e

Concatenation is a regular operation

Theorem The class of regular languages is

closed under the concatenation operation Proof

approach Assume A1 and A2 are both regular

languages with A1L(M1) and A2L(M2) and create

an NFA M such that L(M) A1?A2 Method Proof by

construction

Construct M from M1 and M2

e

e

Kleene star is a regular operation

Theorem The class of regular languages is

closed under the Kleene operation Proof approach

Assume A1 is a regular language with A1L(M1)

and create an NFA M such that L(M) A1 Method

Proof by construction

Construct M from M1

Regular expressions (REs)

- 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?

Where have you seen REs?

- Grep
- Awk
- Perl
- Search expressions within emacs or vi

RE inductive definition

- R is a regular expression if R is
- a for some a ? ?
- e
- ?
- R1 ? R2 where R1 and R2 are both regular

expressions - R1 ? R2 where R1 and R2 are both regular

expressions - (R1) where R1 is a regular expression

Examples

- 01010
- w w contains exactly two 1s
- ?11?
- w w contains two consecutive 1s
- ?1(0?e)1?
- w w contains two 1s separated by at most one

0 - (0?e)(1?e)
- 0,1,01,e

REs 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

REs 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 REs

1. Ra for some a??

- N q1,q2,?,?,q1,q2 where ?(q1,a)q2 and

?(r,x)? whenever rq2 or x?a

2. Re

- N q1,?,?,q1,q1 where ?(q1,x)? for all x

3. R?

- N q1,?,?,q1,? where ?(q1,x)? for all x

Remaining constructions

- R R1?R2
- R R1?R2
- R R1
- These were all shown to be regular operators
- We know we can construct NFAs for R provided

they exist for R1 and R2

Example

- R ?1
- R (0?1)1

Example2

- R 1(0?e)?

Equivalence of REs and DFAs

- 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 DFAs into GNFAs
- Generalized Non-deterministic Finite Automata

GNFAs

- A GNFA is an NFA with the following properties
- The start state has transition arrows going to

every other state, but no arrows coming in from

any other state - 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 - The start state is not the accept state

GNFAs (continued)

- Except for the start and accept states, one arrow

goes from every state to every other state and

also from each state to itself - Instead of being labeled with symbols from the

alphabet, transitions are labeled with regular

expressions

Example GNFA

Equivalence of DFAs and REs

- 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

Converting a DFA into a GNFA

- Add two new states
- New start state with an e jump to the original

DFAs start state - New accept state with an e jump from each of the

original DFAs 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 ?

Converting a DFA to a GNFA

- Add two new states

Converting a DFA to a GNFA

0

q2

1

q1

1

0

q3

q4

0,1

0?1

0,1

0?1

- All transition labels with multiple labels are

relabeled with the union of the previous labels

Converting a DFA to a GNFA

0

q2

1

q1

1

0

q3

q4

0?1

0?1

- All pairs of states without transitions get a

transition labeled ?