1 状態、遷移および境界値
動的計画法で現れる部分問題を状態とよび、状態のあいだの依存関係を弧で表す。弧の向きは「用いられる側から用いる側へ」と定める。この向きを採ると、位相順序に沿って前から評価するという手続きがそのまま意味をもつ。
定義 1.1. 有限集合QとA⊆Q×Qの組D=(Q,A)が§D2.11 定義 1.1の意味での有向グラフであり、かつ§D2.11 定義 2.1の意味での有向非巡回グラフであるとする。Qの要素を状態 (state) といい、弧(t,s)∈Aを「状態sの値を定めるために状態tの値を用いる」と読む。状態s∈Qに対し
N−(s)={t∈Q: (t,s)∈A}と置き、sの先行状態の集合 (predecessor state set) という。その要素数は入次数deg−(s)に等しい。deg−(s)=0を満たす状態を境界状態 (boundary state) といい、境界状態の全体をQ0と書く。
さらに、写像b:Q0→Rと、各s∈Q∖Q0に対する写像gs:RN−(s)→Rが与えられているとする。ここでRN−(s)はN−(s)からRへの写像全体を表す。組
Σ=(Q, A, b, (gs)s∈Q∖Q0)を状態遷移図式 (state transition scheme) という。bを境界値 (boundary value)、gsを遷移関数 (transition function) という。∣Q∣をΣの状態数 (number of states)、∣A∣を遷移数 (number of transitions) という。
定義 1.2. 状態遷移図式Σに対し、写像V:Q→Rが次の二条件を満たすとき、VをΣの解 (solution) という。
- すべてのs∈Q0に対しV(s)=b(s)が成り立つ。
- すべてのs∈Q∖Q0に対しV(s)=gs((V(t))t∈N−(s))が成り立つ。
この二条件をあわせてΣの漸化式 (recurrence relation) という。
漸化式では、各状態の値が先行状態の値によって記述されるだけであり、値を求める順序が指定されていない。順序を与えるのが位相順序である。
定義 1.3.Σを状態遷移図式とし、N=∣Q∣とする。s1,s2,…,sNをD=(Q,A)の位相順序(§D2.11 定義 2.1)とする。次の手続きを、この位相順序に沿った 評価 (evaluation) という。i=1,2,…,Nの順に、実数uiを
- si∈Q0のときui=b(si)、
- si∈/Q0のときui=gsi((uι(t))t∈N−(si))
と定める。ここでι(t)はsι(t)=tを満たす添字を表す。
1.1 証明方針
主定理は三つの主張を含む。定理 1.4 (1)は位相順序の存在であり、これはDが有向非巡回グラフであることから§D2.11 定理 2.3によって直ちに従う。
定理 1.4 (2)は、定義 1.3の手続きが矛盾なく定まることである。ここで確かめるべきことは、uiを定める式の右辺に現れる添字ι(t)がすべてiより小さいことである。t∈N−(si)は(t,si)∈Aを意味し、位相順序の定義ではAのすべての弧が列の前から後ろへ向くことが要求されるので、ι(t)<iが従う。したがってiの小さい順に定めれば、右辺の値はすべて既に定まっている。
定理 1.4 (3)は、解がただ一つ存在し、それが評価の結果に一致することである。一意性は、二つの解VとV′をとり、V(si)=V′(si)を添字iについての累積帰納法(§D2.1 命題 1.2)で示す。境界状態の場合は両者ともb(si)に等しく、境界状態でない場合は、先行状態の添字がiより小さいことから帰納法の仮定によってgsiの引数が一致し、値も一致する。存在は、評価が与えるuiによってV(si)=uiと定め、これが漸化式の二条件を満たすことを確かめれば得られる。確かめる際にも、ι(t)<iという事実を用いてuι(t)=V(t)と読み替える。
定理 1.4.Σ=(Q,A,b,(gs))を状態遷移図式とし、N=∣Q∣とする。このとき次の三つが成り立つ。
- D=(Q,A)の位相順序が存在する。
- 位相順序s1,…,sNを一つとると、定義 1.3の評価は矛盾なく定まる。すなわち、si∈/Q0かつt∈N−(si)ならばι(t)<iが成り立ち、uiを定める時点でuι(t)は既に定まっている。
- Σの解はただ一つ存在する。それをVと書くと、すべてのiについてui=V(si)が成り立つ。
証明.(1)を示す。Dは有向非巡回グラフであるから、§D2.11 定理 2.3によりDの位相順序が存在する。
(2)を示す。位相順序s1,…,sNはQのすべての状態をちょうど一度ずつ並べた列であるから、各t∈Qに対してsι(t)=tを満たす添字ι(t)∈{1,…,N}がただ一つ定まる。si∈/Q0かつt∈N−(si)とすると(t,si)∈Aである。t=sι(t)かつsiは第i項であるから、位相順序の定義(Aのすべての弧(sk,sl)についてk<l)によりι(t)<iである。よってuiを定める式の右辺に現れる値はすべて添字がiより小さく、iの小さい順に定めれば既に定まっている。i=1,…,Nの順に一つずつ定めれば、すべてのuiが定まる。
(3)の一意性を示す。VとV′をともにΣの解とする。述語P(i)を「1≤i≤NならばV(si)=V′(si)である」と定め、Pが全ての非負整数について成り立つことを累積帰納法(§D2.1 命題 1.2)で示す。iをとり、iより小さいすべての添字でPが成り立つと仮定する。i=0またはi>NならばP(i)は空虚に成り立つ。1≤i≤Nとする。
si∈Q0のときは、定義 1.2 条件 (a)によりV(si)=b(si)=V′(si)である。
si∈/Q0のときは、各t∈N−(si)について(2)によりι(t)<iであるから、帰納法の仮定によってV(sι(t))=V′(sι(t))、すなわちV(t)=V′(t)である。したがって二つの族(V(t))t∈N−(si)と(V′(t))t∈N−(si)はN−(si)上の写像として一致する。定義 1.2 条件 (b)により
V(si)=gsi((V(t))t∈N−(si))=gsi((V′(t))t∈N−(si))=V′(si)である。よってP(i)が成り立ち、累積帰納法によりすべてのiでV(si)=V′(si)である。位相順序はすべての状態を尽くすのでV=V′である。
(3)の存在を示す。(2)により定まるu1,…,uNを用いて、写像V:Q→RをV(si)=uiによって定める。位相順序はQの各要素をちょうど一度ずつ並べるので、この定め方は矛盾なくQ全体でVを定める。定義から、各t∈Qに対しV(t)=uι(t)である。
Vが解の条件を満たすことを確かめる。si∈Q0のとき、評価の定義によりV(si)=ui=b(si)であり、定義 1.2 条件 (a)が成り立つ。si∈/Q0のとき、評価の定義により
V(si)=ui=gsi((uι(t))t∈N−(si))=gsi((V(t))t∈N−(si))であり、定義 1.2 条件 (b)が成り立つ。よってVは解である。
最後に、ui=V(si)はVの定め方そのものであり、一意性により、このVが唯一の解である。▨
系 1.5. 状態遷移図式Σの二つの位相順序s1,…,sNとs1′,…,sN′をとり、それぞれに沿った評価の結果をu1,…,uNとu1′,…,uN′とする。このとき、si=sk′ならばui=uk′が成り立つ。
証明.定理 1.4 (3)により、Σの解Vはただ一つであり、ui=V(si)かつuk′=V(sk′)が成り立つ。si=sk′ならばui=V(si)=V(sk′)=uk′である。▨
有向閉路をもたないという仮定は落とすことができない。次の注意はその理由を二つの例で示す。
2 時間計算量と空間計算量
時間計算量は、入力サイズに対する基本操作の実行回数として§D2.8 アルゴリズムの正当性と計算量で定められており、多項式時間の定義は§D2.8 定義 4.1で、漸近記法は§D2.8 定義 2.2で与えられる。一方、手続きが用いる記憶領域の大きさを測る尺度は§D2.8 アルゴリズムの正当性と計算量に無いので、ここで定める。
定義 2.1. 手続きは、入力を保持する領域とは別に、セル (cell) とよぶ記憶単位の列を作業領域として用い、各セルは実数を一つ保持するものとする。手続きの実行のある時点で値を保持しているセルの個数を、その時点の使用セル数 (number of used cells) という。入力xに対する実行の全体を通じての使用セル数の最大値をsp(x)と書く。入力サイズがnであるすべての入力xにわたるsp(x)の最大値をS(n)と書き、この手続きの空間計算量 (space complexity) という。
時間計算量と同じく、空間計算量も§D2.8 定義 2.2の記法によって位数だけを述べることが多い。入力を保持する領域を使用セル数に数えないのは、入力を読むだけで必要になる領域と、手続きが自分で書き込む領域とを分けて測るためである。この規約を変えると空間計算量の値は変わる。
評価の費用は、状態数と遷移数だけから見積もることができる。次の命題によりその形が定められる。
命題 2.2. 実数の加法、比較および代入をそれぞれ1回の基本操作と数える計算模型のもとで、状態遷移図式Σが次を満たすと仮定する。図式によらない定数κ≥1が存在して、各境界状態sについてb(s)の値を得るのに必要な基本操作の回数が1以上κ以下であり、各非境界状態sについてgsの値を先行状態の値から得るのに必要な基本操作の回数が1+deg−(s)以上κ(1+deg−(s))以下である。
このとき、位相順序に沿った評価の基本操作の総回数Tは
∣Q∣+∣A∣ ≤ T ≤ κ(∣Q∣+∣A∣)を満たす。また、すべての状態の値を保持したまま評価を行うときの使用セル数は∣Q∣である。
証明. 状態sの値を定めるのに要する基本操作の回数をθ(s)と書く。s∈Q0のときはdeg−(s)=0であるから、仮定により1+deg−(s)=1≤θ(s)≤κ=κ(1+deg−(s))である。s∈/Q0のときも仮定からそのまま同じ不等式が得られる。よってすべてのs∈Qについて
1+deg−(s) ≤ θ(s) ≤ κ(1+deg−(s))が成り立つ。
評価は各状態の値をちょうど一度ずつ定めるのでT=∑s∈Qθ(s)である。上の不等式をs∈Qについて加え、§D2.11 命題 1.2による∑s∈Qdeg−(s)=∣A∣を用いると
∣Q∣+∣A∣ ≤ T ≤ κ(∣Q∣+∣A∣)を得る。
使用セル数については、各状態の値を一つのセルへ保持し、状態は∣Q∣個であるから、値をすべて保持したままの評価の使用セル数は∣Q∣である。▨
保持する値の個数は、依存関係が層状になっている場合に減らすことができる。
定義 2.3. 状態遷移図式Σと非負整数Lに対し、写像ℓ:Q→{0,1,…,L}がΣの層分解 (layer decomposition) であるとは、Aのすべての弧(t,s)についてℓ(s)=ℓ(t)+1が成り立つことをいう。0≤r≤Lに対しLr=ℓ−1(r)と置き、Lrを第r層 (layer) という。
命題 2.4.Σを状態遷移図式とし、ℓをその層分解とする。このとき次が成り立つ。
- 層の番号が小さい状態から順に、同じ層の中では任意の順にQの全要素を並べた列は、D=(Q,A)の位相順序である。
- 第0層のすべての状態は境界状態である。
- r=1,…,Lの順に、第r−1層の値の族から第r層の各状態sの値を、s∈Q0ならばb(s)、s∈/Q0ならばgsを先行状態の値へ適用して定め、第r層を定め終えたら第r−1層の値を捨てる手続きを考える。この手続きは矛盾なく定まり、各rについて第r層の上でΣの解Vに一致する族を与える。この手続きの使用セル数は
1≤r≤Lmax(∣Lr−1∣+∣Lr∣)
以下である(L≥1のとき)。
証明.(1)を示す。弧(t,s)∈Aをとると層分解の定義によりℓ(t)=ℓ(s)−1<ℓ(s)である。並べ方は層の番号が小さい状態を先に置くので、tはsより前に現れる。よってすべての弧が列の前から後ろへ向き、この列は位相順序である。
(2)を示す。s∈L0とし、(t,s)∈Aを満たすtが存在すると仮定する。層分解の定義によりℓ(t)=ℓ(s)−1=−1となるが、ℓの値域は{0,1,…,L}であるから、これは起こらない。よってdeg−(s)=0、すなわちs∈Q0である。
(3)を示す。まず、r≥1とs∈Lrに対しN−(s)⊆Lr−1である。実際t∈N−(s)ならば(t,s)∈Aであるからℓ(t)=ℓ(s)−1=r−1である。したがって第r層の値を定めるのに必要な値は第r−1層の値だけであり、手続きは矛盾なく定まる。
次に、この手続きが与える族がVに一致することをrについての帰納法で示す。r=0のとき、(2)により第0層のすべての状態は境界状態であるから、手続きはb(s)を与え、定義 1.2 条件 (a)によりV(s)=b(s)である。r≥1とし、第r−1層で一致していると仮定する。s∈Lrをとる。s∈Q0ならば手続きはb(s)を与え、定義 1.2 条件 (a)によりV(s)=b(s)である。s∈/Q0ならば、N−(s)⊆Lr−1と帰納法の仮定により、手続きがgsへ与える引数の族は(V(t))t∈N−(s)に一致するので、手続きが与える値はgs((V(t))t∈N−(s))=V(s)である。よって第r層でも一致する。
使用セル数については、第r層を定めているあいだ、手続きが保持しているのは第r−1層の値と、それまでに定めた第r層の値だけである。その個数は∣Lr−1∣+∣Lr∣以下であり、rは1からLまでを動くので、主張の上界を得る。▨
3 0-1 ナップサック問題
代表的な最適化問題として、重さの上限のもとで価値の総和を最大にする問題を扱う。まず問題そのものを定め、その最適値が漸化式を満たすことを証明する。ここが「最適部分構造をもつ」という標語の内実であり、実行可能解の集合を二つに分けて数える議論によって示される。
定義 3.1. 正の整数n、非負整数W、正の整数w1,…,wnおよび非負実数p1,…,pnが与えられているとする。wkを第k番目の品物の重さ (weight)、pkをその価値 (value)、Wを容量 (capacity) という。0≤i≤nと0≤j≤Wに対し
F(i,j)={T⊆{1,…,i} : k∈T∑wk≤j},OPT(i,j)=T∈F(i,j)max k∈T∑pkと定める。∅∈F(i,j)であるからF(i,j)は空でなく、{1,…,i}の部分集合全体は有限集合であるからF(i,j)は有限集合である。よって右辺の最大値は存在する。OPT(n,W)を求める問題を 0-1 ナップサック問題 (0-1 knapsack problem) という。
命題 3.2.0≤j≤Wに対しOPT(0,j)=0が成り立つ。また1≤i≤nと0≤j≤Wに対し
OPT(i,j)={OPT(i−1,j)max{OPT(i−1,j), OPT(i−1,j−wi)+pi}(j<wi),(j≥wi)が成り立つ。
証明. 境界の場合。i=0のとき{1,…,0}=∅であるからF(0,j)={∅}であり、∅に対する価値の総和は0である。よってOPT(0,j)=0である。
i≥1の場合。F(i,j)を、第i番目の品物を含まないものと含むものへ分ける。すなわち
Fout={T∈F(i,j): i∈/T},Fin={T∈F(i,j): i∈T}と置くと、F(i,j)=Fout∪Finであり、この二つは交わらない。
第一にFout=F(i−1,j)である。実際、T⊆{1,…,i}かつi∈/TはT⊆{1,…,i−1}と同値であり、重さの条件は両者で同じ式である。価値の総和も同じ式であるから
T∈Foutmaxk∈T∑pk=OPT(i−1,j)である。とくにFoutは空でない。
第二にFinを調べる。T∈Finならばwi≤∑k∈Twk≤jであるから、j<wiのときFin=∅である。この場合はF(i,j)=Foutとなり、主張の第一の場合が従う。
j≥wiとする。写像T′↦T′∪{i}を考える。T′∈F(i−1,j−wi)ならばT′⊆{1,…,i−1}かつ∑k∈T′wk≤j−wiであるから、T=T′∪{i}はT⊆{1,…,i}、i∈Tかつ∑k∈Twk=∑k∈T′wk+wi≤jを満たし、T∈Finである。逆にT∈Finに対してT′=T∖{i}と置くと、T′⊆{1,…,i−1}かつ∑k∈T′wk=∑k∈Twk−wi≤j−wiであるからT′∈F(i−1,j−wi)である。二つの対応は互いに逆であるから、T′↦T′∪{i}はF(i−1,j−wi)からFinへの全単射である。さらにi∈/T′であるから
k∈T′∪{i}∑pk=k∈T′∑pk+piである。よって
T∈Finmaxk∈T∑pk=OPT(i−1,j−wi)+piである。F(i−1,j−wi)は空でないのでFinも空でない。
最後に、有限集合Xが二つの空でない部分X1とX2の交わらない合併であるとき、実数値関数fについて
Xmaxf=max{X1maxf, X2maxf}が成り立つ。実際、X1とX2は空でない有限集合であるから右辺の三つの最大値はいずれも存在する。X1⊆XとX2⊆XによりmaxXf≥maxX1fかつmaxXf≥maxX2fであるから、左辺は右辺以上である。逆に、maxXf=f(x)を満たすx∈Xをとると、X=X1∪X2よりx∈X1またはx∈X2であり、前者ならばf(x)≤maxX1f、後者ならばf(x)≤maxX2fであるから、左辺は右辺以下である。よって等号が成り立つ。
これをX=F(i,j)、X1=Fout、X2=Finへ適用すると、j≥wiの場合の主張を得る。上でFoutとFinがともに空でないことを確かめたのは、この適用のためである。▨
漸化式が定まったので、これを状態遷移図式として書き直す。
命題 3.3.定義 3.1の設定のもとで
Q={0,1,…,n}×{0,1,…,W},A={((i−1,j),(i,j)): 1≤i≤n, 0≤j≤W}∪{((i−1,j−wi),(i,j)): 1≤i≤n, wi≤j≤W}と定める。このとき次が成り立つ。
- D=(Q,A)は有向非巡回グラフであり、その境界状態の全体はQ0={(0,j): 0≤j≤W}である。
- 境界値をb(0,j)=0と定め、s=(i,j)(1≤i≤n)に対する遷移関数を、j<wiのときgs(x)=x((i−1,j))、j≥wiのときgs(x)=max{x((i−1,j)), x((i−1,j−wi))+pi}と定めると、OPTは得られる状態遷移図式Σの唯一の解である。
- 写像ℓ(i,j)=iはΣの層分解であり、各層の要素数はW+1である。
- 状態数と遷移数について
∣Q∣=(n+1)(W+1),n(W+1)≤∣A∣≤2n(W+1)
が成り立つ。
証明.(1)を示す。まずA⊆Q×Qであり、各弧の始点と終点は第一成分が異なるので相異なる。よってDは§D2.11 定義 1.1の意味での有向グラフである。Aのどの弧(t,s)についても、tの第一成分に1を加えたものがsの第一成分である。有向閉路u0,u1,…,uk=u0(k≥1)が存在すると仮定し、ulの第一成分をalと書くとal=a0+lであるからak=a0+k>a0となる。ところがuk=u0よりak=a0であり、矛盾する。よってDは有向非巡回グラフである。
Aのすべての弧の終点は第一成分が1以上であるから、(0,j)の入次数は0である。逆に1≤i≤nのとき、弧((i−1,j),(i,j))がAに属するので(i,j)の入次数は1以上である。よってQ0={(0,j)}である。
(2)を示す。1≤i≤nとする。j<wiのときN−((i,j))={(i−1,j)}であり、j≥wiのときwi≥1よりj−wi=jであるからN−((i,j))={(i−1,j), (i−1,j−wi)}である。よって上で定めたgsはRN−(s)上の写像として矛盾なく定まる。命題 3.2では、写像(i,j)↦OPT(i,j)が定義 1.2の二条件を満たすことがそのまま述べられている。よってOPTはΣの解であり、定理 1.4 (3)により解は一つしかないので、OPTが唯一の解である。
(3)を示す。Aのどの弧(t,s)についてもℓ(s)=ℓ(t)+1であることは 1 で確かめた。ℓの値域は{0,1,…,n}である。第i層は{(i,j):0≤j≤W}であるから、その要素数はW+1である。
(4)を示す。∣Q∣=(n+1)(W+1)は直積の要素数である。Aを定める二つの集合は交わらない。実際、第一の集合の弧は終点(i,j)に対する始点の第二成分がjであり、第二の集合の弧はj−wiであって、wi≥1より両者は相異なるからである。第一の集合の要素数はn(W+1)である。第二の集合の要素数は∑i=1n∣{j: wi≤j≤W}∣であり、各項は0以上W+1以下であるから、この和は0以上n(W+1)以下である。よってn(W+1)≤∣A∣≤2n(W+1)である。▨
命題 3.4.命題 3.3の状態遷移図式Σについて、命題 2.2の計算模型と仮定のもとで次が成り立つ。
- 位相順序に沿った評価の基本操作の総回数Tは、図式によらない定数κ≥1を用いて
(n+1)(W+1) ≤ T ≤ 3κ(n+1)(W+1)
を満たす。とくにn≥1かつW≥1のときnW≤T≤12κnWである。
- すべての状態の値を保持する評価の使用セル数は(n+1)(W+1)である。
- 命題 2.4の手続きを層分解ℓ(i,j)=iについて用いると、使用セル数は2(W+1)以下になり、第n層の値、とくにOPT(n,W)が得られる。
証明.(1)を示す。命題 2.2により∣Q∣+∣A∣≤T≤κ(∣Q∣+∣A∣)である。命題 3.3 (4)により
(n+1)(W+1) ≤ ∣Q∣+∣A∣ ≤ (n+1)(W+1)+2n(W+1) ≤ 3(n+1)(W+1)であるから、主張の第一の不等式が従う。n≥1かつW≥1のときはnW≤(n+1)(W+1)≤2n⋅2W=4nWであるからnW≤T≤12κnWである。
(2)を示す。命題 2.2の後半と∣Q∣=(n+1)(W+1)による。
(3)を示す。命題 3.3 (3)によりℓ(i,j)=iは層分解であり、各層の要素数はW+1である。命題 2.4 (3)により、この手続きは各層の上で唯一の解OPTに一致する族を与え、使用セル数はmax1≤r≤n(∣Lr−1∣+∣Lr∣)=2(W+1)以下である。第n層は{(n,j):0≤j≤W}であるから、そこにOPT(n,W)が含まれる。▨
4 検算例
例 4.1.n=3、W=5、重さを(w1,w2,w3)=(2,3,4)、価値を(p1,p2,p3)=(3,4,5)とする。層分解ℓ(i,j)=iに沿って、第0層から順にOPT(i,j)を求める。
第0層はOPT(0,j)=0(j=0,1,2,3,4,5)である。
第1層はw1=2、p1=3による。j=0,1ではj<2であるからOPT(1,j)=OPT(0,j)=0である。j=2ではmax{OPT(0,2), OPT(0,0)+3}=max{0,3}=3、j=3ではmax{0, OPT(0,1)+3}=3、j=4ではmax{0, OPT(0,2)+3}=3、j=5ではmax{0, OPT(0,3)+3}=3である。よって第1層はj=0,1,2,3,4,5の順に0,0,3,3,3,3である。
第2層はw2=3、p2=4による。j=0,1,2ではj<3であるから第1層の値をそのまま引き継ぎ0,0,3である。j=3ではmax{OPT(1,3), OPT(1,0)+4}=max{3,4}=4、j=4ではmax{3, OPT(1,1)+4}=max{3,4}=4、j=5ではmax{3, OPT(1,2)+4}=max{3,7}=7である。よって第2層は0,0,3,4,4,7である。
第3層はw3=4、p3=5による。j=0,1,2,3ではj<4であるから第2層の値を引き継ぎ0,0,3,4である。j=4ではmax{OPT(2,4), OPT(2,0)+5}=max{4,5}=5、j=5ではmax{OPT(2,5), OPT(2,1)+5}=max{7,5}=7である。よって第3層は0,0,3,4,5,7であり、OPT(3,5)=7である。
総当たりによる検算。{1,2,3}の部分集合8個について、重さの総和と価値の総和を書き下す。∅は(0,0)、{1}は(2,3)、{2}は(3,4)、{3}は(4,5)、{1,2}は(5,7)、{1,3}は(6,8)、{2,3}は(7,9)、{1,2,3}は(9,12)である。重さの総和が5以下であるものは∅、{1}、{2}、{3}、{1,2}の五つであり、価値の総和の最大値は{1,2}による7である。OPT(3,5)=7と一致する。
同様にj=4では重さの総和が4以下であるものが∅、{1}、{2}、{3}の四つであり、価値の最大値は5である。OPT(3,4)=5と一致する。j=3では∅、{1}、{2}の三つで最大値は4であり、OPT(3,3)=4と一致する。
状態数と遷移数の検算。∣Q∣=(3+1)(5+1)=24である。Aの第一の集合の要素数は3×6=18である。第二の集合の要素数は、i=1で∣{j:2≤j≤5}∣=4、i=2で∣{j:3≤j≤5}∣=3、i=3で∣{j:4≤j≤5}∣=2であるから4+3+2=9である。よって∣A∣=18+9=27であり、命題 3.3 (4)により得られる範囲18≤∣A∣≤36に収まる。使用セル数は、全状態を保持すれば24、連続する二層だけを保持すれば2×6=12以下である。
5 演習
問題 5.1.
- 定理 1.4 (3)の一意性の証明を、累積帰納法を用いずに単純帰納法だけで書き直そうとすると、どこで行き詰まるかを述べよ。行き詰まる箇所を、帰納法の仮定として何が必要かという形で特定し、§D2.1 命題 1.2を用いて累積帰納法へ戻す道筋を書け。
- 定理 1.4 (2)の証明は、位相順序の定義だけを用いてι(t)<iを導いている。この一手を落とすと、3 の存在の証明のどの等式が意味をもたなくなるかを指摘し、その等式を明示して説明せよ。
- 命題 3.2の証明では、j≥wiのときにFinが空でないことを確かめている。この確認を落とすと、最後に用いた最大値の分割の等式が成り立たなくなる。Fin=∅かつ等式を無批判に用いた場合にどのような誤りが生じるかを、具体的なiとjの値を挙げて示せ。
- 状態遷移図式Σが層分解をもたない例を一つ作り、それにもかかわらず定理 1.4を適用することができることを確かめよ。さらに、その例で連続する二つの層だけを保持する評価を用いることができない理由を、命題 2.4 (3)の証明のどの段が破れるかによって述べよ。
- 重さの上限のもとで価値を最大にするのではなく、価値の下限Pを満たす選び方のうち重さの総和を最小にする問題を考える。この問題について状態集合、弧集合、境界値および遷移関数を設計し、最適値がその漸化式を満たすことを命題 3.2の証明にならって証明せよ。さらに状態数と遷移数を数え、命題 2.2によって基本操作の回数の上界と下界を書き下せ。
- 注意 1.6の二つの例について、それぞれ「解が存在しない」ことと「解が一意でない」ことを、定義 1.2の二条件に戻って確かめよ。さらに、Q={s,t,r}と長さ3の有向閉路をもつ例を作り、解が存在しないようにする遷移関数を与えよ。