formal languages nfas accept the regular languages

75
Fall 2004 Costas Busch - RPI Formal Languages NFAs Accept the Regular Languages

Upload: rowena

Post on 18-Jan-2016

52 views

Category:

Documents


4 download

DESCRIPTION

Formal Languages NFAs Accept the Regular Languages. Equivalence of Machines. Definition: Machine is equivalent to machine if. Example of equivalent machines. NFA. FA. We will prove:. Languages accepted by NFAs. Regular Languages. Languages accepted by FAs. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Formal Languages NFAs Accept the Regular Languages

Fall 2004 Costas Busch - RPI

Formal Languages

NFAs Accept the Regular Languages

Page 2: Formal Languages NFAs Accept the Regular Languages

2

Equivalence of Machines

Definition:

Machine is equivalent to machine

if

1M 2M

21 MLML

Page 3: Formal Languages NFAs Accept the Regular Languages

3

Example of equivalent machines

0q 1q

0

1

0q 1q 2q

0

11

0

1,0

NFA

FA

*}10{1 ML

*}10{2 ML

1M

2M

Page 4: Formal Languages NFAs Accept the Regular Languages

4

We will prove:

Languages acceptedby NFAs

RegularLanguages

NFAs and FAs have the same computation power

Languages acceptedby FAs

Page 5: Formal Languages NFAs Accept the Regular Languages

5

Languages acceptedby NFAs

RegularLanguages

Languages acceptedby NFAs

RegularLanguages

We will show:

Page 6: Formal Languages NFAs Accept the Regular Languages

6

Languages acceptedby NFAs

RegularLanguages

Proof-Step 1

Proof?

Page 7: Formal Languages NFAs Accept the Regular Languages

7

Languages acceptedby NFAs

RegularLanguages

Proof-Step 1

Proof: Every FA is trivially an NFA

Any language accepted by a FAis also accepted by an NFA

L

Page 8: Formal Languages NFAs Accept the Regular Languages

8

Languages acceptedby NFAs

RegularLanguages

Proof-Step 2

Proof: Any NFA can be converted to anequivalent FA

Any language accepted by an NFAis also accepted by a FA

L

Page 9: Formal Languages NFAs Accept the Regular Languages

9

Convert NFA to FA

a

b

a

0q 1q 2q

NFA

FA

0q

M

M

Page 10: Formal Languages NFAs Accept the Regular Languages

10

Convert NFA to FA

a

b

a

0q 1q 2q

NFA

FA

0q 21,qqa

M

M

Page 11: Formal Languages NFAs Accept the Regular Languages

11

Convert NFA to FA

a

b

a

0q 1q 2q

NFA

FA

0q 21,qqa

b

M

M

Page 12: Formal Languages NFAs Accept the Regular Languages

12

Convert NFA to FA

a

b

a

0q 1q 2q

NFA

FA

0q 21,qqa

b

a

M

M

Page 13: Formal Languages NFAs Accept the Regular Languages

13

Convert NFA to FA

a

b

a

0q 1q 2q

NFA

FA

0q 21,qqa

b

ab

M

M

Page 14: Formal Languages NFAs Accept the Regular Languages

14

Convert NFA to FA

a

b

a

0q 1q 2q

NFA

FA

0q 21,qqa

b

ab

ba,

M

M

Page 15: Formal Languages NFAs Accept the Regular Languages

15

Convert NFA to FA

a

b

a

0q 1q 2q

NFA

FA

0q 21,qqa

b

ab

ba,

M

M

)(MLML

Page 16: Formal Languages NFAs Accept the Regular Languages

16

NFA to FA Conversion

We are given an NFA

We want to convert it to an equivalent FA

With

M

M

)(MLML

Page 17: Formal Languages NFAs Accept the Regular Languages

17

What we need to construct Finite Automaton (FA)

FqQM ,,,, 0

Q

0q

F

: set of states

: input alphabet

: transition function

: initial state

: set of accepting states

Page 18: Formal Languages NFAs Accept the Regular Languages

18

If the NFA has states

the FA has states in the power set

,...,, 210 qqq

,....,,,,,,, 7432110 qqqqqqq

Page 19: Formal Languages NFAs Accept the Regular Languages

19

Procedure NFA to FA

1. Initial state of NFA:

Initial state of FA:

0q

0q

Page 20: Formal Languages NFAs Accept the Regular Languages

20

Example

a

b

a

0q 1q 2q

NFA

FA

0q

M

M

Page 21: Formal Languages NFAs Accept the Regular Languages

21

Procedure NFA to FA

2. For every FA’s state

Compute in the NFA

Add transition to FA

},...,,{ mji qqq

...

,,*

,,*

aq

aq

j

i

},...,,{ mji qqq

},...,,{},,...,,{ mjimji qqqaqqq

Page 22: Formal Languages NFAs Accept the Regular Languages

22

Example

a

b

a

0q 1q 2q

NFA

0q 21,qqa

FA

},{),(* 210 qqaq

210 ,, qqaq

M

M

Page 23: Formal Languages NFAs Accept the Regular Languages

23

Procedure NFA to FA

Repeat Step 2 for all letters in alphabet,

untilno more transitions can be added.

Page 24: Formal Languages NFAs Accept the Regular Languages

24

Example

a

b

a

0q 1q 2q

NFA

FA

0q 21,qqa

b

ab

ba,

M

M

Done?

Page 25: Formal Languages NFAs Accept the Regular Languages

25

Procedure NFA to FA

3. For any FA state

If is accepting state in NFA

Then, is accepting state in FA

},...,,{ mji qqq

jq

},...,,{ mji qqq

Page 26: Formal Languages NFAs Accept the Regular Languages

26

Example

a

b

a

0q 1q 2q

NFA

FA

0q 21,qqa

b

ab

ba,

Fq 1

Fqq 21,

M

M

Page 27: Formal Languages NFAs Accept the Regular Languages

27

Theorem Take NFA M

Apply procedure to obtain FA M

Then and are equivalent :M M

MLML

Page 28: Formal Languages NFAs Accept the Regular Languages

28

Proof

MLML

MLML MLML AND

Page 29: Formal Languages NFAs Accept the Regular Languages

29

MLML First we show:

)(MLwTake arbitrary:

We will prove: )(MLw

Page 30: Formal Languages NFAs Accept the Regular Languages

30

)(MLw

w

kw 21

0q fq:M

:M 0q fq1 2 k

Page 31: Formal Languages NFAs Accept the Regular Languages

31

i

i

denotes

iq jq

iq jq

Page 32: Formal Languages NFAs Accept the Regular Languages

32

0q fq

kw 211 2 k

:M

}{ 0q

1 2 k:M

},{ fq

)(MLw

)(MLw

We will show that if

then

Page 33: Formal Languages NFAs Accept the Regular Languages

33

0q mq

naaav 211a 2a na:M

}{ 0q

1a 2a na:M },{ iq

iq jq lq

},{ jq },{ lq },{ mq

More generally, we will show that if in :M

(arbitrary string)

then

Page 34: Formal Languages NFAs Accept the Regular Languages

34

0q 1a:M

}{ 0q

1a:M },{ iq

iq

Proof by induction on

Induction Basis: 1av

|| v

Is true by construction of :M

Page 35: Formal Languages NFAs Accept the Regular Languages

35

Induction hypothesis: kv ||1

0q dq1a 2a ka:M iq jq cq

}{ 0q

1a 2a ka:M },{ iq },{ jq },{ cq },{ dq

kaaav 21

Page 36: Formal Languages NFAs Accept the Regular Languages

36

Induction Step: 1|| kv

0q dq1a 2a ka:M iq jq cq

}{ 0q

1a 2a ka:M },{ iq },{ jq },{ cq },{ dq

1121

kk

v

k avaaaav

v

v

Page 37: Formal Languages NFAs Accept the Regular Languages

37

Induction Step: 1|| kv

0q dq1a 2a ka:M iq jq cq

}{ 0q

1a 2a ka:M },{ iq },{ jq },{ cq },{ dq

1121

kk

v

k avaaaav

v

v

eq1ka

1ka

},{ eq

Page 38: Formal Languages NFAs Accept the Regular Languages

38

0q fq

kw 211 2 k

:M

}{ 0q

1 2 k:M

},{ fq

)(MLw

)(MLw

Therefore if

then

Page 39: Formal Languages NFAs Accept the Regular Languages

39

We have shown: MLML

We also need to show: MLML

(proof is similar)

Page 40: Formal Languages NFAs Accept the Regular Languages

40

Induction Step: 1|| kv

0q dq1a 2a ka:M iq jq cq

}{ 0q

1a 2a ka:M },{ iq },{ jq },{ cq },{ dq

1121

kk

v

k avaaaav

v

v

eq1ka

1ka

},{ eq

All cases covered?

Page 41: Formal Languages NFAs Accept the Regular Languages

41

Single Accepting State for NFAs

Page 42: Formal Languages NFAs Accept the Regular Languages

42

Any NFA can be converted

to an equivalent NFA

with a single accepting state

Page 43: Formal Languages NFAs Accept the Regular Languages

43

a

b

b

aNFA

Equivalent NFAwith single accepting state?

Example

Page 44: Formal Languages NFAs Accept the Regular Languages

44

a

b

b

aNFA

Equivalent NFA

a

b

b

a

Example

Page 45: Formal Languages NFAs Accept the Regular Languages

45

NFAIn General

Equivalent NFA

Singleacceptingstate

Page 46: Formal Languages NFAs Accept the Regular Languages

46

Extreme Case

NFA without accepting state

Add an accepting statewithout transitions

Page 47: Formal Languages NFAs Accept the Regular Languages

47

Properties of Regular Languages

Page 48: Formal Languages NFAs Accept the Regular Languages

48

1L 2L

21LLConcatenation:

*1LStar:

21 LL Union:

Are regularLanguages

For regular languages and we will prove that:

1L

21 LL

Complement:

Intersection:

RL1Reversal:

Page 49: Formal Languages NFAs Accept the Regular Languages

49

We say: Regular languages are closed under

21LLConcatenation:

*1LStar:

21 LL Union:

1L

21 LL

Complement:

Intersection:

RL1Reversal:

Page 50: Formal Languages NFAs Accept the Regular Languages

50

1LRegular language

11 LML

1M

Single accepting state

NFA 2M

2L

Single accepting state

22 LML

Regular language

NFA

Page 51: Formal Languages NFAs Accept the Regular Languages

51

Example

}{1 baL na

b

1M

baL 2ab

2M

0n

Page 52: Formal Languages NFAs Accept the Regular Languages

52

UnionNFA for

1M

2M

21 LL

Page 53: Formal Languages NFAs Accept the Regular Languages

53

Example

a

b

ab

}{1 baL n

}{2 baL

}{}{21 babaLL n NFA for

Page 54: Formal Languages NFAs Accept the Regular Languages

54

Concatenation

NFA for 21LL

1M 2M

Page 55: Formal Languages NFAs Accept the Regular Languages

55

Example NFA for

a

b ab

}{1 baL n}{2 baL

}{}}{{21 bbaababaLL nn

Page 56: Formal Languages NFAs Accept the Regular Languages

56

How do we construct automata for theremaining operations?

21LLConcatenation:

*1LStar:

21 LL Union:

1L

21 LL

Complement:

Intersection:

RL1Reversal:

Page 57: Formal Languages NFAs Accept the Regular Languages

57

Star OperationNFA for *1L

1M

*1L

Page 58: Formal Languages NFAs Accept the Regular Languages

58

Example

NFA for *}{*1 baL n

a

b

}{1 baL n

1

21

Lw

wwww

i

k

Page 59: Formal Languages NFAs Accept the Regular Languages

59

Reverse

RL1

1M

NFA for

1M

1. Reverse all transitions

2. Make initial state accepting state and vice versa

1L

Page 60: Formal Languages NFAs Accept the Regular Languages

60

Example

}{1 baL na

b

1M

}{1nR baL

a

b

1M

Page 61: Formal Languages NFAs Accept the Regular Languages

61

Complement

1. Take the FA that accepts 1L

1M1L

1M1L

2. Make final states non-final, and vice-versa

Why not NFA?

Page 62: Formal Languages NFAs Accept the Regular Languages

62

Example

}{1 baL n

a

b

1M

ba,

ba,

}{*},{1 babaL n a

b

1M

ba,

ba,

Page 63: Formal Languages NFAs Accept the Regular Languages

63

Intersection

1L regular

2L regular

We show 21 LL

regular

Page 64: Formal Languages NFAs Accept the Regular Languages

64

DeMorgan’s Law: 2121 LLLL

21 , LL regular

21 , LL regular

21 LL regular

21 LL regular

21 LL regular

Page 65: Formal Languages NFAs Accept the Regular Languages

65

Example

}{1 baL n

},{2 baabL

regular

regular

}{21 abLL

regular

Page 66: Formal Languages NFAs Accept the Regular Languages

66

1Lfor for 2LFA

1M

FA

2M

Construct a new FA that accepts

Machine Machine

M 21 LL

Msimulates in parallel and 1M 2M

Another Proof for Intersection Closure

Page 67: Formal Languages NFAs Accept the Regular Languages

67

States in M

ji pq ,

1M 2MState in State in

Page 68: Formal Languages NFAs Accept the Regular Languages

68

1M 2M

1q 2qa

transition

1p 2pa

transition

FA FA

11, pq a

transition

MFA

22 , pq

Page 69: Formal Languages NFAs Accept the Regular Languages

69

0q

initial state

0p

initial state

Initial state

00 , pq

1M 2MFA FA

MFA

Page 70: Formal Languages NFAs Accept the Regular Languages

70

iq

accept state

jp

accept states

accept states

ji pq ,

kp

ki pq ,

1M 2MFA FA

MFA

Both constituents must be accepting states

Page 71: Formal Languages NFAs Accept the Regular Languages

71

M simulates in parallel and 1M 2M

M accepts string w if and only if

accepts string and w1M

accepts string w2M

)()()( 21 MLMLML

Page 72: Formal Languages NFAs Accept the Regular Languages

72

Example:

}{1 baL n

a

b

1M

0n

}{2mabL

b

b

2M

0q 1q 0p 1p

0m

2q 2pa

a

ba, ba,

ba,

Page 73: Formal Languages NFAs Accept the Regular Languages

73

Construct machine for intersection

Page 74: Formal Languages NFAs Accept the Regular Languages

74

00, pq

Automaton for intersection

}{}{}{ ababbaL nn

10, pqa

21, pq

b

ab 11, pq

20, pq

a

12, pq

22, pq

b

ba,

a

b

ba,

b

a

Page 75: Formal Languages NFAs Accept the Regular Languages

75

Note how easy it was to prove closure under union, star,

concatenation with NFAs. Would be much harder with DFAs.