( ) { . . . . . . | . . . , } SPLIT L aaaaaawaaaw L

2003 Fall
CS322 오토마타 기말고사 (170 점)
2003 년 12 월 16 일 PM 4:00~ PM 6:30
1. language 에 대하여 다음과 같은 연산을 생각해보자. [10 점(5:5)]
SPLIT ( L) = {a1a3 . . . a2 n-1a2 a4 . . . a2 n | w = a1a2 . . . a2 n , w Î L }
(Hint:
L 에 속하는 홀수 길이의 string 들에 대하여, SPLIT ( L) 에 포함되는 string 은 없다.)
(1) 만약,
L 이 regular language 라면, SPLIT ( L) 도 regular 인가? 그 이유도 설명하라.
(2) 만약,
L 이 context-free language 라면 SPLIT ( L) 도 context-free 인가? 그 이유도 설명하라.
(1) 아니다.
SPLIT(L)은 regular 일 필요는 없다.
L = { (01)n | n ≥ 0} 은 regular 이지만, SPLIT(L) = {0n1n | n ≥ 0} 은 regular 가 아니다.
(2) 아니다.
SPLIT(L)은 context-free 일 필요는 없다.
L = {(02)n(13)n | n ≥ 0}은 context-free 이지만, SPLIT(L) = {0n1n2n3n | n ≥ 0}은 context-free
가 아니다
2. Σ 와 Δ 는 알파벳이다. 함수
h : å ® D * 를 생각해보자. 다음과 같이 h 를 å * 에서
D * 로 대응되는 함수로 확장할 수 있다. [10 점]
hˆ(e ) = e
hˆ( w1 ) = hˆ( w2 )h(a ) for any w1 = w2 a, where w1 ,w2 Î å *, a Î å
예를 들면,
å = {0,1}, D = {a, b}, h(0) = ab, h(1) = aab 이면,
hˆ(001) = hˆ(00)h(1) = h(0)h(0)h(1) = ababaab 이다.
함수
h : å ® D * 로부터
homomorphism 이라고 한다.
위와
같은
방법으로
정의된
함수
hˆ : å * ® D * 를
hˆ 가 å * 에서 D * 로 대응되는 homomorphism 이라고 할 때,
L1 이 finite automaton 에 의해 accept 되면, L2 = {w Î å * | hˆ( w) Î L1} 도 finite automaton 에
의해 accept 됨을 보여라.
<Inverse Homomorphism>
L1 을 accept 하는 오토마타 M1 = (Q, Δ, δ1, q0, F)라 하면,
L2 를 accept 하는 오토마타 M2 를 다음과 같이 정의할 수 있다.
M2 = (Q, Σ, δ2, q0, F)
where δ2(qi, x) =
dˆ1 (qi, h(x))
(단, qi ∈ Q,
x ∈ Σ)
3. 다음 언어를 나타내는 context-free grammar 를 고안하시오. [15 점(3:4:4:4)]
(1)
L = {0n12 n | n ³ 0}
L = {x Î {a, b}* | each prefix of x has at least as many a 's as b 's }
m n p q
(3) L = {a b c d | m + n = p + q}
m n
(4) L = {0 1 | m ¹ n, m, n ³ 0}
(2)
(1)
S ® 0 S11| e
(2)
S ® aS | aSbS | e
(3)
S ® aSd | A | B
A ® aAc | C
B ® bBd | C
C ® bCc | e
(4)
S ® A| B
A ® 0 | 0 A | 0 A1
B ® 1| B1| 0 B1
4. 다음 language
L 에 대해 각 질문에 답하시오. [25 점(3:3:5:3:8:3)]
L = {a i b j c k | i, j , k ³ 1, i + k = j}
< 제약사항 >
configuration 의 형식은 다음과 같다.
(state, remained input string, current stack string)
이때, current stack string 의 leftmost symbol 을 stack 의 top 으로 한다.
특히, (4)와 (6)의 Parsing 진행과정은 위의 configuration 으로 나타낼 경우만 정답으로
인정된다.
(1)
L(G ) = L 인 context-free grammar G 를 구하시오
(2) 스트링 aabbbc 에 대한 parse tree 를 그리시오
(3) (1)에서 구한 grammar G 로부터 강의중에 나왔던 방법을 이용해
L 인식하는 pushdown
automata 를 설계하시오
(4) (3)의 결과를 이용해 스트링 aabbbc 에 대한 parsing 과정을 보이시오
(5) (3)에서 구한 pushdown automata 는 guess-verify parser 이다. 따라서, (4)의 parsing 결과는
left-most derivation 에 의한 top-down parsing 이 된다. 이는 최초 stack 에 시작 심벌을
넣어두고 left-most derivation 을 진행시켜 나가다가(guess), input symbol 과 일치하는 부분이
보이면 스택에서 제거(verify)하는 방식으로 parsing 을 진행한다. 최종적으로, stack 이
비워지게 되면( e 만 남게 되면) parsing 이 끝나게 된다.
반면에 shift-reduce parser 는 right-most derivation 의 역순으로 bottom-up parsing 을 한다.
우선, 최초 stack 에는 아무것도 들어있지 않다( e 만 들어있다).
여기서, shift action 의
의미는 input symbol 을 stack 으로 push 하는 역할을 하고, reduce action 은 stack 의 내용과
A ® w )의 RHS( w )의 역순( w R )이 일치 할 때 stack 의 내용을
production 의 LHS( A )로 바꾸는 것을 의미한다. 따라서, 최종적으로 stack 에 시작심벌이
production(ex.
남게 되면 input string 은 accept 되게 된다. (강의노트 참조)
이러한
내용을
바탕으로
(1)에서
구한
grammar
G 에 해당되는 shift-reduce
parser(pushdown automata)를 설계하시오.
(6) (5)의 결과를 이용해 aabbbc 에 대한 bottom-up parsing 과정을 보이시오
(1)
(2)
S ® AB
A ® aAb | ab
B ® bBc | bc
S Þ AB Þ aAbB Þ aabbB Þ aabbbc
(3)
d (q, e , S ) = {(q, AB)}
d (q, a, a) = {(q, e )}
d (q, e , A) = {(q, aAb), (q, ab)} d (q, b, b) = {(q, e )}
d (q, e , B) = {(q, bBc), (q, bc)} d (q, c, c) = {(q, e )}
(4)
(q, aabbbc, S ) a (q, aabbbc, AB ) a (q, aabbbc, aAbB ) a (q, abbbc, AbB ) a (q, abbbc, abbB )
a (q, bbbc, bbB ) a (q, bbc, bB ) a (q, bc, B ) a (q, bc, bc) a (q, c, c) a (q, e , e )
(5)
d (q, e , BA) = {(q, S )}
d (q, e , bAa) = {(q, A)} d (q, a, e ) = {(q, a)}
d (q, e , ba) = {(q, A)} d (q, b, e ) = {(q, b)}
d (q, e , cBb) = {(q, B)} d (q, c, e ) = {(q, c)}
d (q, e , cb) = {(q, B)}
(6)
(q, aabbbc, e ) a (q, abbbc, a ) a (q, bbbc, aa ) a (q, bbc, baa ) a (q, bbc, Aa ) a (q, bc, bAa )
a (q, bc, A) a (q, c, bA) a (q, e , cbA) a (q, e , BA) a (q, e , S )
5. 다음 문법에 관해 답하시오. [15 점(5:5:5)]
G = ({S , T }, {a, b}, P, S )
ì S ® aSbb | T
P=í
îT ® bTaa | S | e
(1)
e - free 한 G ' 을
설계하시오. 단, start symbol 에는
e - production 이
나타날 수 있다.
(2) (1)에서 unit production 을 제거하시오.
(3) (2)에서 구함 grammar 를 CNF(Chomsky Normal Form)으로 표현하시오.
(1)
{S , T }
G ' = ({S ', S , T }, {a, b}, P, S ')
nullable =
æS '® S |e
ç
P = ç S ® aSbb | T | abb
ç T ® bTaa | S | baa
è
(2)
unit pair = {( S ', S '), ( S , S ), (T , T ), ( S ', S ) ( S , T )}
G ' = ({S ', S , T }, {a, b}, P, S ')
G ' = ({S }, {a, b}, P, S )
æ S ' ® aSbb | bTaa | abb | baa | e
è
ç
P = ç S ® aSbb | bTaa | abb | baa
P = S ® aSbb | bSaa | abb | baa | e
ç T ® aSbb | bTaa | abb | baa
è
(3)
æ S ® Ca ASbb | Cb BSaa | Ca B2 | Cb A2 | e
ç
ç ASbb ® SBbb
ç BSaa ® SAaa
ç
G ' : ç Aaa ® Ca Ca
çB ®C C
b b
ç bb
ç Ca ® a
ç
è Cb ® b
6. 다음 언어
L 이 context-free language 인지 밝히고 증명하시오. (15 점)
L = {a i b j c k | k = max(i, j )}
< pumping lemma >
L be a CFL, $n Î N , such that
if "z Î L, | z |> n then we write z = uvwxy
Let
1)
| vwx |£ n
2)
"x ¹ e , w ¹ e
3)
"i ³ 0, uv i wx i y Î L
L 이 context-free language 라 하자
그렇다면 L = L(G ) 인 context-free grammar G 가 존재한다.
이때, pumping lemma 에 따라
n 를 G 와 관련된 상수라 하자.
z = a nb n c n 라 하자.
pumping lemma 에 따라
z = uvwxy 라 할 수 있다.
조건 1 에 의해 vxy 는 a 와 c 를 동시에 가질 수 없다.
vx 가 c 를 포함
이 경우 uwy 에 포함된 c 의 개수는 n 보다 작게 되고, uwy 에 포함된 a 의 개수는 n 과
Case 1)
같다. 따라서,
uwy Ï L 이 되고 이는 pumping lemma 의 조건 3 에 위배된다
(c 의 개수는 max(a 의 개수, b 의 개수)이므로 c 의 개수
Case 2)
³ a 의 개수 이다)
vx 가 c 를 포함하지 않음
이 경우
uv 2 wx 2 y 에 포함된 c 의 개수는 n 과 같고, a 혹은 b 의 개수는 n 보다 크게 된다.
따라서,
uv 2 wx 2 y Ï L 이 되고 이는 pumping lemma 의 조건 3 에 위배된다
Case 1 과 2 에 의해
L 이 context-free language 가 아니다.
7. 다음 language
L 에 관해 질문에 답하시오. [12 점(8:4)]
L = {x Î {0,1}* | # of 0's in x = # of 1's in x}
(1)
L 을 인식하는 turing machine 을 설계하시오
(2) (1)을 이용해 스트링 0110 이 인식함을 보이시오
(1)
M = ({s, a, b, c, h}, {0,1}, {0,1, X , Y , B}, d , s, B, {h})
(solution 1)
d
:
SYMBOL
STATE
0
1
X
Y
B
s
a, X, R
c, Y, R
s, X, R
s, Y, R
h, B, R
a
a, 0, R
b, Y, L
a, X, R
a, Y, R
-
b
b, 0, L
b, 1, L
b, X, L
b, Y, L
s, B, R
c
b, X, L
c, 1, R
c, X, R
x, Y, R
-
h
-
-
-
-
-
(solution 2)
d
:
state
0
1
B
X
Y
s
(b,X,R) (a,X,R) (h,B,R) -
(s,Y,R)
a
(c,Y,L) (a,1,R) -
-
(a,Y,R)
b
(b,0,R) (c,Y,L) -
-
(b,Y,R)
c
(c,0,L) (c,1,L) -
(s,X,R) (c,Y,L)
h
-
-
-
-
-
(2)
(solution 1)
Bsr 0110 B a BXar110 B a BXbY
s 10 B a BbXY
s 10 B a BsXY
r 10 B a BXsY
r 10 B a BXYsr10 B
a BXYYcr 0 B a BXYYbXB
a BXYbYXB
a BXbYYXB
a BbXYYXB
a BsXYYXB
s
s
s
s
r
a BXsYYXB
a BXYsYXB
a BXYYsXB
r
r
r a BXYYXsB
r a BXYYXBhB
r
(solution 2)
Bsr 0110 B a BXbr110 B a BXcY
s 10 B a BXsY
r 10 B a BXYsr10 B a BXYXar 0 B a BXYXcYB
s
a BXYXsYB
r a BXYXYsB
r a BXYXYBhB
r
8. 다음 각 물음에 답하시오. 단,
A, B Ì å* , A, B ¹ å* ,
A, B ¹ Æ 이다. [13 점(6:7)]
(1) 만약,
A 가 recursive 이면 A 가 B 로 reduce 될 수 있음을 증명하라
(2) 만약, 두 집합의 차 집합인 A - B, B - A 가 각각 recursive 이면 A 가 B 로 reduce 될 수
있음을 증명하라
(1)
x0 Î B , x1 Î B 라 하면, 다음과 같이 f ( x) 를 정의 할 수 있다.
ì x1
f ( x) = í
î x0
if x Î A
if x Ï A
이때, x Î A 이면,
f ( x) Î B 이다.
그리고,
A 가 recursive 이므로 [ x Î A] 도 recursive 하고, f ( x) 도 recursive 하다.
따라서,
f ( x) 는 A 에서 B 로의 reduction function 이라 할 수 있고, A 가 B 로 reduce 될 수
있다.
(2)
x0 Î B , x1 Î B 라 하면, 다음과 같이 g ( x) 를 정의 할 수 있다.
ì x1
ï
g ( x) = í x0
ïx
î
이때,
if x Î A - B
if x Î B - A
otherwise
A - B, B - A 가 recursive 이므로 g ( x) 도 recursive 이다.
x Î A 이면,
g ( x) = x1 이거나
[ g ( x) = x and x Ï A - B ] 이다. 이때 두 경우 모두
g ( x) Î B 가 된다.
x Ï A 이면, g ( x) = x0 이거나
[ g ( x) = x and x Ï B - A] 이다. 이때 두 경우 모두
g ( x) Ï B 가 된다.
따라서,
있다.
g ( x) 는 A 에서 B 로의 reduction function 이라 할 수 있고, A 가 B 로 reduce 될 수
9. 다음 함수들이 primitive recursive 함수임을 보이시오. [12 점(5:7)]
(다음의 primitive recursive 함수들은 사용 가능하다.
add ( x, y ) = x + y
monus ( x, y ) = x - y
if
x ³ y ; otherwise 0
mult ( x, y ) = x * y
이외 다른 함수를 사용할 경우 직접 primitive recursive 함수임을 보여야 함.)
(1)
ì1 if x is even
e( x ) = í
î0 if x is odd
(2)
f ( x) = êë x / 2 úû ( êëa úû 는 n £ a 인 가장 큰 자연수 n )
(1)
e(0) = 1
e( x + 1) = monus (1, e( x))
(2)
f (0) = 0
f ( x + 1) = e( x + 1) + f ( x)
f :N ®N 이
m -recursive function
m -recursive function 임을 보이시오. [10 점]
10.
g ( y, x) = neg (eq ( f ( x), y ))
f -1 ( y ) = m x[ g ( y, x) = 0)]
이고
bijection
이면
f -1
도
11. 다음 문제들에 관하여 본인이 알고 있거나 느끼고 있는 바를 논하시오.
[23 점(3:3:3:3:3:3:3:2)]
(1) Turing 이 생각한 계산 가능하다 함(computable, recursively enumerable)은 무엇인가?
구체적으로 computable 과 non-computable 의 예를 들어 그 차이를 설명하고, 당신이
선택한 예가 의미하는 바는 무엇인지 논하시오
(2)
Decidable(recursive)과
undecidable
에
하다
함은
각각
무엇이고,
computable,
non-
computable 과의 관계는 어떠한가? 또한, decidable 과 undecidable 의 차이를 보여주기
위하여 각각의 경우에 대하여 예를 하나씩 들어서 설명하시오.
(3) Decidable, computable, non-computable 의 3 가지 문제 클래스에서 complement 에 관해 닫혀
있는 클래스는 무엇인가?
(4) (3)의 이유를 설명하시오.
(5) Primitive recursive function 과
임의의 Turing Machine 이
m -recursive
m -recursive
function 의 차이는 minimization 에 있다. 강의 중
function computable 임을 증명하였다. 이 증명에서
가장 중요한 점은 무엇인가? (강의노트 참조)
(6)
우리는
undecidable
과
non-computable
의
증명에
reduction
이라는
기술을
쓰고
있다. Reduction 에 관하여 간단히 설명하고, reduction 을 이용한 증명이 옳은 이유는
무엇인가?
(7) NP-complete 의 정의는 무엇인가? 왜, NP-complete 에 속하는 문제 중 하나만이라도 P 임을
증명하면 모든 NP 가 P 로 되는가? 그 이유를 설명하시오.
(8) Turing 과 Church 의 생각은 맞는가 틀리는가에 대한 본인의 생각을 밝히시오. NP = P 일까
아닐까? 본인의 생각을 밝히시오.
(1)
Turing
Machine
에
의하여
언어(language)
혹은
문제(problem)가
표현되면
computable 이라고 보았다.
computable 의 예, universal language, nonhalting problem
non-computable 의 예: diagonalization language(universal language 의 complement)
또는 halting problem.
non-computable 의 예로서 contradictory self recursion(diagonalization)이 이용되고
있다.(Cantor's diagonal argument)
(2)
Decidable: always halt(total function)
Undecidable: may loop forever for some no instances(partial function)
Decidable 의 예: 아무 문제나 decidable 한 것 하나만 예시하면 된다.(예 sorting^^)
Undecidable 의 예: Universal turing machine, non-halting problem 등
Decidable 의 설명은 항상끝나는 것을 설명하면 된다.
Undecidable 의 설명은 Theorem 9.6 을 Theorem 9.3 과 9.4 로 설명하는 것을 보이면
된다.
단 problem 의 개수가 uncountable 인데 solution 의 개수가 countable 임으로만
설명하면 부분 점수인정.
(3)
decidable 과 non-computable 의 두 가지 클래스
(4)
Theorm 9.3 과 9.4 를 이용해 설명
(5)
Minimization 은 Turing machine(computer)에 존재하는 may loop forever 를 가정하고
있음을 설명하면 된다. 증명에서 Minimization 과 stoptime 의 관계를 설명하면 된다.
(6)
Reduction
의
정의를
하고,
Theorem 9.7
의
증명의
내용을
기술하면
된다.
Reduction 의 방향성에 주의하고, undecidable 이나 non-computable 을 증명하는데 주로
이용된다.
(7)
NP-complete: NP 이고 모든 NP 인 문제들이 이 문제로 polynomial time 에 reduce 되는
문제들 전체의 집합.
모든 NP-complete 문제들은 다른 NP-complete 문제로 polynomial time reduction 될 수
있다. 따라서, 하나의 NP-complete 문제 만이라고 P 임을 증명하면 된다.
(8) 정답없다^^.
아직 증명되지 않은 문제이므로 아무런 답을 써도 좋다.
최광무교수의 생각
Turing 의 thesis: Turing machine, partial rec. function, lambda calculus 등이 모두 같다.
따라서 Turing 의 thesis 는 현재의 수학체제에서는 적절하다고 여겨진다.
그러나
loop forever 이상의 computing 에 대한 새로운 개념이 나온다면 computable 의 범위가
확장될 수도 있다고 생각한다.
그러나 그것이 무엇인지는 아직은 모른다.
P != NP 일것으로 느낀다. 그러나 이역시 증명되지 않았으므로 모른다.
12. 본 강의에 대하여 느낀 점, 바라는 점, 시정되었으면 하는 점등을 적어주세요. [10 점]
2004 Fall
CS322 오토마타 기말고사 (180점)
2004년 12월 17일 PM 4:00-6:00
1. 다음 4개의 finite automata가 있다. (M1 ~ M4)
(1)~(4)에 대해 각각의 string을 accept 하는 automata들을 선택하여라. [20점(5:5:5:5)]
M1
M2
b
a
b
e
a
ab, b
ab, ba
aa, bb
aa, bb
ab, ba
M4
ab
b
M3
bb
e
a
a
e
b
a
(1) e
(2) b
(3) aba
(4) abbb
è
(1) M3
(2) M1
(3) M1, M3, M4
(4) M2, M4
1
b
b
a
a
b
b
a
a
2. 다음의 Theorem을 이용하여 증명을 하시오. [10점(5:5)]
Theorem. Let
A be a nonempty set. Then, the following are equivalent:
+
(A) There is a surjective function f : Z ® A
(B) There is an injective function
g : A ® Z+
(C) A is countable
( where Z+ is the set of positive integer )
Z + ´ Z + 가 countably infinite임을 보여라.
+
(2) 양의 유리수의 집합 Q 가 countably infinite임을 보여라.
(1)
è
Z + ´ Z + 가 countably infinite임을 보이기 위해, 주어진
f : Z + ´ Z + ® Z + 인 injective function을 다음과 같이 구성한다.
f (n, m) = 2n3m
이제 f 가 injective function임을 보이자.
(1)
Theorem에
의해
2n3m = 2 p 3q 라고 하자. n < p 라면, 3m = 2 p - n3q 이기 때문에, 모든 m 에 대해 좌변의 3m
은 홀수이고, 우변은 짝수이기 때문에 모순이 생긴다. 즉, n = p 이어야 한다. 비슷한 방법
으로
m = q 라는 것을 보일 수 있다. 그러므로 주어진 함수는 injective function이다.
(2) 다음과 같은 surjection 함수
g : Z + ´ Z + ® Q + 을 구성하자.
g ( n, m ) = m / n
Z + ´ Z + 가 countably infinite라는 것을 알기 때문에, Theorem에 의해 surjection
+
+
+
함수가 존재 한다. 즉, f : Z ® Z ´ Z 이 존재한다.
+
+
그러면, 합성함수 g o f : Z ® Q 은 surjection이다.
(1)에서
그러므로,
Q + 은 Z + 를 포함하기 때문에, countable이고 infinite이다.
2
3. 다음과 같이 주어진 DFA
M = {Q, S, d , q0 , F } 이 있다. [25점(5:5:5:5:5)]
a
a
a
1
4
b
0
3
b
b
(1)
b
a
2
b
a
5
a
b
M 의 state에 대해 다음과 같이 equivalence relation RM Í Q ´ Q 을 정의하자.
pRM q if and only if
"x Î S* , either d ( p, x) Î F , d (q, x) Î F or d ( p, x) Ï F , d (q, x) Ï F
RM 의 equivalence class들을 구하라.
(2) 위의 equivalence class들을 이용하여 minimal DFA를 그려라.
(state 이름을 equivalence class로 할 것)
(3)
RL Í S* ´ S* 을 다음과 같이 정의하자.
xRL y if and only if "z Î S* , either xz , yz Î L or xz , yz Ï L .
RL 이 equivalence relation임을 증명하시오.
(4)
RL ( M ) 의 equivalence class를 구하시오.
(힌트: regular expression으로 표현하시오.)
(5) 임의의
M 에 대해 RM 과 RL ( M ) 의 관계를 설명하시오.
è
(1)
{0},{1, 2},{3},{4,5}
3
(2)
(3)
a) reflexive
"x Î S* , "z Î S* , xz Î L( M ) or xz Ï L( M ) .
\ RL ( M ) is reflexive
b) symmetric
xRL ( M ) y Þ xz , yz Î L( M ) or xz , yz Ï L( M )
Þ yz , xz Î L( M ) or yz , xz Ï L( M )
Þ yRL ( M ) x
\ RL ( M ) is symmetric
c) transitive
x1 RL ( M ) x2 , x2 RL ( M ) y3 이라 하자.
z Î S* 에 대해
x1 Î zL( M ) Þ x2 z Î L( M ) Q x1 RL ( M ) x2
임의의
Þ x3 z Î L( M ) Q x2 RL ( M ) x3
마찬가지로
x1 z Ï L( M ) 이면 x3 z Ï L( M ) 이 되므로 x1 RL ( M ) x3 이다.
\ RL ( M ) 은 transitive하다.
a)~c) 이므로
(4)
RL ( M ) 은 equivalence relation 이다.
e , a + b, (a + b)a(a + b)* , (a + b)b(a + b)*
(5)
RM 은 final state에 도달할 수 있느냐는 관점에서 state를 최대한 합쳐 놓은 것이고
RL ( M ) 은 L( M ) 에 속할 수 있느냐는 관점에서 string들을 최대한 합쳐놓은 것이다. M 에
서 final state에 도달하면
L( M ) 에 속하게 되므로 RM 의 equivalence partition과 RL ( M )
의 equivalence partition은 항상 isomorphic 하다.
4
4. 아래의 ambiguous grammar
G = ({B, I }, {Ù, Ú, p, q, r}, P, B ) 는 boolean logic형태의
expression을 생성한다. [15점(10:5)]
B ® BÚ B|BÙB|I
I ® p|q|r
(1) 다음을 만족하는 unambiguous한 grammar
G1 을 만드시오.
- G 에서와 같은 string을 생성해야 한다.
- Ù 에 Ú 보다 높은 precedence를 부여한다.
- Ù 와 Ú 에 대한 left-associativity를 유도해야 한다.
(2) binary operator 인 “exclusive or”를 나타내기 위해 Ä 를 추가한다. 즉, 이전에 정의한
grammar 에 Ä 를 포함시켜 확장하시오. (단, Ä 는 Ú 와 같은 레벨의 precedence 를 갖고
left-associative 하다.)
è
(1)
B ® B ÚT | T
T ®T Ù I | I
I ® p|q|r
(2)
B ® B Ú T | B ÄT | T
T ®T Ù I | I
I ® p|q|r
5
5. 다음의 언어에 대해 질문에 답하시오. [10점(5:5)]
L = {a i b j c k | i = k or j = k , i, j , k ³ 0}
(1)
L = L(G ) 인 CFG G 를 만드시오.
(2) (1)에서 구한 grammar가 ambiguous함을 보이시오.
è
(1)
L = La È Lb , where,
La = {a i b*c i | i ³ 0}
Lb = {a*bi c i | i ³ 0}
이제, S 를 grammar G 의 start symbol이라고 하고, S a , Sb 를 각각 La , Lb 의 grammar에
대한 start symbol이라고 하자.
L = La È Lb 이므로, 우리는 다음과 같은 rule을 더할 수 있다.
S ® S a , S ® Sb
그리고 La 에 대해서는
S a ® aS a c | B
B ® bB | e
를 만들어 낼 수 있고,
Lb 에 대해서는
S a ® ASbc c
A ® aB | e
Sbc ® bSbc | e
그러므로 구하고자 grammar G 는 다음과 같이 정의된다.
G = ({S , S a , Sb , A, B, Sbc }, {a, b, c}, P, S )
where
P is
S ® S a | Sb
S a ® aS a c | B
B ® bB | e
S a ® ASbc c
A ® aB | e
Sbc ® bSbc | e
6
(2)
e , abc, aabbcc
등의 string들에서 두 개의 parse tree가 나옴을 보이면 된다.
지고 생각해 보면 다음의 두 tree가 유도된다.
S
S
¯
Sa
¯
Sb
¯
B
� �
A Sbc
¯
¯
¯
e
e
e
7
e을
가
6. 다음 문법을 Chomsky Normal Form으로 바꾸시오. (각 과정도 밝혀야 함) [10점]
S ® e | aAB | B
A ® a | Ba | SB
B ® bA | B | e
è
Step 1) Remove nullable rules.
S , A, B are all nullable
S ® aAB | aA | aB | a | B | e
A ® a | Ba | SB | S | B
B ® bA | b | B
Step 2) Remove unit productions
S Þ* {B}, A Þ* {S , B}
S ® aAB | aA | aB | a | bA | b | e
A ® a | Ba | SB | aAB | aA | aB | bA | b
B ® bA | b
Step 3) Remove terminals from right hand sides of rules containing more than one
symbol.
We introduce
Ta for a and Tb for b
S ® Ta AB | Ta A | Ta B | a | Tb A | b | e
A ® a | BTa | SB | Ta AB | Ta A | Ta B | Tb A | b
B ® Tb A | b
Ta ® a
Tb ® b
Step 4) Shorten rules with right hand sides with 3 or more non-terminals
S ® Ta X 1 | Ta A | Ta B | a | Tb A | b | e
X 1 ® AB
A ® a | BTa | SB | Ta AB | Ta A | Ta B | Tb A | b
B ® Tb A | b
Ta ® a
Tb ® b
8
7. G 가 Chomsky Normal Form (CNF) 이라 하자.
string
L(G ) 에 속하는 길이가 n 인( n ³ 1 )
w 에 대하여, w를 구하기까지 몇 번의 derivation이 필요한 지를 n 과 관련된 수식
의 형태로 구하고 이를 증명하시오. [10점]
(예제)
3n 2 + 5n + 2
è
2n - 1
증명)
임의의
w 에 관한 parse tree T 는 다음의 특성들을 지닌다.
1. T 는 n 개의 leaf nodes를 갖는다.
2. 각각의 leaf nodes는 어떤 internal node의 only child이다.
3. 모든 internal node는 leaf node의 parent node인 경우만 제외하면 정확히 두 개의
internal node를 children으로 갖는다.
모든 sentence에서 internal node의 수는 대응하는 derivation의 수와 같다.
node 또한
T 의 internal
w 의 derivation 수에 대응한다. T 의 internal node의 개수를 세기 위해서, 먼
저 n 개의 “single-child” leaves를 T 에서 제거하여 T ¢ 을 얻는다. T ¢ 는 n 개의 leaves를
갖는 full binary tree이다. Full binary tree T ¢ 는 n - 1 개의 internal node를 갖는다. (이에
대한 증명은 structural induction으로 가능하다. 여기서는 생략) 따라서 T 는 2n - 1 개의
internal node를 가짐을 알 수 있다. T 가 w 의 parse tree였다는 사실로부터, w 는 2n - 1
번의 derivation step을 갖는다는 것을 알 수 있다.
9
8. 다음 언어 L이 CFL인지를 밝히고 formal하게 증명하시오. [15점]
L = {a i b*c j d k | i = j and k > 2 j + 1}
è
L 이 context free라고 가정하자. M 과 K 라는 변수들을 L 과 관련된 context free
w 를 a M c M d 2 M + 2 로 놓으면, w 는 L 에 속하고,
| w |> M > K 가 성립한다. Pumping lemma에 따라, w = uvxyz , | vxy | £ M , | vy | > 0 이고,
pumping lemma를 위해 도입하자.
i 에 대해, uv i xy i z 가 L 에 속한다고 하자. 이에 관한 다양한 경우들이 존재한다.
모든
Case 1)
v 혹은 y 가 여러 가지 타입의 심볼들( a, c, d )을 갖는 경우
이 경우,
uv 2 xy 2 z 는 a 들 앞에 c 를 갖거나 c 들 앞에 d 를 갖게 된다. 그러므로
uv 2 xy 2 z 는 L 에 속할 수 없다.
Case 2) v 와 y 가 a 만을 갖는 경우
이 경우,
uv 2 xy 2 z 는 L 에 속할 수 없다. 왜냐하면 a 의 개수는 증가하지만, c 의 개수
는 증가하지 않기 때문이다. (첫 번째 constraint를 어기게 된다.)
Case 3)
v 와 y 가 c 만을 갖는 경우
이 경우,
uv 2 xy 2 z 는 L 에 속할 수 없다. 왜냐하면 c 의 개수는 증가하지만, a 의 개수
는 증가하지 않기 때문이다. (첫 번째 constraint를 어기게 된다.)
Case 4)
v 와 y 가 d 만을 갖는 경우
이 경우,
uv 0 xy 0 z 는 L 에 속할 수 없다. 왜냐하면 d 의 개수는 감소하지만, a 나 c 의
개수는 감소하지 않기 때문이다. (두 번째 constraint를 어기게 된다.)
Case 5)
v 와 y 가 a 와 c 만을 갖는 경우
이 경우,
uv 2 xy 2 z 는 L 에 속할 수 없다. 왜냐하면 c 의 개수는 증가하지만, d 의 개수
는 증가하지 않기 때문이다. (두 번째 constraint를 어기게 된다.)
Case 6)
v 와 y 가 c 와 d 만을 갖는 경우
이 경우,
uv 2 xy 2 z 는 L 에 속할 수 없다. 왜냐하면 c 의 개수는 증가하지만, a 의 개수
는 증가하지 않기 때문이다. (첫 번째 constraint를 어기게 된다.)
| vxy | £ M 이기 때문에, vxy 가 a 와 c 와 d 를 모두 포함하는 것은 불가능하다.
모든 경우가 고려되었고, 모두 contradiction에 도달하였으므로,
L 은 context free가 아니
다.
주의:
w 를 고를 때, b 를 넣게 되면 안 된다. 이 경우 b 는 항상 pump될 수 있기 때문에,
contradiction에 도달할 수 없다.
10
L Í (a + b)* 이 있을 때 L 에 속하는 string w 에 대해서 w 에 ab 가 나타날 때마
다 a 와 b 를 바꿔준 string w¢ 으로 이루어진 언어를 L¢ 이라 하자. L¢ 이 CFL 인지 답하
9. CFL
고 이를 증명하시오. [10점]
(예제)
L = {aabb, ababab, bababa}
® L¢ = {abab, bababa, bbabaa}
(힌트: homomorphism과 CFL 및 regular language의 closure property를 이용하시오.
Homomorphism이란 어떤 string에 대해서 string의 특정 symbol을 0개 이상의 다른
symbol로 substitute하는 함수를 말한다. CFL은 homomorphism, inverse homomorphism
에서 닫혀있다.)
è
L¢ 은 CFL 이다.
증명)
다음과 같은 homomorphism
h1 과 h2 를 정의한다.
h1 (a ) = a, h1 (b) = b, h1 (c) = ab
h2 (a ) = a, h2 (b) = b, h2 (c) = ba
그리고
R 을 다음과 같이 정의하자.
R = (a + b + c)* - (a + b + c)* ab(a + b + c)*
-1
그러면, L¢ = h2 ( h1 ( L) Ç R ) 임을 알 수 있다. 그런데 CFL은 homomorphism, inverse
homomorphism,
regular
set과의
intersection에
-1
1
L¢ = h2 (h ( L) Ç R ) 은 CFL이다.
11
대해서
닫혀있기
때문에,
10. PDA
M 을 다음과 같이 정의하자. [20점(5:5:5:5)]
M = ({q0 , q1 , q2 },{a, b, c, d },{a}, d , q0 , a,{q2 })
d is
d (qo , a, e ) = {(q0 , a)}
d (qo , e , e ) = {(q1 , e )}
d (q1 , b, a) = {(q1 , e )}
d (q1 , d , e ) = {(q2 , e )}
d (q2 , c, a) = {(q2 , e )}
where
(1) L( M ) 을 집합의 형태로 기술하시오.
{a i b j | i = j + 1, i ³ 0}
(2) N ( M ) 을 집합의 형태로 기술하시오.
(3) N ( M ¢) = L( M ) 인 M ¢ 을 정의하시오.
(4) L( M ¢) = N ( M ) 인 M ¢ 을 정의하시오.
예제)
è
{a i b j dc k | i + 1 ³ j + k , i, j , k ³ 0}
i j
k
i j
(2) {a b dc | i + 1 = j + k , i, j , k ³ 0} È {a b | i + 1 = j , i, j ³ 0}
(1)
(3)
M ¢ = ({q0¢ , q0 , q1 , q2 },{a, b, c, d },{a, Z }, d , q0¢ , Z , Æ)
d is
d (qo¢ , e , Z ) = {(q0 , aZ )}
d (qo , a, e ) = {(q0 , a)}
d (qo , e , e ) = {(q1 , e )}
d (q1 , b, a) = {(q1 , e )}
d (q1 , d , e ) = {(q2 , e )}
d (q2 , c, a) = {(q2 , e )}
d (q2 , e , a) = {(q2 , e )}
d (q2 , e , Z ) = {(q2 , e )}
where
(4)
M ¢ = ({q0¢ , q0 , q1 , q2 , qF },{a, b, c, d },{a, Z }, d , q0¢ , Z ,{qF })
where
d
is
12
d (qo¢ , a, Z ) = {(q0 , aZ )}
d (qo , a, e ) = {(q0 , a)}
d (qo , e , e ) = {(q1 , e )}
d (q1 , b, a) = {(q1 , e )}
d (q1 , d , e ) = {(q2 , e )}
d (q1 , e , Z ) = {(qF , Z )}
d (q2 , c, a) = {(q2 , e )}
d (q2 , e , Z ) = {(qF , Z )}
13
11. 다음의 언어
L 에 대해 질문에 답하시오. [15점(10:5)]
{a n b m | 1 £ n £ m}
(1)
L = L( M ) 인 Turing machine M 을 설계하시오.
(2) (1)에서 정의한
M 이 aabbb 을 인식함을 보이시오.
è
(1)
(2)
14
12. 다음 질문에 답하시오. [20점 (5:5:5:5)]
(1) P는 왜 complement에 대해 닫혀있고, 왜 NP는 그렇지 않은가?
(2) 문제를 해결하는데 있어서 nondeterminism이 가지는 가장 큰 장점은 무엇이며 어떤
상황에서 적용될 수 있는가?
(3) NP와 NP-complete, NP-hard의 차이점에 관해 논하시오.
(4) Turing-Church Thesis의 정당성에 대해 논하시오.
è
(1)
P의 경우에, 한 알고리즘이 deterministic 하게 language를 decide할 수 있다면 이 알고리
즘은 같은 time complexity로 complement를 decide할 수 있기 때문에
(단지 accept
state와 reject state를 바꾸면 된다) complement에 대해 닫혀있다고 할 수 있다. 만약
P=NP라면
이는
procedure에서의
NP에도
적용되지만
accepting,
만약
rejecting
P
¹ NP라면 nondeterministic decision
mechanism의
비대칭성으로
인해
NP는
complement에 대해 닫혀있지 않다. Reject를 하기 위해서는 모든 nondeterministic한
instance들이 reject되어야 한다. 따라서 이 경우에 accept/reject state를 바꾸는 것은 적
절하지 않다.
(2)
문제를 해결하는 것은 한 language를 TM으로 decide하는 것과 동일하다고 볼 수 있다.
(만약 그 문제가 unsolvable이면 그에 대응되는 language는 recursive하지 않다). TM에서
Nondeterminsism은 답의 형태가 guess되고 이 답이 정확한지를 확인하기 위해 test되어야
하는 유형의 문제들을 해결하는 TM에서 사용된다. 이 ‘guess’는 search space에서 하나의
지점을 정의한다. 이는 알고리즘을 간결하고 직관적으로 기술할 수 있게 한다. NP
Complete problem이 하나의 예이다.
(3)
NP는 nondeterministic TM으로 polynomial time에 풀 수 있는 문제의 집합이다.
NP-complete는 NP의 부분집합으로써 NP의 모든 문제들이 polynomial time에 reduce될
수 있는 NP중 가장 어려운 문제들의 집합이다. 따라서 NP-complete에 속하는 문제 중 한
문제라도 P에 속하는 것이 증명이 되면 P=NP를 증명할 수 있게 된다. 대표적인 NPcomplete문제로는 SAT문제가 있다.
NP-hard는 NP에 속하지 않아도 되는 NP-complete의 superset으로써 NP의 모든 문제들
이 polynomial time에 reduce될 수 있는 문제들의 집합이다.
15
(4)
Turing-Church의 Thesis은 Turing Machine 및 Church의 Lambda Calculus에서 계산 가
능한 것이 computability의 정의라는 가정이다. 이 Thesis에서는 Turing Machine과
Lambda
Calculus에서
m - recursive function ,
계산
가능한
것이
같다는
것을
증명하였고
또한
이외에도
type 0 grammar, combinaroty logic등 지금까지 고안된 수많은 다
른 계산 체계에서 풀 수 있는 문제도 Turing Machine이나 Lambda Calulus 보여지고 있다.
따라서 증명되지는 않았지만, 계산이란 것이 미리 정의되어 있는 것이 아니므로 계산 가능
의 범위 Turing Machine으로 보는 것은 타당하다고 할 수 있다.
16
Final Exam
CS322/KAIST 2005 `
¦
j
þg
Fº
Á
2005¸
12
4
Z 20{
9
1
Problem 1 (15pt)
F = {f : N → N | f H
–
ß
é¸
›x
£
7†
Ê
<º
Ã}
Œ
#
lf
" f –
ß
é¸
›x
£
7
H

‫כ‬
_
_
pH
,
x < ys
€ f (x) < f (y)
|F | uncountablee
”¦
`x
£
7
î
"
r¸
š.
Solution:
D = {d : N → {1, 2} | d
H
Ê
<
†º
Ã}
A<
ü ú
°r
É
“ injective Ê
<
†º
à S : D → F r
>
”
FÇ
ô
.
S(d)(n) =
n
X
d(i)
i=0
¦
“Ð
–, |F | ≥ |D|s
9 Œ
#
lf
" |D| > |N|s
¼
ÙÐ
–, F i
%
r uncountables
.
2
Problem 2 (15pt) context-free ƒQ
#
“ L = {ww R | w ∈ Σ∗ } regular ƒQ
#
c
¨
|
9
€¹
‫כ‬æ
Ør
ì¸
›
|
s |Σ| ≤ 1 ”
e¦
`Ð
˜
s
r¸
š.
Solution:
• Σ = ∅:
L = {}“
r
É regular.
• |Σ| = 1:
L = {w | |w|“
r
ɕ
Œ
ܼ
Ã} = L((aa)∗ ) Œ
#
lf
" Σ = {a}. ¦
“Ð
– L“
r
É regular.
• |Σ| > 1:
regluar ƒQ
#
\/
@Ç
ô pumping lemma\
¦
h
&x
6
. Ò
ÅQ
#
” n\
/
@
Œ
#, w =
an bban ∈ L Œ
#
lf
" a, b ∈ Σ, a 6= b. xy 0 z = xz ∈
/ L. ¦
“Ð
– L“
r
É regular
m
.
3
Problem 3 (10pt) §
£
6 H
ë
O
Z¦
` ¸
—H
Ž non-terminal[
t
þ
s useful
¦
“ x
l
1x
p
1Ç
ô ƒ
Q
#¦
\t
q
Ò
í
$
H
H
ë
O
Z¼
ÜÐ
–
Š
8
¨
r¸
š.
S → aEb | aaC | AA
A → BC | bS | b
B → aB | a
C → Ca | Cb
D→a|c
E → CE
Solution: º
Ä
‚ generating non-terminal`
¦
Ô
1
¹
Ð
˜
€,
A, B, D, S
non-generating non-terminalõ
ª
Õ
‫כ‬
st
þ
[Q
#–
ß
ç rule`
¦
j
]
€
S → AA
A → bS | b
B → aB | a
D→a|c
sj
] reachable non-terminal[
t
þ¦
`Ô
1
¹
Ð
˜
€,
S, A
¦
“Ð
–j
þx
á
7
h
&¼
ÜÐ
–
A
_ ruleë
–
ߙ
Œ
zH

.
S → AA
A → bS | b
4
Problem 4 (20pt) §
£
6
ƒQ
# CFL“
t

tÍ
ø
ó–
ß
é
¦
“, x
£
7
î
"¸
¢H
Í
ø
ìx
£
7
r¸
š.
1. (7pt) L = {1010010001 · · ·10i 1 | i ≥ 1}
Solution: Ò
ÅQ
#
” n\
/
@
K z = 1010010001 · · · 10n 1–
И
þ
×
. 0 < |vx| ≤
2
2
ns
¼
ÙÐ
– |z| < |uv wx y| ≤ |z| + n. ª
ÕQ
z
§
£
6¼
ÜÐ
–
| Lî
–
ß
_ string“
r
É
´
U
s |z| + n + 2s
. ª
ÕQ
¼
ÙÐ
– uv 2 wx2 y ∈
/L
2. (5pt) L = {an bm cm+n | n, m ≥ 0}
Solution: §
£
6
õ ú
°r
É
“ CFG\

_
K Ls
t
q
Ò
í
$ 0
x
p
.
S → aSc | B
B → bBc | 3. (8pt) L = {ai bj ck dl | i = k ∧ j = l}
Solution: Ò
ÅQ
#
” n\
/
@
K z = a n bn cn d n ¼
ÜÐ
–˜
þ
×
. vy
H
º
¿t
¸
¢H

Ç
ôt
symbol–
Ð
sX
,
”
.
• Ç
ôt
symbol–
Ð
sX
,
”
â
º
Ä: uwy
H
Ç
ôt
symbolë
–
ß n˜
Ð
•
Œ
r
É
“

Sº
Ö
ß
ëu
p
¸
š
>&
÷Q
# L_
¶
é
"è
™ m
>a
)

.
• º
¿t
symbol–
Ð sX
,
” â
º
Ä: º
Ä
‚ a,b–
Ð sX
,
” â
º
Ä uwy
H
a_
̺
à cÌ
º
ÃÐ
˜
•
Œ

f
" L_
¶
é
"è
™ m
. r
É

â
º
ĸ
•
qw
p
5
>
uwy ∈
/ Le
”¦
`Ð
˜
9
{º
Ã
”
e
.
5
Problem 5 (15pt) §
£
6
ƒQ
#¦
\Î
Ã
~
t
þ
[
sH
 PDA\
¦
¨
½
í
$
¦
“x
l
1•
Œ
¶
é
"
o¦
\
O
[
î
"
r¸
š.
L = {ai bj | 2i 6= 3j where i, j ∈ N}
Solution: 9
x¦
×r
É
“ `
¦
_
pÇ
ô
.
_/a/_
a/_/a
s
s1
_/_/a
p_a
_/a/_
b/_/_
_/_/_
q
b/_/_
b/a/_
q1
_/a/_
6
_/_/_
_/a/_
p_b
_/_/_
q2
Problem 6 (20pt) Œ
#H
c
‹
Fñ
<
ü—
Œ
{H
c
‹
Fñ
Ð
–¨
½
í
$a
)
¸
—H
Ž string_
9
|Ë
+
½¦
` P
¦
“ x ∈ P
\/
@Ç
ô mirror image, mirror[x]\
¦
§
£
6
õ ú
°
s
ñ
&
_
i
%¦
`:
M, t
ü
Ó§
£
6

\š
ú
²
r¸
š.
mirror[()(())] = (())()
mirror[(()())] = (()())
mirror[()))] = ((()
mirror[))((] =))((
1. (5pt) `
¦
j
]@
üÇ
ô¸
—H
Ž x ∈ P
\/
@
Œ
# mirror[x] 6= reverse[x]e
”¦
`x
£
7
î
"
r¸
š.
Solution: mirror[x]
H
reverse[x]Ê
ê•
Œ
y symbol`
¦
, Í
ø
ì/
@Ó
½
~Ó
¾
† symbol–
Ð
H
õ
‫כ‬
s¼
ÙÐ
–¸
—H
Ž reverse[x]ü
< mirror[x]
H
s

sœ
©
 ú
°¦
`º
Ã
O
\
.
2. (7pt) M = {x ∈ P | x = mirror[x]}
i
%¦
`:
M, M s CFLe
”¦
`x
£
7
î
"
r¸
š.
Solution: §
£
6
_ grammar M ¦
`t
q
Ò
í
$Ç
ô
.
S → (S) | )S( | 3. (8pt) M B = {x ∈ M | x_
c
‹
Fñ
¦
\
sH
çA
þ
+¦
`
sr
ê
.}
i
%¦
`:
M M B
CFLs
”
_¦
`Ð
˜
s
r¸
š.
Solution: Ò
ÅQ
#
” n\
/
@
K, z = (n )n (n )n ¦
`˜
þ
×Ç
ô
. º
Ä
‚ vwx Ç
ôt
symbol–
Ж
ß
ë
sX
,
”
â
º
ÄH
 uwy_
P
\¦
“—
Œ
{H
c
‹
Fñ
º
à 
ú
´
t§
ú
·
uwy ∈
/
M B. º
¿t
symbol–
Ð
sX
,
”
â
º
Ħ
\Ð
˜
€:
• vwx ƒ
%§
£
6 ( n )n 
\q
Å
5
H

â
º
Ä, uwy ∈ M s
lA
0
Kf
"H
 ( k )k (n )n J
1
g
k k n n
sQ
#
9, Œ
#
lf
" k < n. ª
Õ
<
X uwy = ( ) ( ) 6= (n )n (k )k =
mirror[uwy]. ¦
“Ð
– uwy ∈
/ MB
• vwx ƒ
%§
£
6 ) n (n 
\q
Å
5
H
 â
º
Ä, uwy ú
°r
É
Ҽ
Ã
_
P
\¦
“—
Œ
{H
c
‹
Fñ
¦
\ t
9
€ ( n )k (k )n J
1
g
sQ
#
Ç
ô
. Œ
#
lf
" k < n. ª
Õ
<
X uwy
H
balanced m¼
ÙÐ
– uwy ∈
/ M B.
• vwx '
+
_ ( n )n 
\q
Å
5
H

â
º
ÄH
, ƒ
%§
£
6
â
º
Ä<
ü»
Ä
.
7
Problem 7 (10pt) Ê
<
†º
à f : {a, b}+ → {a, b}+¦
\
§
£
6
õ ú
°
s
ñ
&
_
. 9
{
4
§
+
x ∈ {a, b} 
\/
@
K f (x)
H
xî
–
ß
_¸
—H
Ž ab\
¦
bb–
Ð
H
õ strings
. ¤
£
7,
f (aab) = abb
f (abbaaba) = bbbabba
..
.
x ∈ {a, b}+¦
\
9
{
4
§¼
ÜÐ
–Î
Ã
~
x\
¦
f (x)–
Ð/
@‰
^
¦
“ f (x)_
right-most symbol\

f
"
3
"Ò
ÆH
 Turing machine`
¦
¦
“–
ß
î
¦
“, x
l
1•
Œ
¶
é
"
o¦
\
O
[
î
"
r¸
š.
Solution: scan
€f
" ab_
b\
¦
Ð
˜
€ &
÷t
[
a@
/
’ b\
¦
¼
æ¦
“ ab §
£
6
symbol–
Ð
”
Ÿ
'Ç
ô
. scan
H
æ
×
‘ tape\

Ô
Ø
€ symbols
¸
šH
M
B
/¼
ÜÐ
–
t
[
;
2
•
.
B/B/L
b/b/R
0
a/a/R
a/a/R
1
B/B/L
b/b/L
H
B/B/L
2
a/b/R
b/b/R
B/B/L
3
8
Problem 8 (20pt) §
£
6t
ü
Ó§
£
6
\š
ú
²
r¸
š.
1. (10pt) L = {0n 1n 2n | n ∈ N} ¦
`t
q
Ò
í
$
H
 unrestricted grammar\
¦
a
¢
í
$
r¸
š. (
AÒ
ÅQ
#
” production rule`
¦
¼
æ
t§
ú
·
¸
•º
ÁÓ
½
~
.)
S → 0SA1 A2 | Solution:
S → 0SA1 A2 | A2 A1 → A 1 A2
0A1 → 01
1A1 → 11
1A2 → 12
2A2 → 22
2. (10pt) 2s
œ
©

_
”
e
_
_ k\
/
@
K, Lk = {an0 an1 ...ank−1 ank | n ∈ N} ¦
`t
q
Ò
í
$
H
 unrestricted grammar\
¦
j
]
r
r¸
š.
Solution:
S → a0 SA1 A2 ...Ak | Aj Ai → Ai Aj , forall 1 ≤ i < j ≤ k
ai−1 Ai → ai−1 ai , forall 1 ≤ i ≤ k
ai Ai → ai ai , forall 1 ≤ i ≤ k
9
Problem 9 (15pt) §
£
6
\š
ú
²
r¸
š.
1. (5pt) fibonacci Ê
<
†º
à primitive recursivee
”¦
`Ð
˜
s
r¸
š.(+,× ƒ–
ß
í
9
xœ
©

º
Ã‫כ‬
ú
°
x
60
x
p)
Solution:
G(0) = (0, 1)
G(n + 1) = (π22 ◦ G(n), π12 ◦ G(n) + π12 ◦ G(n))
F ib(n) = π22 ◦ G(n)
.n
..
2. (5pt) f (n) = nn
, º
Ä

\f
" ns
n + 1
–
ß
è
. f primitive recursivee
”¦
`Ð
˜
s
r¸
š. (+,× ƒ–
ß
í
9
xœ
©
º
Ã‫כ‬
ú
°
x
60
x
p)
Solution:
h(n, 0) = 1
h(n, m + 1) = h(n, m) × n
g(n, 0) = n
g(n, m + 1) = h(n, g(n, m))
f (n) = g(n, n)
√
˙ ”¦
`Ð
˜
s
r¸
š. (×, −
ƒ–
ß
í
9
xœ
©
º
Ã
3. (5pt) f (n) = d n e, f µ-recursivee
‫כ‬
ú
°
x
60
x
p)
Solution:
˙ 2 = 0]
f (n) = µx.[n−x
10
Problem 10 (20pt) §
£
6 Ls
undecidable†
Ê
<¦
`Ð
˜
s
r¸
š.
L = {(M, w) | M s w\
¦
Î
Ã
~
f
"ƒ
%
o
H
x
l
1–
ß
î M
_¸
—H
Ž state\
¦
Ó
½
~H
ëÇ
ô
.}
Solution: Ls
decidable
¦
“ &
ñ
. ¤
£
7, (M, w)\
¦
Î
Ã
~
f
" M
s w\
¦
Î
Ã
~
f
"ƒ
%
o
H
x
l
1–
ß
î¸
—H
Ž state\
¦
Ó
½
~H
ë
H

t¦
\»
ÄÇ
ô
r–
ß
ç/
?
\š
ú
²
KÒ
ÅH
 TM
V ”
e
¦
“ &
ñ
.
s¦
\
sx
6
Kf
" halting problem`
¦
decidable
>¦
Ûº
Ã
”
e
. º
Ä
‚x
á
7Ñ
«
Ž
¦
\
¦
“
H

”
e
_
_ (M, w)\
¦
Î
Ã
~
f
"
A<
ü ú
°
s M 0¦
`–
ß
ëH
Ž
.
• M
_ state q1 , . . . , qn 9
{:
M, s1 , . . . , sn ¦
`Ò
Æô
Ç
. Γ\
¸
•
lr
>
” M
\H

O
\
3
%
~ #\
¦
Ò
Æô
Ç
.
• M
_¸
—H
Žx
á
7Ñ
«œ
©

I qh 
\/
@
K δ(qh , X) = (s1 , #, R) Ò
Æ, Œ
#
lf
" X
H
¸
—H
Ž
lr
>
”
_ tape symbol[
t
þ(#]
j@
ü)
• 1 ≤ i ≤ n\
/
@
Kf
" δ(si , X) = (qi , #, L), δ(qi , #) = (si+1 , #, R). ¦
\8
Ç
ô
. Œ
#
lf
" X
H
#`
¦
í
ŸÊ
<
†Ç
ô¸
—H
Ž tape symbol.
A
0
_ M 0r
É
“ M
sx
á
7Ñ
«œ
©

I
\
sÔ
Ø
€ s 1 → q1 → s2 → · · · → q n H
í¼
ÜÐ
– state
o
¦
\
9
{¼
Ü
†
. ¤
£
7, M 0 r
É
“ M
sx
á
7Ñ
«
€, ª
Õ
o¦
“x
á
7Ñ
«É
+
½
â
º
ā
\–
ß
ë¸
—H
Ž state\
¦
Ó
½
~H
ëÇ
ô
. ª
Õ
Af
" V (M 0 , w)\
¦
9
{
4
§¼
ÜÐ
–Î
Ã
~
¸
—H
Ž state\
¦
Ó
½
~H
ë
H

t¦
\˜
ú
·
9
Ò
Å
€ (M, w) x
á
7Ñ
«0
x
pÇ
ô
t¦
\˜
ú
·
>a
)

. V decidables
¼
ÙÐ
– (M, w)_
x
á
7
Ñ
«0
x
p
í
$¦
` decidable
>˜
ú
·º
Ã
”
e
. ª
ÕQ
halting problem“
r
É undecidables
¼
ÙÐ
–¸
—H
í. ¦
“Ð
– L`
¦
undecidables
.
11
CS322 2006 e
K
Ӕ
±
§
k
™
: 12/19 ›
ïÑ
ñ 4:00
ך
‘
*
¿: 1501 œ
»ž
‫כ‬
â"
ט
‘
+
™
2006¸
12
4 31{
Z
9
†
Æ
<

2
s
§
£
H]
ë
j
ñ &
Ã
h
º
1
2
3
4
5
6
7
8
9
10
x&
ú
8
h
1
Problem 1 (15 pt) L(ab + b∗ a∗ )\
¦ ~
Î
Ã
[
ts
þ

H ǫ-NFA\
¦ Õ
ªo
“
¦, s
\
¦ mini
mized DFA–
Ё
¨
Š
8
r
š
¸.
Solution
ǫ-NFA
H,
q1
b
q2
a
q0
a
b
_
q3
_
q4
minimized DFA
H,
b
14
2
a
034
a
b
a
b
a
34
2
4
a,b
a,b
trap
b
Problem 2 (6+7+7 pt) Å
Ò#
Q”
ë
HZ
\
O
@
/K
y
•y
Œ
•ë
Œ
H]
j ‫כ‬
¹½
¨

H@
/–
Ðë
HZ
O
¨
Š`
8
¦
r
š
¸.
1. useless symbol`
¦]
j
r
š
¸
S → a | aA | B | C
A → aB | ǫ
B → Aa
C → cCD
D → ddd
Solution
non-generating: C, non-reachable: D.
S → a | aA | B
A → aB | ǫ
B → Aa
2. ǫ-production`
¦]
j
r
š
¸.
S → aSa | AB
A → bAc | ǫ
B → CBd | ǫ
C → bC | ǫ
Solution
¸¿
—
º
nullable.
S → aSa | AB | aa | A | B
A → bAc | bc
B → CBd | Bd | Cd | d
C → bC | b
3. unit-production`
¦]
j
r
š
¸.
S → Ab | B
A → AA | bc
B → C | aA
C → bS | A | a
Solution non-trivial unit pair
H (S, B), (S, C), (S, A), (B, C), (B, A), (C, A)
S → Ab | AA | bc | aA | bS | a
A → AA | bc
B → aA | AA | bc | bS | a
C → bS | a | AA | bc
3
Problem 3 (5+5 pt) 6
§ language\
£

K{
œ
©

H regular expression`
¦½
¨
r
¸. (Σ = {0, 1})
š
1. ë
H
\
\
P
"
fƒ
5
q&
Å
Ü
h
¼–
Ð

H 0_
Ì
Ã
º
Hƒ
]
j
3_
C
Ã
º“
ë
H
\
P
—
_
¸e
. (K
”
{
œ
©

H"
¶™
é
è_
\
V: 11, 0001, 1000111000000, . . . )
Solution
1∗ ((000)∗ 1∗ )∗
2. 0s
‹
•Ã
Œ
º
“
¦, 1s
f
ËÃ
.
º

H
H
ë
\
_
P
—
¸e
.
”
Solution DFA\
¦Õ
ªo
“
¦ƒ
w
~
n
Ó&
½
d
ñ
`
”
¦
¦
Û#
Q?
/€
, (0(11)*0 + (0(11)*10
+ 1)(00 + 01(11)*10)*(01(11)*0+1))*(0(11)*10 + 1)(00 + 01(11)*10)*
4
Problem 4 (10 pt) 6
§ƒ
£
#
Q_
deterministic PDA\
¦½
¨
r
š
¸.
L = {an b2m | n = m or n = m + 2}
Solution
r ǫ`
É
¦
è
sm
­
.
A
ª
Õa
>\
Ë
"
f “ ”“
b,A/_
a,Z/AAZ
a,Z/AAZ
a,Z/Z
q0
a,Z/Z
q2
q3
b,A/_
q4
_,Z/Z
q5
b,Z/Z
b,Z/Z
q6
q1
b,Z/Z
5
b,Z/Z
q7
b,Z/Z
q8
b,Z/Z
q9
Problem 5 (8+7 pt) 6
§_
£
language context free“
t

t
\
¦ ˜
Ðs
r
š.(Σ = {0, 1})
¸
1. L = {0i 1j | i ≥ j 2 }
2. L = {0nm | m, n“
r™
É
èÃ
º}
Solution
2
1. CFLs
m
. Å
Ò#
Q”
n\
 @
/K
w = 0n 1n Ü
¼–
Ð ‚
×
˜
þ
. v, x —
¸¿
º
0Ü
¼–
Ðë
–
ß
a
)
Ä
â
º, uwy ∈
/ L. 1–
Ðë
–
ß
a
)
Ä
â
º
H, uv 2 wx2 y ∈
/ L. v
x\
¿
º
symbols
t
ô
Ç

\

€
, uv 2 wx2 y ∈
/ L. t
}
•Ü
Œ
¼–
Ð, v 0Ü
¼–
Ðë
–
ß
ªo
Õ
“
¦ x
H 1–
Ðë
–½
ß
¨$

í
a
)
Ä
â
º\
¦¶
˜(
ú
R˜
Ð
. Ä
â
º\
¦
¾
º#
Q"
f,
• n = 1“
â
Ä
º, v = 0, x = 1{
Ã
9
ºµ
Ú\
1
\
O
. uv 2 wx2 y ∈
/L
• n > 1“
â
Ä
º, n2 
pump
€
Õ
ª string“
r, #
É
Q‹
n ≥ s, t > 0\
"
/
@K
n2 −s+sn2 n−t+tn2
0
1
s
. s
string“
r,
É
n2 − s + sn2 < n2 + n3 < 2n3 ≤ tn4 < (n − t + tn2 )2
Ù
s
¼–
Ð L\
5
q
Å
t
·
§
ú
H
.
2. CFLs
m
. Å
Ò#
Q”
n\
@
/K
n˜
Ð
H¿
º>
h_
™
èÃ
º p, q\
¦¹
Ô
1
, w =
0pq –
Ð&
ñ
. ë
–{
ß
|vx| = k 9
€
(k > 0), pq+1
pump
€
, 0pq−k+k(pq+1) =
0pq(k+1) . s

H L\
í
٠
Ê÷
<
&t
·
§
ú
H
.
6
Problem 6 (10+10 pt) generalized regular expression“
r regular expression\
É

§|
“
½
9
Ëõ
+
#
Œ|
½
9
Ë +
Ē
–`
ß
¦ Æ
Òô
Ç ‫כ‬
s
. \
V\
¦ þ
t
[€
, Σ = {a, b}{
M
9
:, abb∅′ ∩
(∅′ aaa∅′ )′ “
r abb–
É
Ð
r
•
Œ
“
¦ aaa\
¦ substringÜ
¼–
Ð t
“
¦e
t
”
·
§
ú
H string`
¦
†
o
. Σ = {a, b}{
M
9
:, A
\
²
š
ú
r
š
¸.
1. (aba)∗ \
¦ closure ƒ
í
–`
ß
¦ æ
¼t
·
§“
ú
r generalized regular expressionÜ
É
¼–
Ðð
³
³½
&
‰
ÉÃ
+
ºe

”
H? 0
x
p
€
Õ
ªð
³‰
³d
&
õ
”
Õ
ªð
³‰
³d
&
s
”
ƒ
#
Q\
¦&
S
ñ
‰
X
>
ð‰
³
³†
&
Ê`
<
¦[
"
O
î
“
¦, Ô
¦0
x
p
€
Ô
¦0
x†
p
Ê`
<
¦£
x
7"
î
r
š
¸.
Solution (aba)∗ = ǫ ∪ [ab∅′ a ∩ (∅′ bb∅′ )′ ∩ (∅′ bab∅′ )′ ∩ (∅′ aaa∅′ )′ ∩ (∅′ aa)′ ]
ǫs

Ä
â
º\
¦ cover

H []Â
Òì
rÜ
¼–
Ð
#
Œ”
Â
Òì
r`
¦¶
˜(
ú
R˜
Ð
.
• Œ
#l
5
q
Å

H string“
r ab–
É
Ð
r
•ô
Œ
Ç
. +
's
#
Q`
¦Ã
ºe

”
H symbol`
¦¶
˜
ú
R˜
(
Ѐ
:
(a) §
“|
½
9
˛
+
¸|
M
:ë
H\
 ab
6
§\
£

H a <
ü
ô
Ç
.
(b) ba
£
6\
§
`
¦Ã
ºe

”
H
•
‫כ‬
¸ a{
Ã
9
ºµ
Ú\
1
\
O
.
(c) Õ
ª
6
§“
£
r b{
É
Ã
9
ºµ
Ú\
1
\
O
.
r
ab–
Ð=
Q
å

H stringÜ
¼–
Ð[
t
š
¸>
÷
&Ù
¼–
Ð0
Aõ
&
`
ñ
¦ì
Í4
ø
¤
Ÿ
>

a
)
. Õ
ªo
“
¦s
strings
a–
Ð=
Q
å
t
ë
– aa–
ß
Ð=
Q
å
t

H·
§
ú
Ù
¼–
Ð,
(aba)+ g
Js
1

a
)
.
• (aba)+ _
—
¸Ž
H string“
r []–
É
Ð
#
Œ”
Â
Òì
r_
“
§|
½
9
ËÜ
+
¼–
г
ð‰
³
&
a›
)
¸|
t`
þ
[
¦—
¸¿
ºë
–7
ß
¤ô
á
Ç
.
²
G0
D
A³
ð‰
³“
&
r&
É
S
ñ
‰y
X
(aba)∗ \
¦
p
·
.
2. (aa)∗ \
¦ closure ƒ
í
–`
ß
¦æ
¼t
·
§“
ú
r generalized regular expressionÜ
É
¼–
г
ð‰
³
&
ÉÃ
+
½
ºe

”
H? 0
x
p
€
Õ
ª³
ð‰
³d
&
õ
”
Õ
ª³
ð‰
³d
&
s
”
ƒ
#
Q\
¦&
S
ñ
‰
X
>
³
ð
³†
&
‰
Ê`
<
¦[
"
O
î
“
¦, Ô
¦0
x
p
€
Ô
¦0
x†
p
Ê`
<
¦£
x
7"
î
r
š
¸.
Solution Claim: closure\
¦æ
¼t
·
§“
ú
r³
É
ð‰
³d
&
“
”
r aë
É
–Ü
ß
¼–
Н
a string(ǫ Ÿ
)
í
Ê)`
<
†
¦Ä
»ô
Ç>
hë
– t
ß
“
¦e
”
, :
¤&
£
U
ñ
´s
s

œ_
©
aë
––
ß
Н
a string`
)
¦—
¸¿
º
t
“
¦e
”
. ³
ð‰
³d
&
e\
”
/
@ô
ǽ
¨›
¸&
)
h
±
šZ
ú
Ü
O
¼–
Ð7
x"
£
:
î
• case e = ǫ or a or b or ∅: aë
–Ü
ß
¼–
Н
a string Ä
)
»ô
Ç>
h. $
|
í
ë
9
–7
ß
¤.
á
• case e1 · e2 : 4t
Ä
â
º\
/
@K
4
R˜
Ѐ
,
– (Ä
»ô
Ç, Ä
»ô
Ç) : Ä
»ô
Ç
– (Ä
»ô
Ç, :
¤&
£
U
ñ
´s
s
œ—
©
¸¿
º) : ·
¡A
ú
¤s
á
aë
–Ü
ß
¼–
Н
a
)
`
‫כ‬
¦
•
¸
“
t
¦e
t
”
·
§Ü
ú
¼€
, Ä
»ô
Ç. m
€
:
¤&
£
U
ñ
´s
s
œ—
©
¸¿
º.
– (:
¤&
£
U
ñ
´s
s
œ—
©
¸¿
º, Ä
»ô
Ç) : 0
A_
Ä
â
ºü
<q
5
w
p
– (:
¤&
£
U
ñ
´s
s

œ—
©
¸¿
º, :
¤&
£
U
ñ
´s
s

œ—
©
¸¿
º) : :
¤&
£
U
ñ
´s
s

œ—
©
¸
º.
¿
• case e1 ∪ e2 : q
5
w
p
>
4t
Ä
â
º¸
—¿
º\
/
@K
4
R˜
Ѐ
,
– (Ä
»ô
Ç, Ä
»ô
Ç) : Ä
»ô
Ç
– (Ä
»ô
Ç, :
¤&
£
U
ñ
´s
s
œ¸
©
—¿
º) : :
¤&
£
U
ñ
´s
s
œ—
©
¸¿
º
– (:
¤&
£
U
ñ
´
s
s
œ—
©
¸¿
º, Ä
»ô
Ç) : A
0_
Ä
â
ºü
<ú
°6
§.
£
7
– (:
¤&
£
U
ñ
´s
s

œ—
©
¸¿
º, :
¤&
£
U
ñ
´s
s

œ—
©
¸¿
º) : :
¤&
£
U
ñ
´s
s

œ—
©
¸¿
º
• case e2 ∩ e2 : 4t
Ä
â
º\
¦
4
R˜
Ѐ
0
Aü
<q
5
w
p
>
ë
–7
ß
¤ô
á
Ç
.
• case e′ : e aë
–Ü
ß
¼–
Н
a string`
)
¦Ä
»ô
Ç>
hë
– t
ß
“
¦e
%
”
3
€
, comple
mentô
ÇÊ
ê\

H£
¤
:&
ñ
´
Us
s
œ_
©
a–
Н
a string`
)
¦—
¸¿
º t
“
¦e
>
”
a
)

. ì
Í@
ø
/–
Ð:
¤&
£
ñ
´
Us
s
œ_
©
a–
Н
a string`
)
¦—
¸¿
º t
“
¦e
%
”
3
€
complementô
ÇÊ
ê\

HÕ
ªU
´s
s
_
Ä
»ô
Ç>
h_
aë
–Ü
ß
¼–
Н
a string`
)
¦
t
>

a
)
.
²
G closure\
D
¦æ
¼t
·
§“
ú
r³
É
ð‰
³d
&
“
”
r aë
É
–Ü
ß
¼–
Н
a string`
)
¦Á
ºô
Ç>
h t
“
¦e
”
¦, #
“
Q‹
n\
"
@
/K
"
f•
¸Õ
ªƒ
#
Q\
5
q
Å
t
·
§
ú
H am , m > n`
¦¹
Ô`
1
¦Ã
ºe

”
H
(aa)∗ \
¦³
ð‰
³½
&
ÉÃ
+
º\
O
.
8
Problem 7 (6+7+7 pt) ^
¦Ï
˜~
þ
ÌÛ
Ã
¼î
–\
ß
 #
Q‹
CFG G [
"
t#
þ
Qe
”
. ü
@Â
Ò\

H
symbol{
§
9
v
4
, p'
'
v
, {
§
9

4
aë
)
H
\
s
P
L(G)\
5
q
Å

Ht
ª
ÕX
t
O
·
§“
ú
rt
É
·
˜
ú
9
ҍ
Å
H³
ðr
‚
Ós
½
e
”
. ¾
ºç
H nonterminal_
Ì
Ã
º m, production rule_
RHS_
j@
þ
/ß
¼l
n\
¦·
˜
ú
9Å
Ò%
3
. A
|
ë
9
H\
@
/K
²
š
ú
“
¦Õ
ª\
@
/ô
Ç7
x"
£
`
î
¦]
jr
š
r
¸.
1. 0
Al
>
\
¦Ä
»ô
ǁ
ë
–
ß
6
x
“
¦ L(G) = ∅“
t
\
¦·
˜Ã
ú
ºe
”
?
Solution 0
x
p
. x ∈ L(G)
“
¦ &
ñ
. x_
parse tree\
"
f root\

fQ
"
#‹
leaf\
"

sØ
ԍ
HU
´s
m˜
Ð
¼
ß
“
¦ &
ñ
. Õ
ª
Q€
s
path\

f ì
"
Í4
ø
¤÷
Ÿ
&#
Q 
H nonterminal(B
“
¦ )s
ì
Í×
ø
¼r
e
“
”
¦, #
Œl
"
f
B\
¦ root–
Ð 
H ¿
º>
h_
subtree\
¦ ¹
Ô`
1
¦Ã
º e

”
HX
<, root\
 î
r `
‫כ‬
¦
root\
€
Ü
‫כ‬
¼–
Ð
Ü
JÃ
ã
ºe
”
. s
X
>
O
K
"
fh
D–
ÐÒ
t|
q
tree
H#
Œ„
y
G_
parse trees
. s

õ
&
`
ñ
¦:
xK
Ÿ
"
f leaf\
s
Ø
ԍ
HU
´s
\
¦ ms
–
Ð×
¦{
9
ºe
Ã
”
. s
parse tree_
yield
H nm+1 
Hs
s
. “
¦–
Ð, nm+1 s
U
´s
—
_
¸Ž
H string`
¦V
#
,
Q4
§Ü
Ÿ
¼–
Ð"
f L(G) empty“
t
·
˜
ú
è
qÃ
­
ºe
”
.
2. 0
Al
>
\
¦Ä
»ô
ǁ
ë
–
ß
6
x
“
¦ L(G) º
Áô
Ǔ
t
·
˜Ã
ú
ºe
”
?
Solution 0
x
p
. L(G) º
Áô
Çs
9€
parse tree\
"
f root\
"
f leaf\

sØ
ԍ
H path\
"
f°
“
ú
r nonterminals
É
¿
º
s

œ
©
“
¦, Õ
ª¿
º nonterminal_
yield 
r
É
Ä
â
º ì
Í×
ø
¼r
e
”
. Õ
ª
Qô
Çë
H
\
×
P
æ 
œÂ
©
ª“
ú
r
É
‫כ‬
¦ x
`
“
¦ . x\
"
f ×
æ4
¤÷
Ÿ
&#
Q 
H nonterminal`
¦·
¡_
ú
ë
H]
j\
"
f
~
_
Ód
½
Ü
”
¼–
Ð\
E
O
€
nm+1 s
_
ë
H
\
`
P
¦%
`
3
¦Ã
ºe
”
. ‘
rA
:
x_
U
´s

H
nm+1 < |x| ≤ 2nm+1 . “
¦–
Ð L(G) Á
ºô
Çs
€
s
#
0
3
A_
ë
H
\
s
P
ì
Í×
ø
¼r
rF
>
”
ô
Ç
. ì
Í@
ø
/–
Ð
s#
0
3
A_
ë
H
\
s
P
e
”
€
s
ë
H
\
_
P
parse tree\
¦s
x
6
#
Œ~
>
1
Á
ºô
Çô
ÇÌ
Ã
º_
ë
H
\
`
P
¦ë
–[
ß
t#
þ
Qè
qÃ
­
ºe
”
. “
¦–
Ð0
A#
0
3
A_
H
ë
\
`
P
¦—
¸¿
º
r+
>
«
€
L(G) º
Áô
Ǔ
t
\
¦&
S
ñ
‰
X
>
·
˜
ú
è
qÃ
­
ºe
”
.
3. A
0 l
>
\
¦ Ä
»ô
ǁ
ë
– ß
6
x
“
¦ L(G) ?
/
H ƒ
#
Q\
¦ &
S
ñ
‰y
X
·
˜Ã
ú
º e
”
?
Solution Ô
¦0
x
p
. CFL_
Σ∗ ü
<_
equivalence\
¦£
x
7"
î

H
“
‫כ‬
r unÉ
decidables
. ë
–€
ß
•Ä

»ô
ǁ
_
r
+
>ë
«
–Ü
ß
¼–
Ѓ
#
Q\
¦&
S
ñ
‰y
X
ó
Íé
ø
–½
ß
ÉÃ
+
ºe

”
H
ÓZ
½
~
s
O
e
”
€
, —
¸Ž
H test case\
@
/K
ƒ
#
Q\
[
t#
þ
Qç
–
ß
“
¦
õ
M
o`
®
¦M
:
ªƒ
Õ
#
Q Σ∗ “
¦ó
Íé
ø
–
ß
>

a
)
. 7
¤, undecidableô
£
Çë
H]
j\
¦ decidable
Û
>
¦>
&
÷Ù
¼–
и
—í
H. L(G)\
¦&
S
ñ
‰
X
>
·
˜Ã
ú
º
H\
O
.
9
Problem 8 (15 pt)
E →E+T | T
T →T ∗F | F
F → (E) | a
A grammar unambiguous†
0
Ê`
<
¦£
x
7"
î
r
š
¸.
Solution 0
A grammar\
5
q
Å

He
_
”
_
string x\
@
/K
derivations
ë
”
m
–”
ß
rF
>
†
Ê6
<
§˜
£
Ðs
€

a
)
.
Claim: y
• nonterminal\
Œ
@
/K
¿
º>
hm
e
”

”
H production“
r"
É
f–
Ð disjointô
ǃ
Q\
#
¦³
ð‰
³ô
&
Ç
. F _
Ä
â
º
H
"
î
. (E)ü
< a
Hr

• symbols
Œ
Ø
ÔÙ
¼–
Ð. T _
Ä
â
º, T ∗ F 
HF
c ‹
ñ\
[
t#
þ
Qt
·
§>
ú

H ∗ e
t
”
ë
– F
ß
H ∗ €
GF
=
c ‹
ñ5
q\
Å
"
f
è
–
ß
. E_
Ä
â
º, E + T ?
/
Hƒ
#
Q
H + F
c ‹
ñµ
Ú\
1

f
"

H
Ä
â
º e
t
”
ë
–, T 
ß
H + €
=
GF
c ‹
ñî
–s
ß
.
Claim: E + T ⇒∗ x{
M
9
:, E ⇒∗ y, T ⇒∗ z, y + z = x\
¦ë
–7
ß
¤
á

H y, zŠ
œ“
©
r
É
÷
rs
. z
HF
c ‹
ñµ
Ú_
1
+\
¦ |
Ã
9
º\
Ü
O
¼Ù
¼–
Ð, F
c ‹
ñµ
Ú\
1


H +×
æ 
œ
©
t
}
•
Œ
`
‫כ‬
¦l
ï
rÜ
¼–
Ð x\
¦
*
$
ô
Ç
. T ∗ F _
Ä
â
º•
¸
q5
w
p
.
A_
0
¿
ºt
z
´`
¦s
6
x
€
x\
¦ derivation
l
0
AK
‚
×
˜K
þ
÷
&
H pro
duction ruleõ
, sentential form_
nonterminals
derivationK
÷
&
H strings
»
Ä
9
{
>
&
K
ñ
f
`
”
¦·
˜Ã
ú
ºe
”
. “
¦–
Ð0
A grammar
H unambiguous
.
10
Problem 9 (10+10 pt) 6
§õ
£
ú
°“
rƒ
É
#
Q Ls
Ò
Å#
Q&
’
.
L = {ss | s ∈ {a, b}∗ }
1. L`
¦~
Î
Ã
[
ts
þ

H TM`
¦ë
–[
ß
t“
þ
¦1
x
l
•"
Œ
¶o
é
\
¦[
"
O
î
r
š
¸.
Solution TMs
r
•½
Œ
ÉM
+
: head {
§
9
string
4
–
з
¡_
ú
/
NÑ
B
˜ë
þ
H
\
¦ o
“
v
¦e
”
“
¦ &
ñ
. Õ
ªo
“
¦ tape alphabet A, B\
¦Æ
Ò
. A
TM
rÄ
É
“
º‚
{
§
9
string\
4
"
f×
æ€
œ0
©
Au
\
¦¹
Ôl
1
0
AK
, š
¸
rA
É
¤å
á
Q
=õ
, ¢
aA
,
¤å
á
Q
=`
¦
o
®
M
y
¤
Œ
€
"
f symbol`
¦
¾
\
ú
"
fÂ
Ò'

Y
V@
/–
Ð upper case–
Ð
õ
H
.
õ
s
&
`
ñ
¦
u
€
×
æ€
œ\
©
 head 0
Au
ô
Ç
. r
p%
±
ƒ6
§0
£
Au
–
Ð[
t
"
€
fë
–
ß

H—
¸Ž
H upper case\
¦
r
lower case–
Ð
õ
H
. s
Ê
ê\

H lower
caseü
< upper case\
¦ ¢
aA
,
¤Â
á
Ò'
 m
S
”
‰“
X

HX
<, S
‰“
X
½
É lower case
+
H
upper case–
Ð
Ë
¨“
¦, Õ
ª
õ
‫כ‬
°
6
ú
§s
£
S
‰“
X

a upper case
)
HB
N
/Ñ
˜ë
þ
H
–
Ð
¨#
Ë
Qð
³r
€
"
f”
'
ô
Ÿ
Ç
.
h
_/_/S
_/_/S
a/a/R, b/b/R, _/_/R
q7
b/B/R
A/a/L, B/b/L
A/A/L, B/B/L
q0
_/_/R
q1
q5
a/a/R, b/b/R, _/_/R
_/_/R
a/A/R
q6
A/_/L
q9
A/A/R, B/B/R
a/A/R, b/B/R a/a/R, b/b/R
q2
q8
B/_/L
_/_/L, a/a/L, b/b/L
_/_/L, A/A/L, B/B/L
q3
a/A/L, b/B/L
a/a/L, b/b/L
A/A/R, B/B/R
q4
2. L`
¦Ò
t$
q
í

H unrestricted grammar\
¦½
¨$
í
“
¦ grammar `
Š6
§`
£
¦[
"
O
î
r
š
¸.
Solution
S → FM
F → F aA | F bB | ǫ
Aa → aA
Ab → bA
Ba → aB
Bb → bB
AM → M a
BM → M b
M →ǫ
Ă
º
Ms
„
\
 aA, bB_
©
œ
ŠÜ
¼–
ÐÒ
t$
q
K
í
é
H
. Õ
ª
sÊ
ê A, B nonterminal`
¦
M s
Ê
ê–
Ð
l
Å
€
"
f terminal–
Ð
õ
H
. s
M
: A, B nonterminal`
¦
#
Å
Q
˜Ã
ú
°
º\
Ü
O
¼Ù
¼–
Ð, M s
„
_
nonterminal“
r M\
É
 î
r
Â
‫כ‬
Ò'

Y
V–
Ð
#
Å
Q
>

a
)
. string`
¦Ò
t$
q
K
í
/
?
9€
Ms

œ
©
t
}
•\
Œ
ǫ
11
Problem 10 (15 pt) 6
§ƒ
£
#
Q recursively enumerables
“
¦, recursive
H
_`
”
¦£
x
7"
î
r
š
¸.
L = {(M1 , M2 , k) | k ≤ |L(M1 )∩L(M2 )|, #
Œl
"
f M1 , M2 
H TM, k“
r 0s
É

œ_
©
&
Ã
ñ
º}
Solution
• not recursive: ë
–€
ß
• recursive

€
, #
Q‹
e
"
_
”
_
TM M \
@
/K
(M, M, 1)
L\
Ÿ
í†
Ê÷
<
&
Ht
î
–÷
ß
&
Ht
decidable
>
î
–
ß
. s
“
‫כ‬
r Ms
É
Lne \
5
q
Å

H
\
t
¦·
˜
ú
˜
Ѝ
H
“
‫כ‬
X
< Lne 
H
z
´ not recursiveÙ
¼–
З
¸í
H. “
¦–
Ð L“
r not
É
recursive.
• recursively enumerable: L\
/
@ô
Ç TM`
¦ Ms
. M “
rY
É
>
>
h_
string`
¦
t
“
¦e
Ü
”
¼9, y
•y
Œ
•_
Œ
string\
@
/K
M1 , M2 _
>
í
–`
ß
¦ô
Çé
–>
ß
m
”
”
'
r
Ÿ
†
. ¢
¸ô
Çl
”
r stringõ
>
TM\
@
/K
ô
Çé
–>
ß
m
”
”
'
s
Ÿ
&
÷€
, D
h–
Ðî
r stringõ
ª
Õ
`
‫כ‬
¦ Ã
º'

Ÿ

H ¿
º>
h_
M1 , M2 \
¦ Æ
Òô
Ç
. string`
¦ Æ
Ò

H í
H"
f
H
´s
U
ü
<
„
í
H"
f\
¦s
6
xô
Ç
. p%
±
ƒ6
§\
£
 M“
r ǫë
É
–`
ß
¦ t
“
¦e
”
.
M“
r¢
É
¸ô
Ç°
“
ú
r string\
É
@
/K
M1 , M2 —
¸¿
º accept–
Ð7
x«
á
Ñ

H
Ä
â
º\
¦
j#
[
Qª
Õº
à k &
÷€
“accepted”\
¦Ø
¦§
4
“
¦7
x«
á
Ñô
Ç
.
s M“
r¿
É
º>
h_
TM M1 , M2 k>
hs

œ_
©
/
N:
B
x&
Ÿ
“
h
string`
¦ accept

H
Ä
â
º\

H =
G, ¢
¸ô
Ç =
G Õ
ª
Ä
â
º\
ë
– “accepted”–
ß
Ð 7
x«
á
Ñ
Ù
¼–
Ð, L“
r recurÉ
sively enumerables
.
12
1. Σ = {0, 1} 에서 정의된 다음의 언어들에 대해, 각 언어를 표현하는 적절한 Regular
expression을 제시하시오. (10점)
(1) 길이가 적어도 3이상이며 세번째 심볼은 0인 모든 string들
(2) 홀수 번째 자리의 심볼이 1인 모든 string들
Solution)
(1) (0+1)(0+1)0(0+1)*
(2) 1((0+1)1)*(ε+0+1)
2. finite automata Î regular expression] 다음 finite automata에 해당되는 regular
expression을 구하시오 (start symbol은 A) (10점)
(1)
0
0, 1
A
1
B
C
D
1
0
(2)
1
A
0
0
0
1
C
B
1
D
0, 1
Solution)
(1)
(2)
A = 0 B + 1C + ε
A = 0 B + 1C + ε
B = 0 D + 1A = 1A + 0(0 + 1) *
C = 0 A + 1D = 0 A + 1(0 + 1) *
= 0(1A + 0(0 + 1)*) + 1(0 A + 1(0 + 1)*) + ε
= (01 + 10) A + (00 + 11)(0 + 1) * +ε
D = 0 D + 1D + ε = (0 + 1) *
= (01 + 10) *(00 + 11)(0 + 1) *
3. completely specified DFA M의 각 상태들은 Σ*를 유한 개로 분할한 partition에 대응한
다: [x]R={x|δ*(q0,x)=q}
(여기서, q0는 시작 상태, R은 이러한 분할을 시키는 equivalence
relation). 이러한 분할에 대응되는 equivalence relation R은 right-invariant이라고 한다.
right-invariant는 다음과 같은 특성을 의미한다: y∈[x]R⇒∀a∈Σ, ya∈[xa]R. 유한 개로
분할하는 right-invariant equivalence relation R은 δ를 결정한다. 즉 만약 q가 [x]R에 대응
되고 q’이 [xa]R에 대응될 때, δ(q,a)=q’이다.
상태이름만이
다른
DFA는
같은
DFA으로
볼
때에,
임의의
언어
L를
accept하는
completely specified minimal DFA는 하나 밖에 없음을 보여라. (10점)
Solution)
언어 L을 accept하는 다른 Minimal DFA인 Mx=(Qx,Σ,δx,q0x,Fx)와 My=(Qy,Σ,δy,q0y,Fy)가 있
다고 가정하자. Mx와 My에 대하여 문제와 같이 equivalence relation Rx와 Ry을 정의할 수
있다. 상태의 이름을 바꾸어도 동일한 DFA이므로 Qx={[x]Rx| x∈Σ*}으로 Qy={[x]Ry|
x∈Σ*}으로 둘 수 있다.
(a) Qx≠Qy이라고 가정하자.
y∈[x]Rx이고 y [x]Ry인 y가 존재한다.
[x]Rx와 [y]Rx는 같은 상태이므로, {z∈Σ*| δx([x]Rx, z)∈F}={z∈Σ*| δx([y]Rx, z)∈F}
yz∈L ⇒ δx*([y]Rx, z)∈Fx 이고 δy*([y]Ry, z)∈Fy 이므로 {z∈Σ*| δx*([y]Rx, z)∈F}={z∈Σ*|
δy*([y]Ry, z)∈F}.
xz∈L ⇒ δx*([x]Rx, z)∈Fx 이고 δy*([x]Ry, z)∈Fy 이므로 {z∈Σ*| δx*([x]Rx, z)∈F}={z∈Σ*|
δy*([x]Ry, z)∈F}.
그러므로 {z∈Σ*| δx([x]Ry, z)∈F}={z∈Σ*| δx*([y]Ry, z)∈F}.
즉, My 에서 [y]Ry 를 [x]Ry 으로 치환해도 L(My)는 달라지지 않는다. 이는 My 가 Minimal
DFA 이라는 사실에 대하여 모순한다. 그러므로 그러한 y 는 존재할 수 없다. 즉 Rx 와 Ry 는
동일하게 partition 한다. Qx=Qy 이다. 즉 모순이다.
(b) Rx 와 Ry 가 동일하므로, δx=δy.
(c) q0x=[ε]Rx=[ε]Ry=q0y
(d) Fx={[x]Rx|x∈L}={[x]Ry|x∈L}=Fy.
결국 Mx 와 My 는 같으므로 모순.
4. 아래의 영어 문장들은 언어학에서 ‘Center embedding’이라고 부르는 현상이다.
-
The cat likes fish.
-
The cat the dog chased likes fish.
-
The cat the dog the rat bit chased likes fish.
-
The cat the dog the rat the elephant admired bit chased likes fish.
각 문장의 해석은 아래와 같다.
-
그 고양이는 생선을 좋아한다.
-
그 개가 쫓는 그 고양이는 생선을 좋아한다.
-
그 쥐가 문 그 개가 쫓는 그 고양이는 생선을 좋아한다.
-
그 코끼리가 존경하는 그 쥐가 문 그 개가 쫓는 그 고양이는 생선을 좋아한다.
위의 현상을 regular language로 표현할 수 없다는 것을 보임으로써 영어가 regular
language가 아니라는 것을 증명하시오. (10점)
5. 다음 언어 L이 Context-free가 아님을 Pumping Lemma를 이용해 보이시오. (10점)
L
010
j
i
0
Solution)
n을 Pumping lemma의 상수라고 하고 w = 0 1 0
L 을 생각해보자. |vx| 0, |vwx| n
을 만족하도록 w를 쪼갠다( w=uvwxy ). X가 두 번째 연속적인 0(0 )중 하나의 0도 포함하
고 있지 않다면 uv wx y는 당연히 L에 포함되지 않는다. 또 X가 두 번째 연속적인 0(0 )중
하나의 0이라도 포함한다면 v는 첫 번째 연속적인 0( 0 )중 하나의 0도 포함하지 못한다.
( |vwx| n) 이때는 uv wx y이 L에 포함되지 않는다. 그러므로 L은 Context-free가 아니
다
6. 두 언어 A, B
∑ 에 대해 연산자
A
B
Context-free 언어가 연산자
w
는 다음과 같이 정의된다.
∑ |w
A
B and w
A
B
에 대해 닫혀있지 않음을 증명하시오. 즉 다음 명제 X가 거
짓임을 증명하시오. (10점)
명제 X: 모든 언어 A, B에 대해, 만일 A, B가 Context-free라면 A
B도 Context-free이
다.
Solution)
다음 명제 C를 생각해보자.
명제 C: 모든 언어 A에 대해, 만일 A가 Context-free라면 A도 Context-free이다.
우리는 명제 C가 거짓임을 알고 있으므로, 명제 X가 참이라고 가정했을 때 명제 C가 참이
됨을 보이고, 이것이 모순이므로 X가 거짓이라는 것을 보일 것이다.
임의의 Context-free 언어 C에 대해 C
∑
C 이다. 그런데 ∑ 는 Context-free이므로 C
가 Context-free라고 할 수 있다 (명제 X가 참이라는 가정에 의해)
임의의 Context-free 언어 C에 대해 C가 Context-free임을 보였으므로 모순이다.
그러므로 명제 X는 거짓이다.
7. 아래의 문법이 만들어내는 string에 포함되어있는 0의 개수가 1의 개수보다 많음을 증명
하시오. (15점)
S Æ 0 | S0 | 0S | 1SS | SS1 | S1S
8. Rice’s theorem을 이용하여, L={<M1, M2> | M1 and M2 are TMs and L(M1)=L(M2)}가
undecidable한지 보여라. (10점)
solution)
Undecidable한 문제를 만든 후에 이 문제에서 L으로의 reduction이 존재함을 보이자.
∃M s.t M is a turing machine and L(M)⊆ Σ*.
LP={ L(M) }이라고 하자.
Rice’s theorem에 의하여 Lp는 undecidable하다.
f를 f(M’)=<M’, M>으로 정의하자.
L(M’) LP → L(M’)=L(M) → <M’, M> L
L(M’) LP → L(M’)≠L(M) → <M’, M> L
f는 Lp에서 L로의 reduction이다.
LP가 undecidable이므로 Theorem 9.7에 의하여 L도 undecidable하다.
9. Lp={<G>| undirected simple graph G has a Hamiltonian path}와 Lc={<V,E>|
undirected simple graph <V,E> has a Hamiltonian cycle}를 고려하자. Lc의 membership
problem이 NP임을 알고 있을 때 Lp의 membership problem은 NP-complete임을 이용하
여 Lc의 membership problem이 NP-complete임을 보여라. (15점)
solution)
f를 다음과 같이 정의하자:
f(<V, E>)=<V∪{v’}, E∪{(v, v1’)|∀v V} > where v’ V.
f가 Lp에서 Lc로의 reduction임을 보이자.
<V, E>이 Lp의 원소인 경우:
Hamiltonian path P=(a1, a2,… an)가 존재한다. f(<V, E>)에는 Hamiltonian cycle C=(v’, a1,
a2,… an, v’)가 존재한다. 즉 f(<V,E>)는 Lc의 원소이다.
<V, E>이 Lp의 원소가 아닌 경우:
f(<V,E>)∈Lc이라 가정하자. Hamiltonian cycle C=(v’, a1, a2,… an, v’)이 존재한다.
Hamiltonian path P=( a1, a2,… an, an)가 <V, E>에 존재한다. 즉 모순이다.
그러므로 f(<V, E>)는 Lc의 원소일 수 없다.
f는 O( (|V|+1)+(|E|+|V|) )에 수행되고 Lc는 NP이므로, Lc는 NP-complete이다.
CS 322 2008 기말고사
일시: 12/17 오후 1:00 ~ 3:00
장소: 1101 제1강의실
전공
학번
이름
문제번호
1
2
3
4
5
6
7
8
총점
점수
학번 ___________________ 이름 _______________________
Problem 1. (10pt)
Prove that ∑* is countable.
학번 ___________________ 이름 _______________________
Problem 2. (15pt, 5pt each)
Which of the following languages are regular? If the language is regular, present a finite
automaton or regular expression. If not, give a proof using the pumping lemma.
(1) The set of all 0-1 strings in which the total number of zeros to the right of each 1 is even.
0m1n where m is odd and n is even.
(3) L = {w | w is even integer written in unsigned binary} where you ignore the
leading zeros. ( For example, 00110 Î L, 0 Î L, 111 Ï L )
(2) The set of all 0-1 strings of the form
학번 ___________________ 이름 _______________________
Problem 3. (25pt)
Prove that the following statements are equivalent.
1) The set L ⊆ ∑* is accepted by some finite automaton.
2) L is the union of some of the equivalence classes of a right invariant equivalence relation of
finite index.
3) Let equivalence relation RL be defined by: xRLy if and only if for all z in ∑*, xz is in L exactly
when yz is in L. Then RL is of finite index.
학번 ___________________ 이름 _______________________
Problem 4. (15pt)
A CFG G = (V, T, P, S) is Geibach-Normal Form (GNF), if all production rules of G have the form,
Aàaa, where AÎV, aÎT, aÎ(V U T)*. A GNF is simple if Aàaa ÎP and Aàab ÎP then a=b. Prove
that a slightly modified left parser for the simple GNF is deterministic.
학번 ___________________ 이름 _______________________
Problem 5. (20pt)
Context-free grammars are sometimes used to model natural languages. In this problem, you will
model a fragment of the English language using context-free grammars. Consider the following
English sentences:
The girl is pretty.
The girl that the boy likes is pretty.
The girl that the boy that the clerk pushed likes is pretty.
The girl that the boy that the clerk that the girl knows pushed likes is pretty.
This is a special type of sentence built from a subject (The girl), a relative pronoun (that) followed
by another sentence, a verb (is) and an adjective (pretty).
(a) Give a context-free grammar G that models this special type of sentence. Your terminals should
be the words or sequences of words in the given sentences, like pretty or the girl. (8pt)
(b) Is the language of G regular? If so, write a regular expression for it. If not, prove using the
pumping lemma for regular languages. (8pt)
(c) Can you give an example of a sentence that is in G but does not make sense in common
English? (4pt)
학번 ___________________ 이름 _______________________
학번 ___________________ 이름 _______________________
Problem 6. (25pt)
Prove or disprove that the following languages are context free language.
(1) L = {wwR | w Î {a, b}+} (10pt)
(2) L = {ww | w Î {a, b}+} (15pt)
학번 ___________________ 이름 _______________________
Problem 7. (20pt, 10pt each)
Classify whether each of the following languages are recursive, RE-but-not-recursive, or non-RE.
You need to prove your answer.
(1) { M | L ( M ) is finite }
(2) { M , k | M is a TM that accepts at least one string of length k}
학번 ___________________ 이름 _______________________
Problem 8. (15pt)
A formula of propositional logics is in 2CNF(conjunctive normal form) if it has the form
C1∧…∧Cn
Where the Ci are clauses of size 2. A clause of size two has the form (A∨B) where A and B are
literals. A literal has the form x or ¬x where x is a variable of propositional calculus that can take
the values true or false. For example (x∨¬y)∧(z∨x) is a 2CNF. A formula of propositional calculus is
satisfiable if there is an assignment of truth value to its variables so that the formula evaluates to
true using the usual semantics of propositional calculus.
The 2SAT problem is to decide whether a given 2CNF formula F is satisfiable.
Prove that the 2SAT problem for a formula F with n clauses can be solved in polynomial time.