跳到主要内容

神戸大学 システム情報学研究科 2018年1月実施 第二期 専門科目 計算機科学 [1]

Author

祭音Myyura (co-authored with GPT 5.6 SOL)

Description

a,b,ca,b,c を記号とし、i,j,ki,j,k00 以上の整数を表す変数とする。以下の (1) - (4) に答えよ。CFG を答える場合は、変数記号、開始記号、生成規則をそれぞれ書くこと。

(1)

L0={aibji=j}L_0=\{a^ib^j\mid i=j\}

とする。

  1. L0L_0 を生成する CFG を書け。
  2. 1 の CFG における a3b3a^3b^3 の構文木を書け。

(2)

L1={aibjij}L_1=\{a^ib^j\mid i\ne j\}

とする。

  1. L1L_1 を生成する CFG を書け。
  2. L1L_1 を受理言語とする PDA の推移図を書け。

(3)

M0={aibjckij または jk}M_0=\{a^ib^jc^k\mid i\ne j\ \text{または}\ j\ne k\}

とする。M0M_0 を生成する CFG を書け。

(4)

M1={aibjcki=j=k}M_1=\{a^ib^jc^k\mid i=j=k\}

とする。CFL の反復補題を用いて、M1M_1 が CFL ではないことを示せ。

题目描述

a,b,ca,b,c 为符号,i,j,ki,j,k 为非负整数。

  1. L0={aibji=j}L_0=\{a^ib^j\mid i=j\},给出生成它的上下文无关文法,并画出 a3b3a^3b^3 的语法树。
  2. L1={aibjij}L_1=\{a^ib^j\mid i\ne j\},给出生成它的上下文无关文法,并画出识别它的下推自动机状态转移图。
  3. 给出生成 M0={aibjckij 或 jk}M_0=\{a^ib^jc^k\mid i\ne j\text{ 或 }j\ne k\} 的上下文无关文法。
  4. 用上下文无关语言的抽引引理证明 M1={aibjcki=j=k}M_1=\{a^ib^jc^k\mid i=j=k\} 不是上下文无关语言。

Kai

(1)

(i)

変数を {S}\{S\}、開始記号を SS、終端記号を {a,b}\{a,b\} とし、生成規則を

SaSbε\boxed{S\to aSb\mid\varepsilon}

とすればよい。

(ii)

S
├── a
├── S
│ ├── a
│ ├── S
│ │ ├── a
│ │ ├── S
│ │ │ └── ε
│ │ └── b
│ └── b
└── b

葉を左から読むと aaabbb=a3b3aaabbb=a^3b^3 となる。

(2)

(i)

変数を {S,A,B,P,Q}\{S,A,B,P,Q\}、開始記号を SS、終端記号を {a,b}\{a,b\} とし、生成規則を

SAB,AaAbP,PaPa,BaBbQ,QbQb\begin{aligned} S&\to A\mid B,\\ A&\to aAb\mid P, & P&\to aP\mid a,\\ B&\to aBb\mid Q, & Q&\to bQ\mid b \end{aligned}

とする。AAi>ji>jBBi<ji<j の語をちょうど生成するので、この CFG は L1L_1 を生成する。

(ii)

スタック底記号を ZZ、カウンタ記号を AA とする。ラベルは「入力、スタック頂上 \to 置換列」を表し、入力をすべて読んで終状態 qfq_f に入ったとき受理する。

qGq_G 側は入力終了時に AA が残る場合、すなわち i>ji>j を受理する。qLq_L 側は AA をすべて取り除いた後にも bb が一つ以上残る場合、すなわち i<ji<j を受理する。

(3)

変数を {S,X,P,Q,C,A,Y,R,T}\{S,X,P,Q,C,A,Y,R,T\}、開始記号を SS、終端記号を {a,b,c}\{a,b,c\} とし、生成規則を

SXCAY,XaXbPQ,PaPa,QbQb,CcCε,AaAε,YbYcRT,RbRb,TcTc\begin{aligned} S&\to XC\mid AY,\\ X&\to aXb\mid P\mid Q, &P&\to aP\mid a, &Q&\to bQ\mid b,\\ C&\to cC\mid\varepsilon, &A&\to aA\mid\varepsilon,\\ Y&\to bYc\mid R\mid T, &R&\to bR\mid b, &T&\to cT\mid c \end{aligned}

とする。XCXCiji\ne j の語を、AYAYjkj\ne k の語を生成する。したがって、この CFG は両者の和集合 M0M_0 を生成する。

(4)

M1M_1 が CFL であると仮定し、反復長を nn とする。語

z=anbncnM1z=a^nb^nc^n\in M_1

を取り、反復補題による任意の分解

z=uvwxy,vwxn,vx1z=uvwxy,\qquad |vwx|\leq n,\qquad |vx|\geq1

を考える。vwxn|vwx|\leq n だから、vwxvwxaa の部分と cc の部分を同時に含むことはない。したがって v,xv,x によって個数が変わる記号は高々隣接する2種類であり、少なくとも1種類の個数は nn のままである。

m=0m=0 として uwyuwy を考えると、vx1|vx|\geq1 より少なくとも1種類の個数は減少する一方、少なくとも1種類は nn のままである。よって3種類の個数は等しくならない(記号の順序が崩れる場合も M1M_1 に属さない)。したがって

uwyM1,uwy\notin M_1,

となり反復補題に矛盾する。ゆえに

M1 は CFL ではない.\boxed{M_1\ \text{は CFL ではない}}.