Homework 4 - Solution · Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1....

6
DCP3122 Introduction to Formal Languages, Spring 2015 27-Apr-2015 Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1. Draw the derivation tree corresponding to the following context-free grammar G =({S }, {a, b}, S, P ) with productions S aSa, S bSb, S λ. A typical derivation in this grammar is S aSa aaSaa aabSbaa aabbaa. It is clear that L(G)= {ww R : w ∈{a, b} * }. Ans. 2. Find context-free grammars for the following languages (n 0, m 0, k 0). (a) L = {a n b m : n 6= m - 1}. (b) L = {w ∈{a, b} * : n a (v) n b (v), where v is any prefix of w}. (c) L = {a n b m c k : n = m or m 6= k}. Ans. (a) L = {a n b m : n m>m - 1}∪{a n b m : n m - 2 <m - 1}. A context-free grammar for L is G =({S, S 1 ,A,B,B 1 }, {a, b}, S, P ) with the productions S AS 1 |S 1 B, S 1 aS 1 b|λ, A aA|λ, S 2 aS 1 b|λ, B bbB 1 ,B 1 bB 1 |λ. (b) L = {w ∈{a, b} * : n a (w)= n b (w),n a (v) n b (v), where v is any prefix of w}∪{w {a, b} * : n a (w) >n b (w),n a (v) n b (v), where v is any prefix of w}. A context-free grammar for L is G =({S, A}, {a, b}, S, P ) with the productions S aSb|SS |A, A aA|λ. 1-1

Transcript of Homework 4 - Solution · Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1....

Page 1: Homework 4 - Solution · Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1. Draw the derivation tree corresponding to the following context-free grammar G=

DCP3122 Introduction to Formal Languages, Spring 2015 27-Apr-2015

Homework 4 - Solution

Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015

1. Draw the derivation tree corresponding to the following context-free grammarG = ({S}, {a, b}, S, P )with productions

S → aSa, S → bSb, S → λ.

A typical derivation in this grammar is S ⇒ aSa⇒ aaSaa⇒ aabSbaa⇒ aabbaa. It is clearthat L(G) = {wwR : w ∈ {a, b}∗}.Ans.

2. Find context-free grammars for the following languages (n ≥ 0, m ≥ 0, k ≥ 0).

(a) L = {anbm : n 6= m− 1}.(b) L = {w ∈ {a, b}∗ : na(v) ≥ nb(v), where v is any prefix of w}.(c) L = {anbmck : n = m or m 6= k}.

Ans.

(a) L = {anbm : n ≥ m > m− 1} ∪ {anbm : n ≤ m− 2 < m− 1}. A context-free grammarfor L is G = ({S, S1, A,B,B1}, {a, b}, S, P ) with the productions

S → AS1|S1B,S1 → aS1b|λ,A→ aA|λ,S2 → aS1b|λ,B → bbB1, B1 → bB1|λ.

(b) L = {w ∈ {a, b}∗ : na(w) = nb(w), na(v) ≥ nb(v), where v is any prefix of w} ∪ {w ∈{a, b}∗ : na(w) > nb(w), na(v) ≥ nb(v), where v is any prefix of w}. A context-freegrammar for L is G = ({S,A}, {a, b}, S, P ) with the productions

S → aSb|SS|A,A→ aA|λ.

1-1

Page 2: Homework 4 - Solution · Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1. Draw the derivation tree corresponding to the following context-free grammar G=

(c) L = {anbmck : n = m} ∪ {anbmck : m 6= k}. A context-free grammar for L is G =({S,A,B,C,D,D1, D2, E, F}, {a, b, c}, S, P ) with the productions

S → AB|CD,A→ aAb|λ,B → cB|λ,C → aC|λ,D → ED1|D1F,D1 → bD1c|λ,E → bE|b, F → cF |c.

3. Show that L = {w ∈ {a, b, c}∗ : |w| = 3na(w)} is a context-free languages.Ans. A context-free grammar for L is G = ({S, F}, {a, b, c}, S, P ) with the productions

S → aSFSFS|FSaSFS|FSFSaS|λ,F → b|c.

4. Show that the following language is context-free.

L = {uvwvR : u, v, w ∈ {a, b}+, |u| = |w| = 2}.

Ans. A context-free grammar for L is G = ({S,A,B,C}, {a, b}, S, P ) with the productions

S → AB,

A→ aa|ab|ba|bb,B → aBa|bBb|aAa|bAb.

5. Show a derivation tree for the string aabbbb with the grammar S → AB|λ, A→ aB, B → Sb.Give a verbal description of the language generated by this grammar.Ans. This grammar produces the strings of the form anb2n, n ≥ 0, i.e., it generates thelanguage L(G) = {anb2n : n ≥ 0}.

1-2

Page 3: Homework 4 - Solution · Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1. Draw the derivation tree corresponding to the following context-free grammar G=

6. Define what one might mean by properly nested parenthesis structures involving two kinds ofparentheses, say () and []. Intuitively, properly nested strings in this situation are ([]), ([[]]),and [()], but not ([)] or ((]]. Using your definition, give a context-free grammar for generatingall properly nested parentheses.Ans. A context-free grammar for generating all properly nested parentheses isG = ({S}, {(, ), [, ]}, S, P )with production

S → [S]|(S)|λ.

7. Construct an unambiguous grammar equivalent to the grammar: S → AB|aaB, A → a|Aa,B → b.Ans. This grammar produces the strings ab, aab, aaab, . . ., i.e., it generatesG = ({S,A}, {a, b}, S, P )with productions S → Ab,A→ a|Aa.

8. Show that the grammar S → aSbS|bSaS|λ is ambiguous.Ans. The string w = abab has the following two derivation trees:

9. Eliminate all useless productions from the grammar S → aS|AB, A → bA, B → AA. Whatlanguage does this grammar generate?Ans. This grammar generates the language with ”nothing”, i.e., L(G) = {}. A procedure ofeliminating all useless productions is as follows.

• Substitute B: S → aS|AAA, A→ bA.

• Remove useless variable A (since A has no way to get a terminal string): S → aS.

• Remove useless variable S (since S has no way to get a terminal string).

10. Eliminate all λ-productions from S → AaB|aaB, A→ λ, B → bbA|λ.Ans. A procedure of removing all λ-productions is as follows.

• The λ-production A → λ can be removed after adding new productions obtained bysubstituting λ for A where it occurs on the right: S → AaB|aaB|aB, B → bbA|λ|bb.• The λ-production B → λ can be removed after adding new productions obtained by

substituting λ for B where it occurs on the right: S → AaB|aaB|aB|Aa|aa|a, B →bbA|bb.

11. Eliminate all unit-productions, all useless productions, and all λ-productions from the gram-mar S → aA|aBB, A→ aaA|λ, B → bB|bbC, C → B.Ans. A removing procedure is as follows.

1-3

Page 4: Homework 4 - Solution · Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1. Draw the derivation tree corresponding to the following context-free grammar G=

• Removing useless productions A → aBB, B → bB|bbC, and C → B since they cannotbe transformed into terminal strings: S → aA|aBB, A→ aaA|λ• Removing λ-productions to have S → aA|a, A→ aaA|aa.

• The result in the last step is the final answer since there is no any unit-production.

12. Eliminate all unit-productions from S → a|aA|B|C, A → aB|λ, B → Aa, C → cCD,D → ddd.Ans. We first eliminate all λ-productions and obtain

S → a|aA|B|C,A→ aB,

B → Aa|a,C → cCD,

D → ddd.

The we eliminate all unit-productions and obtain

S → a|aA|Aa|cCD,A→ aB,

B → Aa|a,C → cCD,

D → ddd.

13. Transform the grammar with productions S → abAB, A → bAB|λ, B → BAa|A|λ intoChomsky normal form.Ans. The transform procedure is as follows.

• Removing λ-productions:

– Removing A→ λ: S → abAB|abB, A→ bAB|bB, B → BAa|A|λ|Ba.

– RemovingB → λ: S → abAB|abB|abA|ab, A→ bAB|bB|bA|b, B → BAa|A|Ba|Aa|a.

• Removing unit-production B → A: S → abAB|abB|abA|ab, A → bAB|bB|bA|b, B →BAa|bAB|bB|bA|b|Ba|Aa|a.

• Convert the grammar into Chomsky normal form:

– Introduce new variables Sa for each a ∈ T :

S → SaSbAB|SaSbB|SaSbA|SaSb,A→ SbAB|SbB|SbA|Sb,B → BASa|SbAB|SbB|SbA|Sb|BSa|ASa|Sa,Sa → a,

Sb → b.

– Introduce additional variables to get the first two productions into normal form and

1-4

Page 5: Homework 4 - Solution · Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1. Draw the derivation tree corresponding to the following context-free grammar G=

we get the final result

S → SaU |SaX|SaY |SaSb,A→ SbV |SbB|SbA|Sb,B → BZ|SbV |SbB|SbA|Sb|BSa|ASa|Sa,U → SbV,

V → AB,

X → SbB,

Y → SbA,

Z → ASa,

Sa → a,

Sb → b.

14. Use the CYK method to determine if the string w = aaabbbbab is in the language generatedby the grammar S → aSb|b.Ans. Firstly, we convert the grammar S → aSb|b into Chomsky normal form:

• S → ASB|b, A→ a,B → b.

• S → AX|b,X → SB,A→ a,B → b.

Then for w = w1w2 · · ·w9 = aaabbbbab, we have

V11 = {A}, V22 = {A}, V33 = {A}, V44 = {B,S}, V55 = {B,S},V66 = {B,S}, V77 = {B,S}, V88 = {A}, V99 = {B,S},

By using the equation

Vij =⋃

k∈{i,i+1,...,j−1}

{A→ BC, with B ∈ Vik, C ∈ Vk+1,j},

we have

V12 = {A : A→ BC,B ∈ V11, C ∈ V22} = {},V23 = {A : A→ BC,B ∈ V22, C ∈ V33} = {},V34 = {A : A→ BC,B ∈ V33, C ∈ V44} = {},V45 = {A : A→ BC,B ∈ V44, C ∈ V55} = {X},V56 = {A : A→ BC,B ∈ V55, C ∈ V66} = {X},V67 = {A : A→ BC,B ∈ V66, C ∈ V77} = {X},V78 = {A : A→ BC,B ∈ V77, C ∈ V88} = {},V89 = {A : A→ BC,B ∈ V88, C ∈ V99} = {};

V13 = {A : A→ BC,B ∈ V11, C ∈ V23} ∪ {A : A→ BC,B ∈ V12, C ∈ V33} = {},V24 = {A : A→ BC,B ∈ V22, C ∈ V34} ∪ {A : A→ BC,B ∈ V23, C ∈ V44} = {},V35 = {A : A→ BC,B ∈ V33, C ∈ V45} ∪ {A : A→ BC,B ∈ V34, C ∈ V55} = {},V46 = {A : A→ BC,B ∈ V44, C ∈ V56} ∪ {A : A→ BC,B ∈ V45, C ∈ V66} = {S},V57 = {A : A→ BC,B ∈ V55, C ∈ V67} ∪ {A : A→ BC,B ∈ V56, C ∈ V77} = {},V68 = {A : A→ BC,B ∈ V66, C ∈ V78} ∪ {A : A→ BC,B ∈ V67, C ∈ V88} = {},V79 = {A : A→ BC,B ∈ V77, C ∈ V89} ∪ {A : A→ BC,B ∈ V78, C ∈ V99} = {};

1-5

Page 6: Homework 4 - Solution · Homework 4 - Solution Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015 1. Draw the derivation tree corresponding to the following context-free grammar G=

Continue this procedure, we have

V14 = {}, V25 = {}, V36 = {X}, V47 = {}, V58 = {}, V69 = {};V15 = {}, V26 = {S}, V37 = {}, V48 = {}, V59 = {};V16 = {}, V27 = {X}, V38 = {}, V49 = {};V17 = {S}, V28 = {}, V39 = {};V18 = {}, V29 = {};V19 = {}.

Because V19 = {}, we conclude that w is not in the language generated by the grammarS → aSb|b by using the CYK algorithm.

1-6