นายฉัตรชัย อัศวินโกวิท

Homework
Assignment 2
จัดทำโดย
นำยสุ ริยะ วิไลวงศ์
วิทยำกำรคอมพิวเตอร์ แผน ก โครงกำรพิเศษ 545020137-5
เสนอ
รองศำสตรำจำรย์ ดร.ศำสตรำ วงศ์ ธนวสุ
ทฤษฎีกำรคำนวน (322721 Theory of Computation)
ภำควิชำวิทยำกำรคอมพิวเตอร์ คณะวิทยำศำสตร์ มหำวิทยำลัยขอนแก่น
Assignment 2
Context-free Grammar & Chomsky Normal Form
1. Consider the CFG
S X0X0X
X 0X | 1X | ^
What is the language this CFG generates?
CFG นี้
generate RE = (0+1)*0(0+1)*0(0+1)*
หรื อ ภาษาที่มี “0” อย่างน้อย 2 ตัว ตอบ
Find a CFG for 2 thru 3 defined by regular expression.
2. 01*
S  0X
X  1X | ^
ตอบ
3. 0*1*
S  S0 | S1 | ^ ตอบ
4. Design context-free grammars for the following languages
a) A = {anbm|n≠m }.
b) B = {aibjck|i, j, k ≥ 0 and either i = j or j = k }.
c) C = {anbm|n = 3m }.
d) D = {anbm|n ≤ m + 3}.
a)
b)
S  aX | Xb
X aXb | ^
S  AX | YC
X  bXc | ^
Y  aYb | ^
A  Aa | ^
C  Cc | ^
ตอบ
ตอบ
C={ aaab , aaaaaabb , aaaaaaaaabbb , aaaaaaaaaaaabbbb
,…}
c)
S  aaaXb
X  aaaXb | ^
ตอบ
D= {
^,a,aa,aaa,b,ab,aab,aaaab,bb,abb,aabb,aaabb,aaaabb,aaaaabb,…}
d)
S X | aX | aaX | aaaX
ตอบ
XXb | aXb | aaXb | aaaXb| ^
5. Decide whether the following grammar is ambiguous.
S  AB |aaB
A  a|Aa
Bb
ทดสอบสร้าง parse tree โดยให้ grammar นี้สร้าง aab
แบบที่ 1
แบบที2
่
S
aa
S
B
b
A
A
B
a
b
a
จาก parse tree จะเห็นว่าสามารถสร้าง aab ได้ถึง 2 ทาง แสดงว่า grammar นี้ คลุมเครื อ
(ambiguous)
ตอบ
6. Convert the following CFG into an equivalent CFG in
ChomskyNormal Form
A → BAB |B |^
B → 00|^
A,B เป็ น nullable variable ดังนั้นทาการกาจัด null โดยแทน null ใน nullable
variable จะได้
A  AB | BA | A | BB
นาไปเพิ่มใน CFG ตัวเก่า และตัด null จะได้ CNF :
A BAB |B |AB | BA | A | BB
B  00
ตอบ
7. Find the leftmost derivation for the string 011010011101101 in
theCFG:
S SSS | 0S1
S 10 | 110 | 011
S  SSS
S 0S1SS
S  01101SS
S  011010S1S
S  0110100111S
S  01101001110S1
S  011010011101101
ตอบ
Push down Automata, CFG=PDA
8. Convert the following CFG to an equivalent PDA.
R  XRX | S
S  aTb | bTa
T  XTX | X | ^
X a|b
START
PUSH R
S
POP
READ
b
a
R
X
R
X
PUSH X
PUSH R
PUSH X
PUSH S
READ
READ
PUSH T
PUSH T
READ
READ
a
b
b
a
∆
POP
T
PUSH X
X
T
PUSH X
ACCEPT
T
X
READ
READ
PUSH T
READ
PUSH X
∆
a
b
ตอบ
9. Let L be the language of all string that have the same number of
0’sand 1’s and that, as we read them from left to right, never have
more1’s than 0’s. For example, 0100011011 is good but 01001110 is
nogood but 0100110 is no good since at a certain point we had four
0’s but
only three 1’s. All the words in L with six letters are:
000111 001011 001101 010011010101
a) Write out all the string in L with eight letters (there are 14).
b) Find a PDA that accepts L
c) Prove that L is not regular
d) Find a CFG that defines L
e) If we think of a 0 as an open parenthesis “(” and a 1 as a
closeparenthesis “)” then L is the language of the sequence of
parenthesisthat might occur in arithmetic expression. Explain.
a)
L|8| = {
00001111,00010111,00011011,00011101,00100111,00101011,00
101101,
00110101,00110011,01000111,01001011,01001101,01010011,01
010101 }
b)
START
PUSH S
POP
S
READ
1
0
POP
∆
POP
∆
ACCEPT
0
PUSH 0
PUSH 1
c)
ไม่สามารถนา Lนี้ไปเขียนเป็ น Regular Expression ได้ แสดงว่าไม่เป็ น Regular
Language
01010101
d)
CFG :
S 0X1
X0X1 | 1Y0 | ^
Y 0X1| ^
e)
มองเลข “0”ตัวแรกและเลข “1”ตัวหลังเป็ นวงเล็บ “(“ข้างหน้าและ“)”ข้างหลังข้างในวงเล็บ
เป็ นหลักการทัว่ ไปของการเปิ ดปิ ดวงเล็บ
10. Given a CFG
S  0S1 | 01, generating the language {0n1n}
a) Transfer this CFG into CNF.
b) Take such a CNF defined in (i) to construct a
corresponding PDAthat accepts the same language.
แปลง CFG เป็ น CNF (ใช้ตวั แปร R0แทน 0 และ R1แทน 1)
S R0SR1 | R0R1
R0 0
R1 1
เมื่อแทนR0S เป็ น X จะได้CNF ดังนี้
S XR1 | R0R1
X R0S
R0 0
R1 1
ตอบ (a)
นา CNF มาสร้าง PDA จะได้
START
PUSH S
R0
POP
S
PUSH R1
S
PUSH R1
READ
0
POP
∆
ACCEPT
R1
X
PUSH S
READ
1
PUSH X
PUSH R0
PUSH R0
POP
0
READ
R0
สร้าง PDA จาก CNF จะได้ PDA ที่ accept ภาษาเดียวกับ CFG ข้างต้น
ตอบ(b)
11. Consider the palindrome-generating grammar (over the
alphabet of two symbols a and b):
S  aaSb | aSab | abSa | aSba | baSa | bSaa | ^
Construct a PDA that accepts exactly the strings generated by this
grammar.
START
PUSH S
∆
POP
READ
S
S
READ
∆
POP
S
S
READ
a
READ
a
READ
a
PUSH S
a
S
READ
a
S
READ
a
READ
PUSH S
b
b
READ
READ
PUSH S
b
READ
b
PUSH S
a
READ
READ
READ
a
ACCEPT
S
S
READ
b
READ
a
READ
b
PUSH S
a
PUSH S
a
READ
READ
READ
a
ตอบ
Context-Free Language
12. Prove that the following languages are context free, by giving
acontext-free grammar for each.
(a) {akajbjck| j , k≥0 }
(b) {aibi+kck| i, k ≥ 0}
(c) {aibj | i≠j and (i, j > 0)}
a)
SaSc | X
XaXb | ^
b)
S XY | ^
X aXb | ^
Y bYc | ^
c)
S  aaXb | aYbb
X  aX | aXb | ^
Y  Yb | aYb | ^
13. Prove that the following languages are not context free:
(a) {anb2ncn|n≥0}
(b) { amax{m ,n}bmcn| n , m ≥ 0}
(a) L = {anb2ncn | n≥0}
สมมติL เป็ นcontext-free พิสูจน์โดยใช้pumping lemma
u = ^
v = an
x = b2n
y = cn
z = ^
w = uvnxynz
= ^(an)v(b2n)(cn)y^
,(an)(b2n)(cn)L
w' = (an)2(b2n)(cn)2 = a2nb2nc2n∉ L
ดังนั้น Lไม่เป็ น context-free ตอบ(a)
(b) { amax{m ,n}bmcn| n , m ≥ 0}
สมมติL เป็ นcontext-free พิสูจน์โดยใช้pumping lemma
u = ^
v = amax{m,n}
x = bm
y = cn
z = ^
w = uvnxynz
= ^(amax{m,n})v(bm)(cn)y^
,(amax{m,n})(bm)(cn)L
w' = (amax{m,n})0(bm)(cn)0 = a0(bm)c0 ∉ L
ดังนั้น Lไม่เป็ น context-free ตอบ(b)
In Problem 14 through 16, find CFG’s for the indicated
languages over ={0,1} when n appears as an exponent,
n=1,2,3,…
14. All string of the form 0m1n, where m>n or the form 0n1n
S  0X1
X  0X1 | 0X | ^
ตอบ
15. All string of the form 0n12n0m12m, where n,m=1 2 3… but m need
not
=n,={011011 011001111 001111011}
S  0X110X11
X  0X11 | ^
ตอบ
16. Consider
a) All string of the form0x1y0z1w, where x,y,z,w=1 2 3 … and x>y and
z>w and x+z=y+w
hint: think of these word as: (0p1p)(1p0p)(0r1r)
b) What happen if we throw away the restrictions y>x and z>w ?
a) เป็ นไปไม่ได้ที่จะให้x>y และz>w และx+z = y+w เพราะ
มากกว่า+มากกว่า≠น้อยกว่า+น้อยกว่า
b) สามารถหาCFG ของ{0x1y0z1w}จากเงื่อนไข x+z = y+w ได้
S0Y1X0Y1
X1X0 | ^
Y 0Y1 | ^
ตอบ
Problem 17-18 concerns intersection and compliment:
17. Which of the following are context-free?
a) (0)(0+1)* ODDPALINDROME
b) EQUAL {0n1n0n}
c) {0n1n}PALINDROME’
d{0n1n}PALINDROME
e) EVEN-EVEN PALINDROME
f) PALINDROME0n1n+m0m where n,m=1,2,3,..n=m or n≠m}
g) PALINDROME’ EQUAL
กาหนดให้ตวั พจน์หน้าเป็ นL1และ พจน์หลังเป็ นL2จะได้L1L2
a) L1L2 = (0)(0+1)* ODDPALINDROME
(0)(0+1)* เป็ น Regular Languageเพราะสามารถเขียน Regular Expression
ได้ซ่ ึง RL∈CFG
ODDPALINDROMEสามารถเขียนเป็ น CFG ได้แสดงว่าเป็ น context-free
จากCFLCFL เป็ นCFLดังนั้น L1L2เป็ น context-free ตอบ 17(a)
b) EQUAL {0n1n0n}
CFGของ EQUALคือ S  0X1 | 1X0 | ^
เขียน CFGได้แสดงว่าเป็ น contextfree
REของ {0n1n0n | n≥1}คือ 00*11*00* เขียน REได้แสดงว่าเป็ น RLซึ่ง RL∈CFL
จากCFLCFL เป็ นCFLดังนั้น L1L2เป็ น context-free ตอบ 17(b)
c) {0n1n}PALINDROME’
REของ {0n1n | n≥1}คือ 00*11* เขียน REได้แสดงว่าเป็ น RLซึ่ง RL∈CFL
PALINDROMEสามารถเขียน CFGได้
แสดงว่าเป็ นcontext-free
แต่ (CFG)’ไม่แน่วา่ จะเป็ น context-free
ดังนั้น L1L2เป็ นอาจจะไม่เป็ นcontext-free
ตอบ 17(c)
d) {0n1n}PALINDROME
REของ {0n1n | n≥1}คือ 00*11* เขียน REได้แสดงว่าเป็ น RLซึ่ง RL∈CFL
PALINDROMEสามารถเขียน CFGได้
แสดงว่าเป็ นcontext-free
จากCFLCFL เป็ นCFLดังนั้น L1L2เป็ น context-free ตอบ 17(d)
e) EVEN-EVEN PALINDROME
EVEN-EVENเป็ น context-free
PALINDROMEเป็ น context-free
จากCFLCFL เป็ นCFLดังนั้น L1L2เป็ น context-free ตอบ 17(e)
f) PALINDROME {0n1n+m0mwhere n,m=1,2,3,..n=m or n≠m}
PALINDROMEเป็ น context-free
0n1n+m0mเขียน CFG ได้เป็ น S  01X11Y0
X  0X1 | ^
Y  1Y0 | ^
แสดงว่าเป็ น context-free
จากCFLCFL เป็ นCFLดังนั้น L1L2เป็ น context-free ตอบ 17(f)
g) PALINDROME’ EQUAL
PALINDROMEเป็ นcontext-freeแต่ (CFL)’ ไม่แน่วา่ จะเป็ น context-free
ดังนั้น L1L2เป็ นอาจจะไม่เป็ น context-free
ตอบ 17(g)
18. Considers
a) Show thatL={01n01n0} is non-regular but context free
b) Find a regular language that when intersected with a
context-free
language becomes non-regular but context-free.
a)
L={01n01n0}
สมมติให้ Lเป็ น Regular Language พิสูจน์โดยใช้ pumping theorem
w = xyz
xy = 01n01n
x = 01n0
y = 1n
z =0
w = 01n01n(y)0
w' = 01n01n(2)0 = 01n012n0 ∉ L
ดังนั้น แสดงว่า L ไม่เป็ น Regular Language
CFGL: S 0X0
X  1X1 | 1Y1 | ^
Y0
สามารถเขียน CFGได้ แสดงว่าเป็ น context-freeแต่ไม่เป็ น Regular Language
b)
ตอบ(a)
ถ้ากาหนดให้ Lx=(0+1)*นาไป Intersectกับตัวใดก็จะได้ตวั นั้น เมื่อให้ L={01n01n0}
ถ้า L Lxจะได้ Lจากข้อ a) Lเป็ น context-freeแต่ไม่เป็ น regular language
ตอบ(b)