跳到主要内容

東京工業大学 情報理工学院 情報工学系 2018年8月実施 午前 3.

Author​

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

Description​

1)​

品物を体積の昇順に g1,…,gNg_1,\ldots,g_N と並べ、1≤i<i′≤N1\le i<i'\le N ならば volume⁡(gi)≤volume⁡(gi′)\operatorname{volume}(g_i)\le\operatorname{volume}(g_{i'}) とする。G0=∅G_0=\varnothing、Gi=Gi−1∪{gi}G_i=G_{i-1}\cup\{g_i\} とする。全品物の部分集合が取り得る体積合計を重複を除き昇順に W0,W1,…W_0,W_1,\ldots と並べる(W0=0W_0=0)。GiG_i から容量 WjW_j 以下で選べる最大価値を Ti,jT_{i,j} とする。

T0,0=0,T0,j=1 (j≥1),Ti,0=2,T_{0,0}=0,\qquad T_{0,j}=\boxed{1}\ (j\ge1),\qquad T_{i,0}=\boxed{2},
Ti,j={Ti−1,jWj<volume⁡(gi),max⁡{Ti−1,j,Ti−1,h+value⁡(gi)}Wj≥volume⁡(gi),T_{i,j}=\begin{cases}T_{i-1,j}&W_j<\operatorname{volume}(g_i),\\ \max\{T_{i-1,j},T_{i-1,h}+\operatorname{value}(g_i)\}&W_j\ge\operatorname{volume}(g_i),\end{cases}

漸化式は 1≤i≤N, j≥11\le i\le N,\ j\ge1 に対するもので、h=max⁡{k:Wk≤Wj−volume⁡(gi)}h=\max\{k:W_k\le W_j-\operatorname{volume}(g_i)\} とする。

品物体積価値
g1g_1105
g2g_2156
g3g_3207
g4g_4308

表3.2には Ti,jT_{i,j} の値が次のように与えられている。

Ti,jT_{i,j}W0W_0W1W_1W2W_2W3W_3W4W_4W5W_5W6W_6W7W_7W8W_8
G0G_00①①①①①①①①
G1G_1②55555555
G2G_2②5661111111111
G3G_3②56711③④⑤⑥
G4G_4②56711

(a) G1,…,G4G_1,\ldots,G_4 を列挙せよ。(b) W0,…,W8W_0,\ldots,W_8 を求めよ。 (c) ①、②および T3,5=3,T3,6=4,T3,7=5,T3,8=6T_{3,5}=\boxed{3},T_{3,6}=\boxed{4},T_{3,7}=\boxed{5},T_{3,8}=\boxed{6} を求めよ。 (d) 容量 W5,W6,W7,W8W_5,W_6,W_7,W_8 に対する全品物 G4G_4 の最適な組合せと価値を求めよ。

2)​

項は定数 S,K,IS,K,I と二項適用から作り、適用は左結合とする。計算規則は

Ix⇒x,Kxy⇒x,Sxyz⇒xz(yz).Ix\Rightarrow x,\qquad Kxy\Rightarrow x,\qquad Sxyz\Rightarrow xz(yz).

部分項にも規則を適用でき、すなわち x⇒x′x\Rightarrow x' なら xy⇒x′yxy\Rightarrow x'y、y⇒y′y\Rightarrow y' なら xy⇒xy′xy\Rightarrow xy' である。適用できなくなった項を正規形と呼ぶ。リダクションの例は次のとおりである。

SIIx⇒Ix(Ix)⇒x(Ix)⇒xx,SIIx\Rightarrow Ix(Ix)\Rightarrow x(Ix)\Rightarrow xx,
S(K(SI))Kxy⇒K(SI)x(Kx)y⇒SI(Kx)y⇒Iy(Kxy)⇒y(Kxy)⇒yx.\begin{aligned} S(K(SI))Kxy &\Rightarrow K(SI)x(Kx)y\Rightarrow SI(Kx)y\\ &\Rightarrow Iy(Kxy)\Rightarrow y(Kxy)\Rightarrow yx. \end{aligned}

(a) 任意の項 xx について、SKKxSKKx と IxIx のリダクション結果が同じになることを示せ。 (b) T=K,F=KIT=K,F=KI とする。正規形の項 x,yx,y に対し (i) TxyTxy、(ii) FxyFxy を正規形まで変換し、過程も示せ。 (c)

∨=SI(KT),∧=SS(K(KF)),¬=S(SI(KF))(KT)\lor=SI(KT),\quad \land=SS(K(KF)),\quad\neg=S(SI(KF))(KT)

と定義する。このとき、任意の項 x,yx,y に対して次の変換が成り立つ。

∨xy=SI(KT)xy⇒Ix(KTx)y⇒x(KTx)y⇒xTy,∧xy=SS(K(KF))xy⇒Sx(K(KF)x)y⇒xy(K(KF)xy)⇒xy(KFy)⇒xyF,¬x=S(SI(KF))(KT)x⇒SI(KF)x(KTx)⇒Ix(KFx)(KTx)⇒x(KFx)(KTx)⇒xF(KTx)⇒xFT.\begin{aligned} \lor xy&=SI(KT)xy\Rightarrow Ix(KTx)y\Rightarrow x(KTx)y\Rightarrow xTy,\\ \land xy&=SS(K(KF))xy\Rightarrow Sx(K(KF)x)y\Rightarrow xy(K(KF)xy)\Rightarrow xy(KFy)\Rightarrow xyF,\\ \neg x&=S(SI(KF))(KT)x\Rightarrow SI(KF)x(KTx)\\ &\Rightarrow Ix(KFx)(KTx)\Rightarrow x(KFx)(KTx)\Rightarrow xF(KTx)\Rightarrow xFT. \end{aligned}

これらを用い、(iii) ∨(¬T)T\lor(\neg T)T、(iv) ∨(¬T)F\lor(\neg T)F、(v) ∧(¬F)T\land(\neg F)T、(vi) ∧(¬F)F\land(\neg F)F を正規形にし、過程も示せ。

题目描述​

用按可达体积压缩的动态规划求0–1背包表及最优组合;各物品按体积非递减排列,已知表项和编号空格见表 3.2。根据 SKI 组合子的归约规则,化简恒等组合子和以组合子编码的布尔运算,写出归约到正规形的过程。

Kai​

1)​

a)​

G1={g1},G2={g1,g2},G3={g1,g2,g3},G4={g1,g2,g3,g4}.G_1=\{g_1\},\quad G_2=\{g_1,g_2\},\quad G_3=\{g_1,g_2,g_3\},\quad G_4=\{g_1,g_2,g_3,g_4\}.

b)​

(W0,…,W8)=(0,10,15,20,25,30,35,40,45).\boxed{(W_0,\ldots,W_8)=(0,10,15,20,25,30,35,40,45)}.

c)​

(1)=0,(2)=0,(3)=12,(4)=13,(5)=13,(6)=18.(1)=0,\quad(2)=0,\quad(3)=12,\quad(4)=13,\quad(5)=13,\quad(6)=18.

例えば容量30では g1,g3g_1,g_3 の価値12、容量35,40では g2,g3g_2,g_3 の価値13、容量45では g1,g2,g3g_1,g_2,g_3 の価値18が最適である。

d)​

容量最適な組合せ体積合計価値合計
W5=30W_5=30{g1,g3}\{g_1,g_3\}3012
W6=35W_6=35{g2,g3}\{g_2,g_3\}3513
W7=40W_7=40{g2,g3}\{g_2,g_3\} または {g1,g4}\{g_1,g_4\}35 または 4013
W8=45W_8=45{g1,g2,g3}\{g_1,g_2,g_3\}4518

2)​

a)​

SKKx⇒Kx(Kx)⇒x,Ix⇒x.SKKx\Rightarrow Kx(Kx)\Rightarrow x,\qquad Ix\Rightarrow x.

従って両者は同じ項 xx に帰着する。

b)​

(i)Txy=Kxy⇒x,\text{(i)}\quad Txy=Kxy\Rightarrow x,
(ii)Fxy=KIxy⇒Iy⇒y.\text{(ii)}\quad Fxy=KIxy\Rightarrow Iy\Rightarrow y.

x,yx,y は正規形なのでここで終了する。

c)​

まず

¬T⇒∗TFT=KFT⇒F=KI,\neg T\Rightarrow^*TFT=KFT\Rightarrow F=KI,
¬F⇒∗FFT=KIFT⇒IT⇒T=K.\neg F\Rightarrow^*FFT=KIFT\Rightarrow IT\Rightarrow T=K.

問題で示された変換を用いると

(iii)∨(¬T)T⇒∗∨FT⇒∗FTT=KITT⇒IT⇒T=K,(iv)∨(¬T)F⇒∗∨FF⇒∗FTF=KITF⇒IF⇒F=KI,(v)∧(¬F)T⇒∗∧TT⇒∗TTF=KTF⇒T=K,(vi)∧(¬F)F⇒∗∧TF⇒∗TFF=KFF⇒F=KI.\begin{aligned} \text{(iii)}\quad\lor(\neg T)T&\Rightarrow^*\lor FT\Rightarrow^*FTT=KITT\Rightarrow IT\Rightarrow T=\boxed K,\\ \text{(iv)}\quad\lor(\neg T)F&\Rightarrow^*\lor FF\Rightarrow^*FTF=KITF\Rightarrow IF\Rightarrow F=\boxed{KI},\\ \text{(v)}\quad\land(\neg F)T&\Rightarrow^*\land TT\Rightarrow^*TTF=KTF\Rightarrow T=\boxed K,\\ \text{(vi)}\quad\land(\neg F)F&\Rightarrow^*\land TF\Rightarrow^*TFF=KFF\Rightarrow F=\boxed{KI}. \end{aligned}

KK と KIKI はいずれも引数不足なので、それ以上規則を適用できない正規形である。