cdt314 faber formal languages, automata and models of computation lecture 10

94
1 CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 10 Mälardalen University 2011

Upload: michelle-briggs

Post on 31-Dec-2015

31 views

Category:

Documents


0 download

DESCRIPTION

CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 10 Mälardalen University 2011. Content The Pumping Lemma for CFL Applications of the Pumping Lemma for CFL Midterm Exam 2: Context-Free Languages. The Pumping Lemma for CFL’s. - PowerPoint PPT Presentation

TRANSCRIPT

1

CDT314

FABER

Formal Languages, Automata and Models of Computation

Lecture 10

Mälardalen University

2011

2

Content

The Pumping Lemma for CFLApplications of the Pumping Lemma for CFL

Midterm Exam 2: Context-Free Languages

3

The Pumping Lemma for CFL’s

4

Comparison with the Pumping Lemma for Regular Languages

5

What is the difference between Context Free Languages and Regular Languages?

In regular languages, a single substring “pumps”

...... ......q

6

What is the difference between Context Free Languages and Regular Languages?

In CFL’s, multiple substrings can be “pumped”– Consider the language {an bn | n > 0}

– No single substring can be pumped and allow us to stay in the language

– However, there do exist pairs of substrings which can be pumped resulting in strings which stay in the language

Thus, a modified pumping lemma applies.

7

aBbbbB

S

A B

bBa

b

bS

A B

ba bB

bS

A B

bBa b bbabbaaBbbbb

abbaBbbbS

b bB bbabbaabbbbbbbabbaaBbbbbS

8

S

A

A

x

Last repeated variable

u z

v y

uvxyzw String

repeated

:,,,, zyxvu strings of terminals

9

Pumping Conditions for RL and CFL

A language L satisfies the RL pumping condition if: – there exists an integer m > 0

such that– for all strings w in L of length

at least m– there exist strings x, y, z such

that• w = xyz and• |xy| ≤ m and• |y| ≥ 1 and• For all i ≥ 0, uviz is in L

A language L satisfies the CFL pumping condition if: – there exists an integer m > 0

such that– for all strings w in L of length at

least m– there exist strings u, v, x, y, z

such that• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uvixyiz is in L

10

Pumping Lemma

All CFL’s satisfy the CFL pumping condition

All languages over {a,b}

“Pumping Languages”

CFL’s

11

Implications

• We can use the pumping lemma to prove a language L is not a CFL– Show that L does not satisfy the CFL

pumping condition• We cannot use the pumping lemma to prove

a language is CFL– Showing L satisfies the pumping condition

does not guarantee that L is context-free

All languages over {a,b}

“Pumping Languages”

CFL’s

12

Pumping Lemma

What does it mean?

13

Pumping Condition

• A language L satisfies the CFL pumping condition if: – there exists an integer m > 0 such that– for all strings w in L of length at least m– there exist strings u, v, x, y, z such that

• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and

Then for all i ≥ 0, uviwyiz is in L

14

v and y can be pumped

• Let w = abcdefg be in L• Then there exist substrings v and y in w such

that v and y can be repeated (pumped) and the resulting string is still in L– uvixyiz is in L for all i ≥ 0

1) w in L2) w = uvxyz3) For all i ≥ 0, uvixyiz is in L

15

For example w = abcdefg

v = cd and y = f

uv0xy0z = uxz = abeg is in L

uv1xy1z = uvxyz = abcdefg is in L

uv2xy2z = uvvxyyz = abcdcdeffg is in L

uv3xy3z = uvvvxyyyz = abcdcdcdefffg is in L

16

What the other parts mean

A language L satisfies the CFL pumping condition if: – there exists an integer m > 0 such that– for all strings w in L of length at least m

• w must be in L and have sufficient length

17

What the other parts mean

– There exist strings u, v, x, y, z such that• w = uvxyz and• |vxy| ≤ m and

–v and y are contained within m characters of w–Note: these are NOT necessarily the first m

characters of w• |vy| ≥ 1 and

–v and y cannot both be 1,–One of them might be 1, but not both

• For all i ≥ 0, uvixyiz is in L

18

Pumping Lemma

Applying CFL pumping lemma to prove that a specific language L is

not context-free

19

How we use the Pumping Lemma

• We choose a specific language L

For example {aj bj cj | j > 0}

• We show that L does not satisfy the pumping condition

• We conclude that L is not context-free

20

Showing that L “does not pump”

A language L satisfies the CFL pumping condition if: – there exists an integer m >

0 such that– for all strings w in L of

length at least m– there exist strings u, v, x,

y, z such that• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uvixyiz is

in L

A language L does not satisfy the CFL pumping condition if: – for all integers m of sufficient

size– there exists a string w in L of

length at least m such that– for all strings u, v, x, y, z

where• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1

– There exists a i ≥ 0 such that uvixyiz is not in L

21

Example Languages

• L = {the set of strings over {a, b, c} such that the number of a’s equals the number of b’s equals the number of c’s}

• L ={ai bj ck | i < j < k}

22

More Pumping Lemma Applications

23

The Pumping Lemma for CFL

there exists an integer such that m

for any string mwLw || ,

we can write

For infinite context-free language L

uvxyzw

with lengths 1||and || vymvxy

and 0 allfor , iLzxyuv ii

24

The Pumping Lemma for CFL

There exists an integer such that m

mwGLw || ),(

can be written

Let be a context free grammar. G

uvxyzw

with lengths 1||and || vymvxy

and 0 allfor , iLzxyuv ii

25

Regular Languages

}{ nnba }{ RwwContext-Free Languages

Non-regular languages

Unrestricted grammar languages

}0:{ ncba nnn

**ba

26

Theorem The language

}*},{:{ bawwwL

is not context free

Proof Use the Pumping Lemma

for context-free languages

27

Assume the contrary - that

is context-free

Since is context-free and infinite

we can apply the pumping lemma

L

L

}*},{:{ bawwwL

28

Pumping Lemma gives a number

such that:

m

we pick: Lbaba mmmm

}*},{:{ bawwwL

Pick any string of

with length at least mL

29

We can write:

}*},{:{ bawwwL

uvxyzbaba mmmm

Pumping Lemma says:

Lzxyuv ii for all 0i

with lengths mvxy || 1|| vyand

30

We examine all the possible locations

of string in vxy

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

mmmm baba

31

Case 1: vxy is within the firstma

bbaabbaa ........................v

m m m

u z

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

x y

m

1kav 2kay 121 kk

32

bbaabbaa ..................................2v

21 kkm m m

u z

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

x 2y

m

Case 1: vxy is within the firstma

1kav 2kay 121 kk

33

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

Case 1: vxy is within the firstma

121 kk

Lzxyuvbaba mmmkkm 2221

34

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

Case 1: vxy is within the first ma

Contradiction!

Lzxyuvbaba mmmkkm 2221

Lzxyuv 22However, from Pumping Lemma:

35

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

bbaabbaa ........................v

m m m

u zx y

m

is in the first

is in the firstCase 2: mamb

vy

1kav 2kby 121 kk

36

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

bbaabbaa ....................................2v

1km 2km m

u zx 2y

m

is in the first

is in the firstCase 2: mamb

vy

1kav 2kby 121 kk

37

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

is in the firstCase 2: mamb

vy

121 kk

Lzxyuvbaba mmkmkm 2221

38

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

is in the firstCase 2: mamb

vy

Lzxyuvbaba mmkmkm 2221

Contradiction!

Lzxyuv 22However, from Pumping Lemma:

39

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

bbaabbaa ........................v

m m m

u zx y

m

is in the first

overlaps the firstCase 3: mmbamb

vy

21 kk bav 3kby 1, 21 kk

40

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

overlaps the firstCase 3: mmbamb

vy

21 kk bav 3kby 1, 21 kk

2v zx 2y

bbaabbbbaaaa .................................m 2k 3km

u

m1k m

41

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

overlaps the firstCase 3: mmbamb

vy

Lzxyuvbabbaa mmkmkkm 22321

1, 21 kk

42

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

overlaps the firstCase 3: mmbamb

vy

Lzxyuvbabbaa mmkkkm 22321

Contradiction!

Lzxyuv 22However, from Pumping Lemma:

43

Overlaps the first

in the firstCase 4:

bbaabbaa ........................v

m m m

u z

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

x y

m

mammba

vy

Analysis is similar to case 3

44

Other cases: vxy is within

mmmm babaor

or

mmmm baba

mmmm baba

Analysis is similar to case 1: mmmm baba

45

More cases: vxy overlaps

mmmm baba ormmmm baba

Analysis is similar to cases 2,3,4:

mmmm baba

46

Since , it is impossible for

to overlap:

There are no other cases to consider.

mvxy ||vxy

mmmm baba

nor normmmm baba mmmm baba

neither

47

In all cases we obtained a contradiction.

Therefore: The original assumption that

is context-free must be wrong

Conclusion: is not context-freeL

}*},{:{ bawwwL

END OF PROOF

48

Regular Languages

}{ nnba }{ RwwContext-Free Languages

Non-regular languages

Unrestricted grammar languages

}0:{ ncba nnn

**ba

}{ww

49

Theorem The language

is not context free

Proof Use the Pumping Lemma

for context-free languages

}0:{ ! naL n

50

Since is context-free and infinite

we can apply the pumping lemma

L

Assume to the contrary that

is context-free

L

}0:{ ! naL n

51

Pumping Lemma gives a number

such that we can:

m

so we pick: Lam !

pick any string of with length at least mL

}0:{ ! naL n

52

We can write: uvxyzam !

Pumping Lemma says:

Lzxyuv ii for all 0i

}0:{ ! naL n

with lengths mvxy || 1|| vy and

53

We examine all the possible locations

of the string in vxy !ma

mvxy || 1|| vyuvxyzam !

There is only one case to consider

}0:{ ! naL n

54

v

!m

u zx y

1kav 2kay mkk 211

aa ...............

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

55

2v

21! kkm

u zx 2y

1kav 2kay

aa ...........................

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mkk 211

56

2v

km !

u zx 2y

1kav 2kay

aa ...........................

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mk 1

21 kkk

57

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mk 1

zxyuva km 22!

58

)!1(

)1(!

!!

!!

m

mm

mmm

mmkm

)!1(!! mkmm

mk 1Since

2m we have:for

59

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

Lzxyuva km 22!

)!1(!! mkmm

60

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

Lzxyuva km 22!

Lzxyuv 22

Contradiction!

However, from Pumping Lemma:

61

We obtained a contradiction

Therefore: The original assumption that

is context-free must be wrong

Conclusion: is not context-freeL

}0:{ ! naL n

END OF PROOF

62

Regular Languages

**ba

Context-free languages

Unrestricted grammar languages}0:{ ncba nnn

}0:{ nba nn

}},{:{ bawww

}*},{:{ bawwwR

}0:{ ! nan}0:{

2nba nn

63

Theorem The language

is not context free

Proof Use the Pumping Lemma

for Context-free languages

}0:{2

nbaL nn

64

Since is context-free and infinite

we can apply the pumping lemma

L

Assume to the contrary that

is context-free

L

}0:{2

nbaL nn

65

Pumping Lemma gives a number

such that we can:

m

so we choose: Lba mm 2

pick any string of with length at least mL

}0:{2

nbaL nn

66

We can write:

with lengths andmvxy || 1|| vy

uvxyzba mm 2

Pumping Lemma says:

Lzxyuv ii for all 0i

}0:{2

nbaL nn

67

We examine all the possible locations

of string in vxy

mvxy || 1|| vyuvxyzba mm 2

mm ba2

}0:{2

nbaL nn

68

The most complicated case:

bbaa ...........................v

2m m

u zx y

is in

is inmamb

vy

}0:{2

nbaL nn

mvxy || 1|| vyuvxyzba mm 2

69

bbaa ...........................v

2m m

u zx y

1kav 2kby

}0:{2

nbaL nn

mkk 211

mvxy || 1|| vyuvxyzba mm 2

70

bbaa ...........................v

2m m

u zx y

1kav 2kby

The most complicated sub-case: 01 k 02 k

}0:{2

nbaL nn

mkk 211

and

mvxy || 1|| vyuvxyzba mm 2

710v

12 km 2km

u zx 0y

bbaa ..................

}0:{2

nbaL nn

1kav 2kby

The most complicated sub-case: 01 k 02 k

mkk 211

and

mvxy || 1|| vyuvxyzba mm 2

72

}0:{2

nbaL nn

1kav 2kby

01 k 02 k

mkk 211

and

zxyuvba kmkm 00212

mvxy || 1|| vyuvxyzba mm 2

The most complicated sub-case:

73

12

2

222

12

)1()(

km

mm

mkm

01 k 02 k mkk 211and

221

2 )( kmkm

74

}0:{2

nbaL nn

221

2 )( kmkm

Lzxyuvba kmkm 00212

mvxy || 1|| vyuvxyzba mm 2

75

}0:{2

nbaL nn

Lzxyuvba kmkm 00212

However, from Pumping Lemma:

Lzxyuv 00

Contradiction!

mvxy || 1|| vyuvxyzba mm 2

76

When we examine the rest of the cases

we also obtain a contradiction.

77

In all cases we obtained a contradiction.

Therefore: The original assumption that

is context-free must be wrong

Conclusion: is not context-freeL

}0:{2

nbaL nn

END OF PROOF

78

Check your knowledge before the Midterm 2!

Selected Examplesof

Context Free Language Problems

79

Let G be the grammar with productions:

Claim: L(G) = L

||

bBcB

BaScS

}:{ mnkcbaL kmn Find a CFG for the following language

Example 1

80

Proof:Consider the following derivation:

(the first * applies S aSc n times, the second * to B bBc m times)

Since all words in L(G) must follow this pattern in their derivations, it is clear that L(G) L

Find a CFG for the following language

||

bBcB

BaScS

}:{ mnkcbaL kmn

)(

**

mncmbna

ncmcBmbnancBnancSnaS

81

Consider w L, w = anbmc(n + m) for some n, m 0

The derivation

S * anScn anBcn * anbmBcmcn anbmc(n + m) clearly produces w for any n, m.

L L(G) L L(G)

G is a CFG for L

Find a CFG for the following language

}:{ mnkcbaL kmn

END OF PROOF

||

bBcB

BaScS

82

}:{ 32 NnbaL nn Find a PDA and CFG for the following language

Example 2

Is the automaton deterministic? Yes. It acts in a unique way in each state, no -transitions.

fqiq

/, 23 ab22 /, aa

/, 23 ab

83

CFG : 32| SbaS

}:{ 32 NnbaL nn

fqiq

/, 23 ab22 /, aa

/, 23 ab

84

}2:},{{ ba nnbaxL Find a PDA and CFG for the following language

Example 3

bb

aa

/,

/,

/,

/,

/,

/,

aab

aba

aab

baa

PDA

85

CFG :

SSbSaSaaSaSbaSbSaS ||||

}2:},{{ ba nnbaxL bb

aa

/,

/,

/,

/,

/,

/,

aab

aba

aab

baa

86

Consider the following two languages:

L1 ={w : w is made from a’s and b’s

and the length of w is a multiple of 10}

L2 = {an bn: n 0}

}:{ tenofmultipleNOTisnnbnaL

Prove that the language L is context-free

Example 4

87

L1 ={w : w is made from a’s and b’s and the length of w is a multiple of ten}

L2 = {an bn: n 0}

Let L1c denote the complement of L1.

We have that: L = L1c L2.

L1 is a regular language, since we can easily build a

finite automaton with 10 states that accepts any string in this language.

L1c is regular too, since regular languages are closed

under complement.

88

The language L2 is context-free.

The grammar is: S aSb |

Therefore, the language L = L1c L2. is also

context-free,

since context-free languages are closed under regular intersection (Regular Closure).

END O PROOF

89

}||,},{,:{ nxbaxNnaxL n Find a PDA and CFG for the following language

Example 5

CFG

babAaAA

AASaS

|||

||

ababaaabaAaaabAaa

AAaaAASaaASaS

Production ex.

90

Grammar NPDA

/,

/,

/,

/,

T

TaT

bS

aSTbS

T

TaT

bS

aSTbS

/,

/,

bb

aa

q0 q1 2qS/, $/$,

Remember converting grammar to NPDA, example:

91

}||,},{,:{ nxbaxNnaxL n

PDA

fqiq

babAaAA

AASaS

|||/,

||/,

/,

/,

bb

aa

S/,

babAaAA

AASaS

|||

||

92

}

,:},{{

different are symbols finishing theand starting the

ba nnbaxL

Find a PDA and CFG for the following language

Example 6

PDA /,a

/,

/,

/,

/,

ba

bb

ab

aa

bb /,

/, ab /,a

/, a

/,

/,

/,

/,

ba

bb

ab

aa

93

}

,:},{{

different are symbols finishing theand starting the

ba nnbaxL

/,a

/,

/,

/,

/,

ba

bb

ab

aa

bb /,

/, ab /,a

/, a

/,

/,

/,

/,

ba

bb

ab

aa

CFG, direct construction

Strings start and finish with different symbols

Strings contain at least one more a than b

bAaaAbS |

bAAAbAAAbaAaA ||||(we must have AA here as only one A just balances b)

94

http://www.liacs.nl/~hoogeboo/praatjes/tarragona/schoolpda-VIII.pdf

Famous Pushdown Automata Examples

http://www.nature.com/nature/journal/v417/n6889/full/nature00771.html

Computational and evolutionary aspects of language

Further Reading