東京工業大学 情報理工学院 情報工学系 2018年8月実施 午前 3.
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
品物を体積の昇順に g1,…,gN と並べ、1≤i<i′≤N ならば volume(gi)≤volume(gi′) とする。G0=∅、Gi=Gi−1∪{gi} とする。全品物の部分集合が取り得る体積合計を重複を除き昇順に W0,W1,… と並べる(W0=0)。Gi から容量 Wj 以下で選べる最大価値を Ti,j とする。
T0,0=0,T0,j=1 (j≥1),Ti,0=2,
Ti,j={Ti−1,jmax{Ti−1,j,Ti−1,h+value(gi)}Wj<volume(gi),Wj≥volume(gi),
漸化式は 1≤i≤N, j≥1 に対するもので、h=max{k:Wk≤Wj−volume(gi)} とする。
| 品物 | 体積 | 価値 |
|---|
| g1 | 10 | 5 |
| g2 | 15 | 6 |
| g3 | 20 | 7 |
| g4 | 30 | 8 |
表3.2には Ti,j の値が次のように与えられている。
| Ti,j | W0 | W1 | W2 | W3 | W4 | W5 | W6 | W7 | W8 |
|---|
| G0 | 0 | ① | ① | ① | ① | ① | ① | ① | ① |
| G1 | ② | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| G2 | ② | 5 | 6 | 6 | 11 | 11 | 11 | 11 | 11 |
| G3 | ② | 5 | 6 | 7 | 11 | ③ | ④ | ⑤ | ⑥ |
| G4 | ② | 5 | 6 | 7 | 11 | | | | |
(a) G1,…,G4 を列挙せよ。(b) W0,…,W8 を求めよ。
(c) ①、②および T3,5=3,T3,6=4,T3,7=5,T3,8=6 を求めよ。
(d) 容量 W5,W6,W7,W8 に対する全品物 G4 の最適な組合せと価値を求めよ。
項は定数 S,K,I と二項適用から作り、適用は左結合とする。計算規則は
Ix⇒x,Kxy⇒x,Sxyz⇒xz(yz).
部分項にも規則を適用でき、すなわち x⇒x′ なら xy⇒x′y、y⇒y′ なら xy⇒xy′ である。適用できなくなった項を正規形と呼ぶ。リダクションの例は次のとおりである。
SIIx⇒Ix(Ix)⇒x(Ix)⇒xx,
S(K(SI))Kxy⇒K(SI)x(Kx)y⇒SI(Kx)y⇒Iy(Kxy)⇒y(Kxy)⇒yx.
(a) 任意の項 x について、SKKx と Ix のリダクション結果が同じになることを示せ。
(b) T=K,F=KI とする。正規形の項 x,y に対し (i) Txy、(ii) Fxy を正規形まで変換し、過程も示せ。
(c)
∨=SI(KT),∧=SS(K(KF)),¬=S(SI(KF))(KT)
と定義する。このとき、任意の項 x,y に対して次の変換が成り立つ。
∨xy∧xy¬x=SI(KT)xy⇒Ix(KTx)y⇒x(KTx)y⇒xTy,=SS(K(KF))xy⇒Sx(K(KF)x)y⇒xy(K(KF)xy)⇒xy(KFy)⇒xyF,=S(SI(KF))(KT)x⇒SI(KF)x(KTx)⇒Ix(KFx)(KTx)⇒x(KFx)(KTx)⇒xF(KTx)⇒xFT.
これらを用い、(iii) ∨(¬T)T、(iv) ∨(¬T)F、(v) ∧(¬F)T、(vi) ∧(¬F)F を正規形にし、過程も示せ。
题目描述
用按可达体积压缩的动态规划求0–1背包表及最优组合;各物品按体积非递减排列,已知表项和编号空格见表 3.2。根据 SKI 组合子的归约规则,化简恒等组合子和以组合子编码的布尔运算,写出归约到正规形的过程。
Kai
G1={g1},G2={g1,g2},G3={g1,g2,g3},G4={g1,g2,g3,g4}.
(W0,…,W8)=(0,10,15,20,25,30,35,40,45).
(1)=0,(2)=0,(3)=12,(4)=13,(5)=13,(6)=18.
例えば容量30では g1,g3 の価値12、容量35,40では g2,g3 の価値13、容量45では g1,g2,g3 の価値18が最適である。
| 容量 | 最適な組合せ | 体積合計 | 価値合計 |
|---|
| W5=30 | {g1,g3} | 30 | 12 |
| W6=35 | {g2,g3} | 35 | 13 |
| W7=40 | {g2,g3} または {g1,g4} | 35 または 40 | 13 |
| W8=45 | {g1,g2,g3} | 45 | 18 |
SKKx⇒Kx(Kx)⇒x,Ix⇒x.
従って両者は同じ項 x に帰着する。
(i)Txy=Kxy⇒x,
(ii)Fxy=KIxy⇒Iy⇒y.
x,y は正規形なのでここで終了する。
まず
¬T⇒∗TFT=KFT⇒F=KI,
¬F⇒∗FFT=KIFT⇒IT⇒T=K.
問題で示された変換を用いると
(iii)∨(¬T)T(iv)∨(¬T)F(v)∧(¬F)T(vi)∧(¬F)F⇒∗∨FT⇒∗FTT=KITT⇒IT⇒T=K,⇒∗∨FF⇒∗FTF=KITF⇒IF⇒F=KI,⇒∗∧TT⇒∗TTF=KTF⇒T=K,⇒∗∧TF⇒∗TFF=KFF⇒F=KI.
K と KI はいずれも引数不足なので、それ以上規則を適用できない正規形である。