東京工業大学 情報理工学院 情報工学系 2018年8月実施 午前 3.
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
N N N 個の品物の集合を G G G とし,品物 g ∈ G g\in G g ∈ G の体積を volume ( g ) \operatorname{volume}(g) volume ( g ) ,価値を value ( g ) \operatorname{value}(g) value ( g ) とする。G G G の要素を体積の小さい順に並べた列を ( g 1 , g 2 , … , g N ) (g_1,g_2,\ldots,g_N) ( g 1 , g 2 , … , g N ) ,つまり 1 ≤ i < i ′ ≤ N 1\le i<i'\le N 1 ≤ i < i ′ ≤ N のとき volume ( g i ) ≤ volume ( g i ′ ) \operatorname{volume}(g_i)\le\operatorname{volume}(g_{i'}) volume ( g i ) ≤ volume ( g i ′ ) とする。ここで容積 W W W のナップザックが与えられたとき,W W W の範囲内で価値の総和が最大となる品物の集合 S ⊆ G S\subseteq G S ⊆ G を見つけることを考える。以下,S S S を G G G と W W W に対するナップザック問題解と呼ぶ。
G 0 G_0 G 0 を空集合 ∅ \varnothing ∅ とし,1 ≤ i ≤ N 1\le i\le N 1 ≤ i ≤ N であるような i i i について G i = G i − 1 ∪ { g i } G_i=G_{i-1}\cup\{g_i\} G i = G i − 1 ∪ { g i } とする。次に0個以上の品物の体積の合計となり得る値の集合
{ ∑ g ∈ X volume ( g ) ∣ X ⊆ G } \left\{\sum_{g\in X}\operatorname{volume}(g)\mathrel{\big|}X\subseteq G\right\} ⎩ ⎨ ⎧ g ∈ X ∑ volume ( g ) X ⊆ G ⎭ ⎬ ⎫
の要素の値を小さい順に並べた列を W 0 , W 1 , … , W j , … W_0,W_1,\ldots,W_j,\ldots W 0 , W 1 , … , W j , … とする。ただし W 0 W_0 W 0 は品物が0個の時の合計体積をあらわす。
このとき,品物の集合 G i G_i G i と容積 W j W_j W j のナップザックに対するナップザック問題解 S i , j S_{i,j} S i , j の価値の総和 T i , j T_{i,j} T i , j は下記の式で与えられる:ただし max U \max U max U は実数の有限集合 U U U の最大値を返す。
T 0 , 0 = 0 , T 0 , j = ① ( ただし 1 ≤ j ) , T i , 0 = ② , T i , j = { T i − 1 , j ( W j < volume ( g i ) かつ 1 ≤ j ) , max { T i − 1 , j , T i − 1 , h + value ( g i ) } ( W j ≥ volume ( g i ) かつ 1 ≤ j ) . \begin{aligned}
T_{0,0}&=0,\\
T_{0,j}&=\text{①}\qquad(\text{ただし }1\le j),\\
T_{i,0}&=\text{②},\\
T_{i,j}&=\begin{cases}
T_{i-1,j}&(W_j<\operatorname{volume}(g_i)\text{ かつ }1\le j),\\
\begin{gathered}\max\{T_{i-1,j},\\T_{i-1,h}+\operatorname{value}(g_i)\}\end{gathered}&(W_j\ge\operatorname{volume}(g_i)\text{ かつ }1\le j).
\end{cases}
\end{aligned} T 0 , 0 T 0 , j T i , 0 T i , j = 0 , = ① ( ただし 1 ≤ j ) , = ② , = ⎩ ⎨ ⎧ T i − 1 , j max { T i − 1 , j , T i − 1 , h + value ( g i )} ( W j < volume ( g i ) かつ 1 ≤ j ) , ( W j ≥ volume ( g i ) かつ 1 ≤ j ) .
ただし
h = max { k ∣ W k ≤ ( W j − volume ( g i ) ) } . h=\max\{k\mid W_k\le(W_j-\operatorname{volume}(g_i))\}. h = max { k ∣ W k ≤ ( W j − volume ( g i ))} .
具体的に G = { g 1 , g 2 , g 3 , g 4 } G=\{g_1,g_2,g_3,g_4\} G = { g 1 , g 2 , g 3 , g 4 } とし,それぞれの品物の体積と価値を表3.1で与える。この G G G における G i G_i G i と W j W_j W j に対するナップザック問題解 S i , j S_{i,j} S i , j を計算するための T i , j T_{i,j} T i , j の値の表を表3.2に示す。この表の i i i 行 j j j 列に T i , j T_{i,j} T i , j の値を入れる。
表3.1:各品物の体積と価値
品物 volume value g 1 g_1 g 1 10 5 g 2 g_2 g 2 15 6 g 3 g_3 g 3 20 7 g 4 g_4 g 4 30 8
表3.2:T i , j T_{i,j} T i , j の値の表
T i , j T_{i,j} T i , j W 0 W_0 W 0 W 1 W_1 W 1 W 2 W_2 W 2 W 3 W_3 W 3 W 4 W_4 W 4 W 5 W_5 W 5 W 6 W_6 W 6 W 7 W_7 W 7 W 8 W_8 W 8 G 0 G_0 G 0 0 ① ① ① ① ① ① ① ① G 1 G_1 G 1 ② 5 5 5 5 5 5 5 5 G 2 G_2 G 2 ② 5 6 6 11 11 11 11 11 G 3 G_3 G 3 ② 5 6 7 11 ③ ④ ⑤ ⑥ G 4 G_4 G 4 ② 5 6 7 11
以下の問いに答えよ。
a) G 1 , G 2 , G 3 , G 4 G_1,G_2,G_3,G_4 G 1 , G 2 , G 3 , G 4 の要素をそれぞれ列挙せよ。
b) W j ( j = 0 , … , 8 ) W_j\ (j=0,\ldots,8) W j ( j = 0 , … , 8 ) の各値を示せ。
c) 表3.2の①~⑥の中に当てはまる値を記せ。
d) G 4 G_4 G 4 と W 5 , W 6 , W 7 , W 8 W_5,W_6,W_7,W_8 W 5 , W 6 , W 7 , W 8 に対するナップザック問題解 S 4 , 5 , S 4 , 6 , S 4 , 7 , S 4 , 8 S_{4,5},S_{4,6},S_{4,7},S_{4,8} S 4 , 5 , S 4 , 6 , S 4 , 7 , S 4 , 8 の品物の組み合わせと価値の合計をそれぞれ求めよ。
言語 ω \omega ω の項を以下のように帰納的に定義する。
定数記号 S , K , I S,K,I S , K , I は ω \omega ω の項である。
x , y x,y x , y が ω \omega ω の項のとき,( x ⋅ y ) (x\cdot y) ( x ⋅ y ) は ω \omega ω の項である。
以上のようにして定義されるもののみが ω \omega ω の項である。
この演算子 ⋅ \cdot ⋅ は左結合的であり,記述を簡潔にするために演算子 ⋅ \cdot ⋅ は省略できるものとする。すなわち x , y , z ∈ ω x,y,z\in\omega x , y , z ∈ ω のとき ( ( x ⋅ y ) ⋅ z ) ((x\cdot y)\cdot z) (( x ⋅ y ) ⋅ z ) は x y z xyz x yz ,( x ⋅ ( y ⋅ z ) ) (x\cdot(y\cdot z)) ( x ⋅ ( y ⋅ z )) は x ( y z ) x(yz) x ( yz ) と書くことができる。
次に x , y , z ∈ ω x,y,z\in\omega x , y , z ∈ ω に対して,S , K , I S,K,I S , K , I それぞれの計算規則(左辺から右辺への変換規則)を以下のように定義する。
I x ⇒ x , K x y ⇒ x , S x y z ⇒ x z ( y z ) , x ⇒ x ′ ならば x y ⇒ x ′ y , y ⇒ y ′ ならば x y ⇒ x y ′ . \begin{aligned}
Ix&\Rightarrow x,\\
Kxy&\Rightarrow x,\\
Sxyz&\Rightarrow xz(yz),\\
x\Rightarrow x'\quad&\text{ならば}\quad xy\Rightarrow x'y,\\
y\Rightarrow y'\quad&\text{ならば}\quad xy\Rightarrow xy'.
\end{aligned} I x K x y S x yz x ⇒ x ′ y ⇒ y ′ ⇒ x , ⇒ x , ⇒ x z ( yz ) , ならば x y ⇒ x ′ y , ならば x y ⇒ x y ′ .
上記の計算規則を用いて ω \omega ω の項を変換することをリダクションと呼ぶ。リダクションはそれ以上変換できないとき停止するものとする。これ以上リダクションできない項は正規形と呼ばれる。リダクションの例を以下に示す。
S I I x ⇒ I x ( I x ) ⇒ x ( I x ) ⇒ x x SIIx\Rightarrow Ix(Ix)\Rightarrow x(Ix)\Rightarrow xx S II x ⇒ I x ( I x ) ⇒ x ( I x ) ⇒ xx
S ( K ( S I ) ) K x y ⇒ K ( S I ) x ( K x ) y ⇒ S I ( K x ) y ⇒ I y ( K x y ) ⇒ y ( K x y ) ⇒ y x \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} S ( K ( S I )) K x y ⇒ K ( S I ) x ( K x ) y ⇒ S I ( K x ) y ⇒ I y ( K x y ) ⇒ y ( K x y ) ⇒ y x
a) 任意の x ∈ ω x\in\omega x ∈ ω について S K K x SKKx S KK x と I x Ix I x のリダクションの結果が同じとなることを示せ。
b) T , F T,F T , F を以下のように定義する。
T = K , F = K I T=K,\qquad F=KI T = K , F = K I
このとき,以下の式 (i)(ii) を正規形までリダクションせよ。ただし,x , y x,y x , y は正規形とする。また,リダクション結果とともに正規形を求めた過程を示すこと。
(i) T x y Txy T x y
(ii) F x y Fxy F x y
c) さらに ∨ , ∧ , ¬ \lor,\land,\neg ∨ , ∧ , ¬ を以下のように定義する。
∨ = S I ( K T ) , ∧ = S S ( K ( K F ) ) , ¬ = S ( S I ( K F ) ) ( K T ) . \begin{aligned}
\lor&=SI(KT),\\
\land&=SS(K(KF)),\\
\neg&=S(SI(KF))(KT).
\end{aligned} ∨ ∧ ¬ = S I ( K T ) , = SS ( K ( K F )) , = S ( S I ( K F )) ( K T ) .
これより,任意の x , y ∈ ω x,y\in\omega x , y ∈ ω に対して,
∨ x y = S I ( K T ) x y ⇒ I x ( K T x ) y ⇒ x ( K T x ) y ⇒ x T y , ∧ x y = S S ( K ( K F ) ) x y ⇒ S x ( K ( K F ) x ) y ⇒ x y ( K ( K F ) x y ) ⇒ x y ( K F y ) ⇒ x y F , ¬ x = S ( S I ( K F ) ) ( K T ) x ⇒ S I ( K F ) x ( K T x ) ⇒ I x ( K F x ) ( K T x ) ⇒ x ( K F x ) ( K T x ) ⇒ x F ( K T x ) ⇒ x F T \begin{aligned}
\lor xy&=SI(KT)xy\Rightarrow Ix(KTx)y\\
&\Rightarrow x(KTx)y\Rightarrow xTy,\\[4pt]
\land xy&=SS(K(KF))xy\Rightarrow Sx(K(KF)x)y\\
&\Rightarrow xy(K(KF)xy)\Rightarrow xy(KFy)\Rightarrow xyF,\\[4pt]
\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} ∨ x y ∧ x y ¬ x = S I ( K T ) x y ⇒ I x ( K T x ) y ⇒ x ( K T x ) y ⇒ x T y , = SS ( K ( K F )) x y ⇒ S x ( K ( K F ) x ) y ⇒ x y ( K ( K F ) x y ) ⇒ x y ( K F y ) ⇒ x y F , = S ( S I ( K F )) ( K T ) x ⇒ S I ( K F ) x ( K T x ) ⇒ I x ( K F x ) ( K T x ) ⇒ x ( K F x ) ( K T x ) ⇒ x F ( K T x ) ⇒ x FT
となる。このとき,以下の式 (iii)(iv)(v)(vi) を正規形までリダクションせよ。また,リダクション結果とともに正規形を求めた過程を示すこと。
(iii) ∨ ( ¬ T ) T \lor(\neg T)T ∨ ( ¬ T ) T
(iv) ∨ ( ¬ T ) F \lor(\neg T)F ∨ ( ¬ T ) F
(v) ∧ ( ¬ F ) T \land(\neg F)T ∧ ( ¬ F ) T
(vi) ∧ ( ¬ F ) F \land(\neg F)F ∧ ( ¬ F ) F
题目描述
1)
设 N N N 个物品构成的集合为 G G G ,物品 g ∈ G g\in G g ∈ G 的体积为 volume ( g ) \operatorname{volume}(g) volume ( g ) ,价值为 value ( g ) \operatorname{value}(g) value ( g ) 。将 G G G 的元素按体积从小到大排列成序列 ( g 1 , g 2 , … , g N ) (g_1,g_2,\ldots,g_N) ( g 1 , g 2 , … , g N ) ,即当 1 ≤ i < i ′ ≤ N 1\le i<i'\le N 1 ≤ i < i ′ ≤ N 时,volume ( g i ) ≤ volume ( g i ′ ) \operatorname{volume}(g_i)\le\operatorname{volume}(g_{i'}) volume ( g i ) ≤ volume ( g i ′ ) 。给定容积为 W W W 的背包,考虑寻找在容积 W W W 的范围内价值总和最大的物品集合 S ⊆ G S\subseteq G S ⊆ G 。以下将 S S S 称为关于 G G G 和 W W W 的背包问题解。
设 G 0 G_0 G 0 为空集 ∅ \varnothing ∅ ,对满足 1 ≤ i ≤ N 1\le i\le N 1 ≤ i ≤ N 的 i i i ,令 G i = G i − 1 ∪ { g i } G_i=G_{i-1}\cup\{g_i\} G i = G i − 1 ∪ { g i } 。将0个或更多物品的总体积可能取到的值构成的集合
{ ∑ g ∈ X volume ( g ) ∣ X ⊆ G } \left\{\sum_{g\in X}\operatorname{volume}(g)\mathrel{\big|}X\subseteq G\right\} ⎩ ⎨ ⎧ g ∈ X ∑ volume ( g ) X ⊆ G ⎭ ⎬ ⎫
中的元素按从小到大排列成序列 W 0 , W 1 , … , W j , … W_0,W_1,\ldots,W_j,\ldots W 0 , W 1 , … , W j , … 。其中 W 0 W_0 W 0 表示物品数为0时的总体积。
对于物品集合 G i G_i G i 和容积为 W j W_j W j 的背包,其背包问题解 S i , j S_{i,j} S i , j 的价值总和 T i , j T_{i,j} T i , j 由下式给出。其中 max U \max U max U 返回实数的有限集合 U U U 的最大值。
T 0 , 0 = 0 , T 0 , j = ① ( 1 ≤ j ) , T i , 0 = ② , T i , j = { T i − 1 , j ( W j < volume ( g i ) 且 1 ≤ j ) , max { T i − 1 , j , T i − 1 , h + value ( g i ) } ( W j ≥ volume ( g i ) 且 1 ≤ j ) . \begin{aligned}
T_{0,0}&=0,\\
T_{0,j}&=\text{①}\qquad(1\le j),\\
T_{i,0}&=\text{②},\\
T_{i,j}&=\begin{cases}
T_{i-1,j}&(W_j<\operatorname{volume}(g_i)\text{ 且 }1\le j),\\
\begin{gathered}\max\{T_{i-1,j},\\T_{i-1,h}+\operatorname{value}(g_i)\}\end{gathered}&(W_j\ge\operatorname{volume}(g_i)\text{ 且 }1\le j).
\end{cases}
\end{aligned} T 0 , 0 T 0 , j T i , 0 T i , j = 0 , = ① ( 1 ≤ j ) , = ② , = ⎩ ⎨ ⎧ T i − 1 , j max { T i − 1 , j , T i − 1 , h + value ( g i )} ( W j < volume ( g i ) 且 1 ≤ j ) , ( W j ≥ volume ( g i ) 且 1 ≤ j ) .
其中
h = max { k ∣ W k ≤ ( W j − volume ( g i ) ) } . h=\max\{k\mid W_k\le(W_j-\operatorname{volume}(g_i))\}. h = max { k ∣ W k ≤ ( W j − volume ( g i ))} .
具体设 G = { g 1 , g 2 , g 3 , g 4 } G=\{g_1,g_2,g_3,g_4\} G = { g 1 , g 2 , g 3 , g 4 } ,各物品的体积和价值由表3.1给出。为了计算此 G G G 中关于 G i G_i G i 和 W j W_j W j 的背包问题解 S i , j S_{i,j} S i , j ,表3.2给出 T i , j T_{i,j} T i , j 的值。在该表第 i i i 行第 j j j 列填入 T i , j T_{i,j} T i , j 的值。
表3.1:各物品的体积和价值
物品 体积 价值 g 1 g_1 g 1 10 5 g 2 g_2 g 2 15 6 g 3 g_3 g 3 20 7 g 4 g_4 g 4 30 8
表3.2:T i , j T_{i,j} T i , j 的值
T i , j T_{i,j} T i , j W 0 W_0 W 0 W 1 W_1 W 1 W 2 W_2 W 2 W 3 W_3 W 3 W 4 W_4 W 4 W 5 W_5 W 5 W 6 W_6 W 6 W 7 W_7 W 7 W 8 W_8 W 8 G 0 G_0 G 0 0 ① ① ① ① ① ① ① ① G 1 G_1 G 1 ② 5 5 5 5 5 5 5 5 G 2 G_2 G 2 ② 5 6 6 11 11 11 11 11 G 3 G_3 G 3 ② 5 6 7 11 ③ ④ ⑤ ⑥ G 4 G_4 G 4 ② 5 6 7 11
回答下列问题。
a) 分别列举 G 1 , G 2 , G 3 , G 4 G_1,G_2,G_3,G_4 G 1 , G 2 , G 3 , G 4 的元素。
b) 给出 W j ( j = 0 , … , 8 ) W_j\ (j=0,\ldots,8) W j ( j = 0 , … , 8 ) 的各个值。
c) 写出表3.2中①~⑥应填入的值。
d) 对于 G 4 G_4 G 4 和 W 5 , W 6 , W 7 , W 8 W_5,W_6,W_7,W_8 W 5 , W 6 , W 7 , W 8 ,分别求出背包问题解 S 4 , 5 , S 4 , 6 , S 4 , 7 , S 4 , 8 S_{4,5},S_{4,6},S_{4,7},S_{4,8} S 4 , 5 , S 4 , 6 , S 4 , 7 , S 4 , 8 中物品的组合及价值总和。
2)
按如下方式归纳定义语言 ω \omega ω 的项。
常量符号 S , K , I S,K,I S , K , I 是 ω \omega ω 的项。
当 x , y x,y x , y 是 ω \omega ω 的项时,( x ⋅ y ) (x\cdot y) ( x ⋅ y ) 是 ω \omega ω 的项。
只有按上述方式定义的对象才是 ω \omega ω 的项。
运算符 ⋅ \cdot ⋅ 是左结合的,为使书写简洁,可以省略运算符 ⋅ \cdot ⋅ 。也就是说,当 x , y , z ∈ ω x,y,z\in\omega x , y , z ∈ ω 时,( ( x ⋅ y ) ⋅ z ) ((x\cdot y)\cdot z) (( x ⋅ y ) ⋅ z ) 可以写成 x y z xyz x yz ,( x ⋅ ( y ⋅ z ) ) (x\cdot(y\cdot z)) ( x ⋅ ( y ⋅ z )) 可以写成 x ( y z ) x(yz) x ( yz ) 。
接下来对 x , y , z ∈ ω x,y,z\in\omega x , y , z ∈ ω ,将 S , K , I S,K,I S , K , I 各自的计算规则(从左边到右边的变换规则)定义如下:
I x ⇒ x , K x y ⇒ x , S x y z ⇒ x z ( y z ) , x ⇒ x ′ 则 x y ⇒ x ′ y , y ⇒ y ′ 则 x y ⇒ x y ′ . \begin{aligned}
Ix&\Rightarrow x,\\
Kxy&\Rightarrow x,\\
Sxyz&\Rightarrow xz(yz),\\
x\Rightarrow x'\quad&\text{则}\quad xy\Rightarrow x'y,\\
y\Rightarrow y'\quad&\text{则}\quad xy\Rightarrow xy'.
\end{aligned} I x K x y S x yz x ⇒ x ′ y ⇒ y ′ ⇒ x , ⇒ x , ⇒ x z ( yz ) , 则 x y ⇒ x ′ y , 则 x y ⇒ x y ′ .
使用上述计算规则变换 ω \omega ω 的项,称为归约。当无法进一步变换时,归约停止。不能进一步归约的项称为正规形。下面给出归约的例子。
S I I x ⇒ I x ( I x ) ⇒ x ( I x ) ⇒ x x SIIx\Rightarrow Ix(Ix)\Rightarrow x(Ix)\Rightarrow xx S II x ⇒ I x ( I x ) ⇒ x ( I x ) ⇒ xx
S ( K ( S I ) ) K x y ⇒ K ( S I ) x ( K x ) y ⇒ S I ( K x ) y ⇒ I y ( K x y ) ⇒ y ( K x y ) ⇒ y x \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} S ( K ( S I )) K x y ⇒ K ( S I ) x ( K x ) y ⇒ S I ( K x ) y ⇒ I y ( K x y ) ⇒ y ( K x y ) ⇒ y x
a) 证明对任意 x ∈ ω x\in\omega x ∈ ω ,S K K x SKKx S KK x 与 I x Ix I x 的归约结果相同。
b) 将 T , F T,F T , F 定义为
T = K , F = K I . T=K,\qquad F=KI. T = K , F = K I .
将下面的式 (i)(ii) 归约到正规形。假定 x , y x,y x , y 为正规形。除归约结果外,还要写出求得正规形的过程。
(i) T x y Txy T x y
(ii) F x y Fxy F x y
c) 进一步定义 ∨ , ∧ , ¬ \lor,\land,\neg ∨ , ∧ , ¬ 如下:
∨ = S I ( K T ) , ∧ = S S ( K ( K F ) ) , ¬ = S ( S I ( K F ) ) ( K T ) . \begin{aligned}
\lor&=SI(KT),\\
\land&=SS(K(KF)),\\
\neg&=S(SI(KF))(KT).
\end{aligned} ∨ ∧ ¬ = S I ( K T ) , = SS ( K ( K F )) , = S ( S I ( K F )) ( K T ) .
由此,对任意 x , y ∈ ω x,y\in\omega x , y ∈ ω 有
∨ x y = S I ( K T ) x y ⇒ I x ( K T x ) y ⇒ x ( K T x ) y ⇒ x T y , ∧ x y = S S ( K ( K F ) ) x y ⇒ S x ( K ( K F ) x ) y ⇒ x y ( K ( K F ) x y ) ⇒ x y ( K F y ) ⇒ x y F , ¬ x = S ( S I ( K F ) ) ( K T ) x ⇒ S I ( K F ) x ( K T x ) ⇒ I x ( K F x ) ( K T x ) ⇒ x ( K F x ) ( K T x ) ⇒ x F ( K T x ) ⇒ x F T . \begin{aligned}
\lor xy&=SI(KT)xy\Rightarrow Ix(KTx)y\\
&\Rightarrow x(KTx)y\Rightarrow xTy,\\[4pt]
\land xy&=SS(K(KF))xy\Rightarrow Sx(K(KF)x)y\\
&\Rightarrow xy(K(KF)xy)\Rightarrow xy(KFy)\Rightarrow xyF,\\[4pt]
\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} ∨ x y ∧ x y ¬ x = S I ( K T ) x y ⇒ I x ( K T x ) y ⇒ x ( K T x ) y ⇒ x T y , = SS ( K ( K F )) x y ⇒ S x ( K ( K F ) x ) y ⇒ x y ( K ( K F ) x y ) ⇒ x y ( K F y ) ⇒ x y F , = S ( S I ( K F )) ( K T ) x ⇒ S I ( K F ) x ( K T x ) ⇒ I x ( K F x ) ( K T x ) ⇒ x ( K F x ) ( K T x ) ⇒ x F ( K T x ) ⇒ x FT .
将下面的式 (iii)(iv)(v)(vi) 归约到正规形。除归约结果外,还要写出求得正规形的过程。
(iii) ∨ ( ¬ T ) T \lor(\neg T)T ∨ ( ¬ T ) T
(iv) ∨ ( ¬ T ) F \lor(\neg T)F ∨ ( ¬ T ) F
(v) ∧ ( ¬ F ) T \land(\neg F)T ∧ ( ¬ F ) T
(vi) ∧ ( ¬ F ) F \land(\neg F)F ∧ ( ¬ F ) F
Kai
G 1 = { g 1 } , G 2 = { g 1 , g 2 } , G 3 = { g 1 , g 2 , g 3 } , G 4 = { g 1 , g 2 , g 3 , g 4 } . \begin{gathered}G_1=\{g_1\},\\ G_2=\{g_1,g_2\},\\ G_3=\{g_1,g_2,g_3\},\\ G_4=\{g_1,g_2,g_3,g_4\}.\end{gathered} G 1 = { g 1 } , G 2 = { g 1 , g 2 } , G 3 = { g 1 , g 2 , g 3 } , G 4 = { g 1 , g 2 , g 3 , g 4 } .
( W 0 , … , W 8 ) = ( 0 , 10 , 15 , 20 , 25 , 30 , 35 , 40 , 45 ) . \boxed{(W_0,\ldots,W_8)=(0,10,15,20,25,30,35,40,45)}. ( W 0 , … , W 8 ) = ( 0 , 10 , 15 , 20 , 25 , 30 , 35 , 40 , 45 ) .
( 1 ) = 0 , ( 2 ) = 0 , ( 3 ) = 12 , ( 4 ) = 13 , ( 5 ) = 13 , ( 6 ) = 18. \begin{gathered}(1)=0,\quad(2)=0,\quad(3)=12,\\(4)=13,\quad(5)=13,\quad(6)=18.\end{gathered} ( 1 ) = 0 , ( 2 ) = 0 , ( 3 ) = 12 , ( 4 ) = 13 , ( 5 ) = 13 , ( 6 ) = 18.
例えば容量30では g 1 , g 3 g_1,g_3 g 1 , g 3 の価値12、容量35,40では g 2 , g 3 g_2,g_3 g 2 , g 3 の価値13、容量45では g 1 , g 2 , g 3 g_1,g_2,g_3 g 1 , g 2 , g 3 の価値18が最適である。
容量 最適な組合せ 体積合計 価値合計 W 5 = 30 W_5=30 W 5 = 30 { g 1 , g 3 } \{g_1,g_3\} { g 1 , g 3 } 30 12 W 6 = 35 W_6=35 W 6 = 35 { g 2 , g 3 } \{g_2,g_3\} { g 2 , g 3 } 35 13 W 7 = 40 W_7=40 W 7 = 40 { g 2 , g 3 } \{g_2,g_3\} { g 2 , g 3 } または { g 1 , g 4 } \{g_1,g_4\} { g 1 , g 4 } 35 または 40 13 W 8 = 45 W_8=45 W 8 = 45 { g 1 , g 2 , g 3 } \{g_1,g_2,g_3\} { g 1 , g 2 , g 3 } 45 18
S K K x ⇒ K x ( K x ) ⇒ x , I x ⇒ x . SKKx\Rightarrow Kx(Kx)\Rightarrow x,\qquad Ix\Rightarrow x. S KK x ⇒ K x ( K x ) ⇒ x , I x ⇒ x .
従って両者は同じ項 x x x に帰着する。
(i) T x y = K x y ⇒ x , \text{(i)}\quad Txy=Kxy\Rightarrow x, (i) T x y = K x y ⇒ x ,
(ii) F x y = K I x y ⇒ I y ⇒ y . \text{(ii)}\quad Fxy=KIxy\Rightarrow Iy\Rightarrow y. (ii) F x y = K I x y ⇒ I y ⇒ y .
x , y x,y x , y は正規形なのでここで終了する。
まず
¬ T ⇒ ∗ T F T = K F T ⇒ F = K I , \neg T\Rightarrow^*TFT=KFT\Rightarrow F=KI, ¬ T ⇒ ∗ TFT = K FT ⇒ F = K I ,
¬ F ⇒ ∗ F F T = K I F T ⇒ I T ⇒ T = K . \neg F\Rightarrow^*FFT=KIFT\Rightarrow IT\Rightarrow T=K. ¬ F ⇒ ∗ FFT = K I FT ⇒ I T ⇒ T = K .
問題で示された変換を用いると
(iii) ∨ ( ¬ T ) T ⇒ ∗ ∨ F T ⇒ ∗ F T T = K I T T ⇒ I T ⇒ T = K , (iv) ∨ ( ¬ T ) F ⇒ ∗ ∨ F F ⇒ ∗ F T F = K I T F ⇒ I F ⇒ F = K I , (v) ∧ ( ¬ F ) T ⇒ ∗ ∧ T T ⇒ ∗ T T F = K T F ⇒ T = K , (vi) ∧ ( ¬ F ) F ⇒ ∗ ∧ T F ⇒ ∗ T F F = K F F ⇒ F = K I . \begin{aligned}
\text{(iii)}\quad\lor(\neg T)T&\Rightarrow^*\lor FT\Rightarrow^*FTT\\&\qquad=KITT\Rightarrow IT\Rightarrow T=\boxed K,\\
\text{(iv)}\quad\lor(\neg T)F&\Rightarrow^*\lor FF\Rightarrow^*FTF\\&\qquad=KITF\Rightarrow IF\Rightarrow F=\boxed{KI},\\
\text{(v)}\quad\land(\neg F)T&\Rightarrow^*\land TT\Rightarrow^*TTF\\&\qquad=KTF\Rightarrow T=\boxed K,\\
\text{(vi)}\quad\land(\neg F)F&\Rightarrow^*\land TF\Rightarrow^*TFF\\&\qquad=KFF\Rightarrow F=\boxed{KI}.
\end{aligned} (iii) ∨ ( ¬ T ) T (iv) ∨ ( ¬ T ) F (v) ∧ ( ¬ F ) T (vi) ∧ ( ¬ F ) F ⇒ ∗ ∨ FT ⇒ ∗ FTT = K I TT ⇒ I T ⇒ T = K , ⇒ ∗ ∨ FF ⇒ ∗ FTF = K I TF ⇒ I F ⇒ F = K I , ⇒ ∗ ∧ TT ⇒ ∗ TTF = K TF ⇒ T = K , ⇒ ∗ ∧ TF ⇒ ∗ TFF = K FF ⇒ F = K I .
K K K と K I KI K I はいずれも引数不足なので、それ以上規則を適用できない正規形である。