第 2 章 離散凸解析の基礎 5
3.3 スケーリング
離散関数の最小解を求めるアルゴリズムを高速化する手法の1つに、スケーリング法があ る。ここでは、まずスケーリングの基本的な考え方を述べ、次に離散L♮凸/L凸関数にどのよ うに適用されるかを述べる。離散L♮凸/L凸関数にはこの手法が効率的に働き、容易に多項式 時間の最小化アルゴリズムが実現される。
3.3.1 スケーリングの考え方
スケーリングの基本的なアイデアは、離散格子点の格子を間引くことにある。格子を間引く と精密さはなくなるが、関数の実効定義域が実質的に小さくなるので、最小化が高速に行える ことが期待される。最小解の位置は、間引く前後で近いところにあることが多い。離散関数の 性質によっては近さを理論的に解析できる場合があり、この距離を保証するのがスケーリング の近接定理である。
例えば、与えられた離散関数を最小化することを考える。同時に、偶数格子点だけに間引い た関数も考える。つまり、f :Zn→ Rが与えられたとして、偶数格子点上のf を取り出した
0 1 2 3 4 5 6
x
f(x) f2(x2)
図3.1.離散変数のスケーリング
関数f2を
f2(x) =f(2x) として作る。
domZf2はdomZf に比べると、その要素の個数は1/2n ほどの大きさである。argminZf2
とargminZf に単純な関係性があれば、比較的容易に求められるargminZf2(に含まれる解)
を利用することで、argminZf(に含まれる解)を効率的に求めることができる。
このことを1変数の場合に描いたのが図3.1である。f :Z→ Rの最小化を次のようにし て行う。まずf2(x)の最小化を行う。f2(42)で最小となることがわかるので、次にx= 4から f(x)の最小化を行う。すると容易にf(3)で最小化が完了する。更に再帰的に、最初のf2(x) の最小化にも、
f4(x) =f2(2x) と定義したf4の最小化の結果を利用することもできる。
一般に,離散変数の関数f :Zn→R∪ {+∞}と正の整数αおよびb∈Znに対して,
fα(x) =f(αx+b) (x∈Zn) (3.6)
で定義される関数fα:Zn →R∪ {+∞}はスケーリングと呼ばれる。スケーリングを再帰的 に適用するアルゴリズムは,スケーリング法と呼ばれる。
関数f :Zn →R∪ {+∞}をスケーリングした関数fα の最小点(あるいは極小点)をyα とするとき,yαを用いて計算したf の近似最小点
xα=αyα+b (3.7)
に関して,真の最小点x∗との距離の近さを保証する定理は、近接定理と呼ばれる。1変数の 場合は、f が離散凸であれば容易に
xα−(α−1)≤x∗≤xα+ (α−1) (3.8)
が成り立つことがわかる。多変数の場合にも,後述するように、L♮ 凸/L凸関数とM♮ 凸/M 凸関数に対して近接定理が成り立つ.
3.3.2 L 凸関数に対するスケーリング
関数g:Zn→R∪ {+∞}と正の整数αおよびb∈Znに対して,gのスケーリング(3.6)を gα(p) =g(αp+b)
とする.
L♮凸/L凸関数は、スケーリングを行ってもL♮凸/L凸性を保持し続ける。これは(後述す る)M♮凸/M凸関数とは異なる、重要な性質である。
命題 3.3 ([62,定理 7.11(1),定理 7.10(2)]).
(1)関数g:Zn →R∪ {+∞}がL♮凸関数ならば,gαもL♮凸関数である.
(2)関数g:Zn →R∪ {+∞}がL凸関数ならば,gαもL凸関数である.
L♮ 凸/L凸集合についても、同様にスケーリングの関係がある。集合S と集合Sαに関し て、ある正の整数αおよびb∈Znが存在して
Sα={p∈Zn|αp+b∈S}
を満たすとする。このとき、それぞれの標示関数δS : Zn → R∪ {+∞} とδSα : Zn → R∪ {+∞}の間には、
δSα(p) =δS(αp+b) の関係が成り立つので、次の命題の成り立つことがわかる。
命題 3.4.
(1)集合SがL♮凸集合ならば,集合SαもL♮ 凸集合である.
(2)集合SがL凸集合ならば,集合SαもL凸集合である.
3.3.3 スケーリングの近接定理
L♮ 凸/L凸関数に対する近接定理は,スケーリングされた関数gαの極小点qαから、(3.7) に従って
pα=αqα+b
として計算した点pαの近くに,gの最小点p∗が存在することを保証する.なお,命題3.3, 定理3.1により,gαの極小点はgαの最小点である.
定理 3.5 ([62,定理 7.18][36]). αを正整数とする.
(1)g:Zn →R∪ {+∞}をL♮凸関数とし,pα∈domZgとする.任意のq∈ {0,1}nに対 して
g(pα)≤min{g(pα−αq), g(pα+αq)}
ならば,argminZg̸=∅であって,
pα−n(α−1)1≤p∗≤pα+n(α−1)1 を満たすp∗∈argminZgが存在する.
(2) g : Zn → R∪ {+∞} を g(p) = g(p+1) (∀p ∈ Zn) を満たす L 凸関数とし,
pα∈domZg とする.任意のq∈ {0,1}nに対して g(pα)≤g(pα+αq) ならば,argminZg̸=∅であって,
pα≤p∗≤pα+ (n−1)(α−1)1 を満たすp∗∈argminZgが存在する.
3.3.4 スケーリング法
上の近接定理を利用してL♮凸関数gを最小化するアルゴリズム[62, 第10.3.2節]を示す.
L♮凸関数の最小化アルゴリズム(スケーリング法): SCALING(g,p) Input: 離散L♮凸関数gと初期解p∈domZg
Output: gの一つの最小解
Step 0: k:=⌈log2K∞⌉,qk+1:=0とおく.
Step 1: αk:= 2k とおく。
gk(q) :=g(p+αkq), domZgk:={q∈Zn|2qk+1−n1≤q≤2qk+1+n1} として最急降下法SD(gk, 2qk+1)を呼び出し、得られた最小解をqkとする。
Step 2: k= 0ならばp+q0を返す(p+q0はgの最小解の一つ). Step 3: k:=k−1としてStep 1に戻る.
手順Step 1で呼び出す最急降下法SD(gk, 2qk+1)では、関数の定義域が小さいので、必要 な計算量はO(nSTfunc)ですむ。手順Step 1からStep 3の反復は、ちょうど(⌈log2K∞⌉+ 1) 回であるので、全体の計算量はO(nSTfunc⌈log2K∞⌉) となり、スケーリング法は多項式時間 で終了することがわかる [62, 第10.3.2節].